Qual tipo de aplicativo escolher? Nativo, Híbrido ou PWA?

Publicado por Jose Mauricio em

Apresentação

Olá, sou José Mauricio e sou Desenvolvedor na Ipiranga. Desde 2016 estou inserido nesse contexto de desenvolvimento de aplicativos web e mobile, e no início de cada projeto essa discussão é recorrente e demasiadamente importante. Uma escolha equivocada pode nos causar enormes problemas mais para frente.

Quero abordar alguns tópicos que acho que deve ser levado em consideração na hora de escolher. É importante lembrar que nesse momento a equipe técnica e desenvolvimento precisam estar juntos para entender exatamente qual vai ser o propósito da solução.

Então vamos lá…

Vou começar com um resumo de cada um. Para quem já sabe a diferença entre eles, pode até passar direto para a parte de como escolher.

Tipos de aplicativos

Aplicativos Nativos

Aplicativos nativos são aqueles que são desenvolvidos para uma plataforma específica, sendo a implementação desenvolvida em uma linguagem nativa dessa plataforma. É levada em consideração todas as características do sistema operacional envolvido e o ambiente de desenvolvimento também é diferente para cada um. Temos dois mais famosos e que dominam o mercado: iOs e Android. Ambas possuem particularidades, linguagens e ferramentas diferentes para a execução de um projeto.

As linguagens de programação que predominam cada uma plataforma são Java e Kotlin para Android e Objective-C e Swift para iOS. O ambiente de desenvolvimento para um aplicativo Apple necessariamente vai precisar de um MacBook, onde o preço é bastante elevado comparado aos notebooks de outras marcas que rodam Linux ou Windows. Já o Android em qualquer uma máquina é possível o desenvolvimento (que não trave com o querido Android Studio).

O grande diferencial de escolher nativo é poder obter o máximo do potencial da plataforma e uma grande performance quando trabalhamos com hardware, quando vamos usar câmera, GPS, álbum de fotos, calendário, entre outros. Além de todo trabalho de experiência do usuário personalizado, levando uma maior fluidez do aplicativo.

Geralmente é necessário um investimento maior quando a escolha é nativo, pois a necessidade um time para cada plataforma faz com que seja mais complicado de conseguir especialistas para a composição do time. Outra desvantagens são que ocupam espaço no celular do usuário, o tempo de desenvolvimento geralmente é mais longo e as atualizações são bem mais burocráticas e trabalhosas.

Aplicativos Híbridos

Já estes são um misto de uma aplicação web com o nativo. No final, nada mais é que um aplicativo nativo com uma Web View (similar à um browser) rodando uma aplicação web dentro, mas se comportando como uma aplicação nativa, onde pode rodar em tela cheia, offline, etc.

As linguagens utilizadas são aquelas conhecidas para desenvolvimento de aplicações webs, HTML, CSS E Javascript em sua maioria. E o ambiente de desenvolvimento é mais aberto, você não precisa ter um Mac.

A grande vantagem é que sua equipe só precisa ter a base de desenvolvimento Web para poder começar a gerar um app. Estes aplicativos são multiplataforma, ou seja, com um único código você consegue fazer com que ele rode em ambas as plataformas, sendo necessárias pequenas modificações para satisfazer alguma particularidade do Sistema Operacional.

A principal desvantagem é a performance que não são tão boas quanto aos nativos. Os acessos aos recursos nativos é limitado, pois dependem de plugins que fazem isso, então há uma demora entre uma funcionalidade nova de uma plataforma e o desenvolvimento de um plugin para usar no híbrido. A outra desvantagem é que as lojas costumam recusar o app caso esteja muito diferente de aplicações nativas e seus styleguides.

PWA

Progressive Web Apps são aplicações web com funcionalidades semelhantes aos dos nativos, como o acesso à alguns recursos de hardware. A criação de atalho na home screen do dispositivo permite que o usuário esqueça que é um aplicativo web e até se confunda com um aplicativo nativo. Já que ele é possível realizar envios de notificações via push e o também o funcionamento offline.

Como é uma aplicação web, as linguagens e ferramentas são as mesmas praticamente, usando o HTML, CSS e Javascript também.

O diferencial deste é a distribuição, já que nos outros tipos você precisa colocar em uma loja e fazer atualizações por lá, no PWA é só subir uma atualização como um site que todos os usuários já tem as novas features em mãos, pois o browser já faz esse trabalho de saber que houve mudança.

As desvantagens são que não tem todos os recursos do dispositivo disponíveis. Mesmo funcionando offline, é necessário uma conexão para que todo o conteúdo seja carregado. E a interface é limitada.

Abaixo segue um infográfico

Como escolher?

Persona

Primeiro de tudo, como falei lá em cima, é necessário que o time entenda bem o público que vai ser atingindo. A construção de uma Persona é de fundamental importância para poder responder as eventuais perguntas que possam surgir mais para frente.

Tipo de dispositivo utilizado

É importante saber se a maioria dos acessos vem de um Iphone ou Android. Se possuem acesso à internet ou se tem celulares de última geração ou medianos.

Funcionalidades esperadas

Depois vamos analisar quais as funcionalidades que são necessárias, se elas precisam de um acesso forte ao hardware, como editores de imagens e vídeos, por exemplo. Sendo nestes casos a melhor escolha aplicações nativos.

Internet boa?

PWAs ainda é novidade, nem todos conhecem. Há funcionalidades que ainda não estão disponíveis. Quando a internet é lenta e difícil, a escolha de um PWA pode ser muito interessante, já que ele não precisa ser baixado para conseguir o funcionamento.

Não precisa de acesso avançado ao hardware

Para aplicações que não vão exigir um forte acesso à hardware, para um público-alvo que a performance ainda não é a prioridade, a escolha de um híbrido cai bem. Já que você vai conseguir pegar os usuários de Android e iOS.

Validações de ideias

Um exemplo que posso dar é o meu. Trabalho numa equipe de experimentação, nosso propósito é avaliar a viabilidade de projetos na prática com um produto bem parecido com o final (MVP) e poder ter métricas para saber se vale a pena ir para projeto grande ou não antes de ga$tar. Neste caso utilizamos aplicativos híbridos e PWAs para a maioria, já que o tempo é algo relevante em nosso trabalho.

Conclusão

Como quase tudo em tecnologia, não existe uma melhor que a outra. Cada um vai atender melhor um tipo de demanda diferente, por isso é necessário um grande trabalho em saber o objetivo da aplicação. Dado as necessidades específicas é só analisar o que pesa mais para a escolha. E vale ressaltar que esta etapa de análise em cima da demanda com a equipe técnica vai fazer a diferença entre o sucesso e o fracasso do seu projeto.

Extra

Vou deixar aqui o link de um material de uma apresentação que tive a oportunidade de fazer sobre um framework que permite o desenvolvimento de aplicativos híbridos.

Slides no link https://slides.com/josemauricio/ionic


2 comentários

Alvaro H. Beckerig · 04/02/2020 às 19:36

Excelente artigo, Mauricio! Aprendi muito. Continue sempre assim.

Diogo · 05/02/2020 às 16:35

Mandou muito bem, ótimo conteúdo! Tem q continuar explicando a fundo cada caso, eu ia curtir.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

%d blogueiros gostam disto: