1. Introdução
A transformação digital a cada ano abrange mais e mais esferas da vida e dos negócios. Se uma empresa deseja ser competitiva, os sites de informações regulares não são mais suficientes, são necessários aplicativos móveis e da Web que não apenas fornecem informações aos usuários, mas também permitem que você desempenhe algum tipo de função: receber ou solicitar bens e serviços, fornecer ferramentas.

Portanto, por exemplo, não basta que os bancos modernos tenham um site com informações, é necessário ter ferramentas on-line para seus clientes, uma conta pessoal na qual o usuário possa gerenciar contas, investimentos e empréstimos. Mesmo pequenas empresas precisam de ferramentas convenientes, como marcar uma consulta com um médico ou cabeleireiro, reservar uma mesa em um restaurante ou uma sala de jogos para crianças para um aniversário, para aumentar a conversão.
E os próprios proprietários precisam receber informações oportunas de forma conveniente, de acordo com o estado de sua empresa, por exemplo, a coleta de dados estatísticos e análises para diferentes departamentos de produção ou a produtividade dos departamentos. Frequentemente, cada um dos departamentos coleta esses dados à sua maneira e pode até usar ferramentas diferentes, e o proprietário precisa gastar muito tempo pessoal para descobrir tudo, indireta ou diretamente, isso pode afetar a eficiência da empresa e, finalmente, seu lucro. A transformação digital e o desenvolvimento de aplicativos Web ou móveis também ajudarão aqui.
As tecnologias não param e estão em constante evolução, e o que usaram há vários anos pode não ser relevante hoje, ou o que não podiam fazer há alguns anos se tornou realidade. Existem ferramentas mais modernas que ajudam a criar aplicativos da Web e móveis de forma mais rápida e melhor. Com base em observações e experiências pessoais, quero compartilhar minha visão sobre quais tecnologias e ferramentas serão procuradas em um futuro próximo e por que você deve prestar atenção a elas ao criar um aplicativo Web moderno.
Aplicativo de página única
Vamos definir um pouco de terminologia. O Aplicativo de Página Única (SPA) é um aplicativo da Web cujos componentes são carregados uma vez em uma página e o conteúdo é carregado conforme necessário. E ao alternar entre seções do aplicativo, a página não é recarregada completamente, mas apenas os dados são carregados e os dados necessários são exibidos.
Os aplicativos de página única superam os aplicativos da web clássicos em velocidade e usabilidade. Com o SPA, você pode obter o efeito do site como um aplicativo de desktop sem reinicializações e atrasos significativos.
Se há alguns anos os aplicativos de página única praticamente não suportavam a otimização de mecanismos de busca e eram usados principalmente para criar painéis pessoais e um painel de administração, hoje ficou muito mais fácil criar um aplicativo de página única com suporte completo para otimização de mecanismos de busca (SEO). Usando aplicativos de página única com renderização de servidor, hoje esse problema desapareceu completamente. Em outras palavras, esse é o mesmo aplicativo de uma página, mas, na primeira solicitação, o servidor gera não apenas dados, mas cria uma página pronta para exibir HTML e os mecanismos de pesquisa obtêm páginas prontas com todas as meta-informações e marcações semânticas.
Com o desenvolvimento de ferramentas para a criação de aplicativos Web do lado do cliente, o desenvolvimento e a transição para aplicativos de página única neste e nos anos subsequentes crescerão apenas. Se você tem um aplicativo antigo desatualizado e lento, e mesmo com uma página completa recarregada ao alternar entre seções, este ano você pode atualizar com segurança para um aplicativo rápido de uma página - agora é um bom momento, as tecnologias já permitem fazer isso de maneira rápida e eficiente.
Ter um site moderno e rápido é muito bom, mas quero lhe dizer honestamente: nem todos os aplicativos podem ser facilmente convertidos em de página única, e a transição pode ser cara! Portanto, você precisa entender quem precisa dessa transição e por quê.
Para ajudar você a entender, na tabela abaixo, darei alguns exemplos quando o desenvolvimento ou a transição para o SPA é apropriado e justificado, e quando não.
Aplicativos web progressivos
Os aplicativos da Web progressivos são um produto da evolução conjunta de um aplicativo nativo e um site. Na verdade, este é um aplicativo da Web que se parece e se comporta como um aplicativo nativo real, pode receber notificações por push, trabalhar offline etc. Nesse caso, o usuário não precisa baixar o aplicativo da AppStore ou do Google Play, mas simplesmente salvar na área de trabalho.
Como uma abordagem de tecnologia ou desenvolvimento, a PWA está em desenvolvimento desde 2015 e, recentemente, também vem ganhando enorme popularidade no campo do comércio eletrônico.
Alguns exemplos da vida real:
- No ano passado, o Best Western River North Hotel, após o lançamento de um novo site habilitado para PWA, conseguiu aumentar a receita em 300%;
- O Avito árabe OpenSooq.com, depois de criar suporte para o PWA em seu site, conseguiu aumentar em 25% o tempo necessário para visitar o site e em 260% o número de leads;
- o conhecido serviço de encontros Tinder foi capaz de reduzir a velocidade de download de 11,91s para 4,69s, desenvolvendo o PWA. Além disso, o aplicativo pesa 90% menos do que o seu Android nativo.
O fato de um dos maiores mecanismos para a criação de projetos de comércio eletrônico Magento em 2018 ter lançado a versão de desenvolvimento inicial do PWA Studio também indica que vale a pena prestar atenção a essa tecnologia. A plataforma permite que "pronto para uso" crie um front-end baseado no React para suas soluções de comércio eletrônico com suporte à PWA.
Conselho para quem já possui um projeto na Internet ou apenas a idéia de um novo serviço com suporte para dispositivos móveis: não se apresse em escrever um aplicativo nativo completo, mas primeiro observe a tecnologia PWA. Talvez essa seja a melhor solução de preço / qualidade para o seu produto.
Um pouco de prática. Para criar um aplicativo de notícias móvel nativo simples, desde que já exista um servidor REST pronto, são necessárias aproximadamente 200 a 300 horas / homem para cada plataforma. Com um preço médio de mercado por hora de desenvolvimento de 1.500 a 2.000 rublos por hora, um aplicativo pode custar cerca de 1 milhão de rublos. Se você desenvolver um aplicativo da Web com suporte completo ao PWA: notificações por push, modo offline e outras vantagens, o desenvolvimento levará de 200 a 300 horas por homem, mas o produto estará disponível imediatamente em todas as plataformas. Ou seja, economizando cerca de duas vezes, sem mencionar o fato de que você não precisa pagar taxas para ser colocado nas lojas de aplicativos.
Sem servidor
Essa é outra abordagem moderna para o desenvolvimento. Devido ao nome, muitas pessoas pensam que esse é realmente um desenvolvimento sem servidor, você não precisa escrever código de back-end e qualquer desenvolvedor de front-end poderá criar um aplicativo da Web completo. Mas isso não é verdade!
Ao criar um aplicativo sem servidor, o servidor ainda é necessário, assim como os bancos de dados. A principal diferença entre essa abordagem é que o código de back-end é apresentado na forma de funções de nuvem (outro nome para sem servidor é FaaS, funciona como um serviço ou Funções como serviço) e permite que o aplicativo seja dimensionado rápida e facilmente. Ao criar esse aplicativo, o desenvolvedor pode se concentrar nas tarefas de negócios e não pensar em dimensionar e configurar a infraestrutura, que posteriormente acelera o desenvolvimento de aplicativos e reduz seu custo. Além disso, a abordagem sem servidor ajudará a economizar no aluguel de servidores, pois usa exatamente quantos recursos são necessários para concluir a tarefa e, se não houver carga, o tempo do servidor não será usado e não será pago.
Por exemplo, a grande empresa de mídia americana Bustle conseguiu reduzir os custos de hospedagem em mais de 60% ao mudar para o Serverless. E a Coca-cola, ao desenvolver um sistema automatizado de venda de bebidas por meio de máquinas de venda automática, conseguiu reduzir os custos de hospedagem de US $ 13.000 para US $ 4.500 por ano, mudando para o Serverless.
Nos últimos anos, devido à sua novidade e limitações, o Serverless tem sido usado principalmente para pequenos projetos, startups e MVPs, mas hoje, graças à evolução do software, à versatilidade e ao poder da conteinerização de servidores, aparecem ferramentas que permitem remover restrições, simplificar e acelerar o desenvolvimento de aplicativos em nuvem. .
Isso significa que os cenários de negócios corporativos nos quais a atualização em nuvem era anteriormente considerada impossível (por exemplo, para dispositivos periféricos, dados transmitidos ou aplicativos com estado) agora são uma realidade. Boas ferramentas promissoras são a empresa kNative e sem servidor.
Mas, com tudo isso, o Serverless não é uma bala de prata para o desenvolvimento de aplicativos da web. Como qualquer outra tecnologia, ela tem suas próprias vantagens e desvantagens, e você precisa escolher essa ferramenta com entendimento e "não martelar as unhas com um microscópio", apenas porque é tecnologicamente mais avançado.
Para ajudá-lo a descobrir, aqui estão alguns exemplos em que você deve pensar em Serverless ao desenvolver um novo ou melhorar um serviço da Web existente:
- Quando a carga no servidor é periódica e você paga pela capacidade ociosa. Por exemplo, tínhamos um cliente com uma rede de máquinas de café e era necessário processar solicitações e coletar estatísticas apenas algumas centenas ou milhares de vezes por dia, e à noite o número de solicitações caía para várias dezenas. Nesse caso, é muito mais eficiente pagar apenas pelo uso real dos recursos. Por isso, propusemos e implementamos a solução no Serverless;
- Se você não planeja se aprofundar nos detalhes técnicos da infraestrutura e pagar a mais pela configuração e suporte dos servidores e do balanceador. Por exemplo, ao desenvolver um mercado, você não sabe exatamente qual será o tráfego ou vice-versa - você planeja muito tráfego e seu aplicativo pode suportar a carga; o Serverless é uma excelente opção.
- Se for necessário realizar alguns eventos de streaming na operação do aplicativo principal, escreva dados secundários em tabelas, faça alguns cálculos. Por exemplo, para coletar dados analíticos de ações do usuário, processe-os de uma certa maneira e salve-os em um banco de dados;
- Se você precisar simplificar, unifique ou acelere o aplicativo atual. Por exemplo, para criar serviços de melhoria de desempenho para trabalhar com imagens ou vídeos quando um usuário envia vídeo para a nuvem, e uma função separada está envolvida na transcodificação, enquanto o servidor principal continua funcionando normalmente.
Se você precisar processar eventos de serviços de terceiros. Por exemplo, processe respostas de sistemas de pagamento ou redirecione dados do usuário para o CRM para acelerar o processamento de solicitações de clientes em potencial
Se você possui um aplicativo grande e algumas partes do aplicativo podem ser implementadas da melhor maneira possível, usando um idioma diferente do principal. Por exemplo, você tem um projeto Java e precisa adicionar novas funcionalidades, mas não há mãos livres ou, nesse idioma, a implementação pode demorar mais e já existe uma solução em outro idioma; o Serverless pode ajudar nisso.
Esta não é a lista completa de ferramentas e tecnologias que merecem atenção, apenas compartilhei o que nós mesmos usamos todos os dias em nosso trabalho e sabemos exatamente como elas podem ajudar os negócios.