IGTI Blog
aplicações para dispositivos móveis

Tecnologias para criação de apps para dispositivos móveis

Saiba mais sobre o desenvolvimento para dispositivos móveis nas formas nativa e híbrida.

Com base neste estudo, pode-se afirmar que a criação de aplicações para dispositivos móveis, popularmente conhecidas como apps, continua sendo uma excelente oportunidade de negócios; seja para o meio empresarial – cuja distribuição é, em geral, interna e com usuários restritos, seja para a distribuição em lojas de aplicativos, tanto do Google (Google Play), quanto da Apple (App Store).

Com o domínio dessas duas empresas no mercado, a grande maioria dos apps são desenvolvidos, portanto, nas plataformas Android e iOS, respectivamente. Além disso, a criação e divulgação de apps é praticamente um pré-requisito de startups de tecnologia.

Para a criação de apps, é necessário que o desenvolvedor domine pelo menos uma das diversas tecnologias existentes. Este artigo introduz alguns dos ambientes de desenvolvimento e linguagens de programação mais populares e utilizados atualmente para o desenvolvimento de apps.

1 – Desenvolvimento nativo  

Aqui situam-se as tecnologias nativas fornecidas pelos próprios fabricantes dos sistemas operacionais Android e iOS, ou seja, Google e Apple. Para Android, o desenvolvedor tem à sua disposição ferramentas como o Android Studio e a utilização de Java e/ou Kotlin como linguagens de programação. Já para iOS, o desenvolvedor tem o XCode como ferramenta principal e Objective C e/ou Swift como linguagens de programação.

Dentre as principais vantagens do desenvolvimento nativo, pode-se destacar:

  •         Suporte nativo em cada plataforma;
  •         Código mais “próximo” ao hardware, o que pode indicar melhor eficiência de execução;
  •         Acesso em primeira mão às novidades de cada plataforma;
  •         Ideal para aplicações que demandam muito processamento, como jogos, por exemplo.

Dentre as principais desvantagens, pode-se destacar:

  •         Android Studio e XCode são consideradas ferramentas “pesadas” que, consequentemente, exigem um computador robusto;
  •         Código com pouca ou nenhuma possibilidade de compartilhamento entre as plataformas;
  •         Necessidade de, pelo menos, dois programadores ou duas equipes de desenvolvimento, caso seja de interesse a adoção de ambas as plataformas, a não ser que o desenvolvedor domine ambas as tecnologias, o que é raro.

As desvantagens listadas acima serviram de propósito para o surgimento de tecnologias que, a partir de uma base única de código e/ou tecnologia, permitem a criação de apps praticamente nativos tanto para Android quanto iOS. Isso é possível graças a um processo de transformação do código escrito pelo desenvolvedor para código nativo de cada plataforma, que varia de tecnologia para tecnologia. Os itens 2, 3 e 4 referem-se a esse tipo de tecnologia.

2 – Xamarin

O Xamarin é uma tecnologia adquirida pela Microsoft que permite a criação de apps nativos a partir de uma única base de código. A linguagem de programação utilizada é C#, muito popular no mercado. A principal ferramenta utilizada é o Visual Studio, da própria Microsoft.

Dentre as principais vantagens do Xamarin, pode-se destacar:

  •         Uma única base de código em C#;
  •         Possibilidade de códigos distintos para cada plataforma;
  •         Excelente ponto de entrada para desenvolvedores da plataforma .NET.

Dentre as principais desvantagens, pode-se destacar:

  •         O Visual Studio é considerado uma ferramenta “pesada” que, consequentemente, exige um excelente computador;
  •         Nem sempre se consegue acesso às novidades das plataformas em primeira mão.

3 – React Native

O React Native é uma tecnologia criada pelo Facebook baseada no React, que é uma biblioteca JavaScript bastante consolidada no mercado. O React Native permite a criação de apps nativos a partir de uma única base de código JavaScript. Qualquer editor de código pode ser utilizado. Destaca-se atualmente o Visual Studio Code, da Microsoft.

Dentre as principais vantagens do React Native, pode-se destacar:

  •         Uma única base de código em JavaScript;
  •         JavaScript é uma linguagem muito popular atualmente e que está em constante evolução;
  •         Possibilidade de códigos distintos para cada plataforma;
  •         Excelente ponto de entrada para desenvolvedores JavaScript.

Dentre as principais desvantagens, pode-se destacar:

  •         O React Native ainda é bastante instável e o processo de atualização não é nada trivial;
  •         Nem sempre se consegue acesso às novidades das plataformas em primeira mão.

Leia também: Acompanhando a transformação digital com projetos de aplicações para dispositivos móveis

4 – Flutter

O Flutter é uma tecnologia criada pelo Google que permite a criação de apps nativos a partir de uma única base de código. A linguagem de programação utilizada é Dart. Qualquer editor de código pode ser utilizado.

Dentre as principais vantagens, pode-se destacar:

  •         Uma única base de código para as plataformas;
  •         Possibilidade de códigos distintos para cada plataforma.

Dentre as principais desvantagens, pode-se destacar:

  •         Tecnologia bastante recente, ou seja, tem muito a amadurecer;
  •         Nem sempre se consegue acesso às novidades das plataformas em primeira mão.

 5 – Ionic

O Ionic é uma tecnologia que permite a criação de apps híbridos a partir de uma única base de código JavaScript. Até a versão 3, era utilizado o Angular como framework interno. A partir da versão 4, há suporte para React, Vue e até mesmo JavaScript puro.

A tecnologia híbrida, diferentemente da nativa, “hospeda” o app na camada WebView de cada plataforma. Em linhas gerais, é como se a aplicação se situasse somente no navegador do dispositivo. A comunicação com o hardware (câmera, GPS, acelerômetro etc.) é feita, em geral, através de plugins.

Dentre as principais vantagens, pode-se destacar:

  •         Uma única base de código para as plataformas;
  •         Possibilidade de criação de apps para mais plataformas, como a web, por exemplo;
  •         Suporte à criação de Progressive Web Apps;
  •         Possibilidade de códigos distintos para cada plataforma;
  •         Excelente ponto de entrada para desenvolvedores web.

Dentre as principais desvantagens, pode-se destacar:

  •         Como os apps não são nativos, pode haver perda de performance;
  •         Nem sempre se consegue acesso às novidades das plataformas em primeira mão.

É claro que essas não são as únicas tecnologias disponíveis no mercado para a criação de apps. Existem diversas outras, menos populares, tais como:

Atualmente, algumas empresas iniciam o desenvolvimento de seus apps de forma híbrida, pois o desenvolvimento é, teoricamente, mais rápido. Uma vez que a startup obtém sucesso com o seu produto, ela contrata mais desenvolvedores e migra a aplicação para o formato nativo. Um exemplo interessante é este artigo do AirBNB, que, recentemente, abandonou o projeto feito com React Native e passou a adotar o desenvolvimento nativo.

O quadro a seguir compara o desenvolvimento nativo e híbrido.

aplicações para dispositivos móveis

De certa forma, é possível concluir que a escolha de qual tecnologia utilizar pode ser um aspecto pessoal, ou seja, pode depender do quão familiar e interessante a tecnologia é ao desenvolvedor. Programadores .NET podem ter mais facilidade com o Xamarin. Programadores web podem gostar mais do Ionic ou mesmo do React Native. Programadores hipsters podem se aventurar em uma nova linguagem (Dart) com o Flutter. Programadores obcecados com performance podem se manter nos respectivos ambientes nativos.

Professor autor: Raphael Ribeiro Gomide