Desenvolvimento Mobile - Por onde começar?


Smartphones

Quando optamos por desenvolver para smartphones, temos algumas opções em mente: o desenvolvimento nativo, que inclui uma linguagem de programação e ambientes de desenvolvimento específicos para cada plataforma; desenvolvimento multiplataforma, utilizando linguagem web como Javascript; ou ainda um Progressive Web App (PWA), ou seja, uma aplicação web de verdade pensada para esses pequenos aparelhos. 

Em meio a tudo isso, como saber as principais vantagens e desvantagens de cada forma de desenvolvimento e como ela se sai adapta à imensa variedade de aparelhos e tamanhos de tela disponíveis no mercado? 

O Boom dos Smartphones iniciado no final da década passada com o lançamento do iPhone e do sistema operacional Android, juntamente com a derrocada da gigante BlackBerry, fez desses pequenos 'computadores de mão' companheiros inseparáveis da grande maioria das pessoas. Sendo, já há alguns anos, a principal forma de acesso à internet e às redes sociais, que desenvolveram aplicativos próprios que nos notificam todas as vezes em que alguém curte nossas fotos no Instagram, recebemos solicitações de amizade no Facebook, ou até mesmo temos um tweet retuitado.

Com toda essa demanda, não é de se espantar a quantidade de possibilidades quando se trata de desenvolver para essas plataformas, correto?

Seguem as principais formas de desenvolvimento para dispositivos móveis disponíveis na atualidade, bem como suas vantagens e desvantagens:

Android-Ios


Desenvolvimento Nativo

iOS
Todos sabemos da importância do sistema operacional da Apple para a popularização dos Smartphones. Apesar de seus aparelhos não serem exatamente "populares", ao menos em termos de preço, a marca construiu uma história de evolução do seu sistema a cada novo lançamento. E não podemos deixar de citar ainda que a App Store foi a primeira loja de aplicativos disponível e que isso se provou uma das maiores revoluções na forma de distribuição de software nos últimos anos.

O desenvolvimento iOS é um dos mais fechados que temos, é necessário um computador da Apple rodando as últimas versões do sistema operacional MacOSX, de preferência, bem como domínio da linguagem Objective-C ou Swift. A Apple desenvolveu e aperfeiçoou ao longo dos anos sua IDE chamada XCode que inclui recursos muito úteis e dispõe de um simulador que consegue replicar praticamente tudo o que um aparelho físico faz, o que facilita muito o desenvolvimento e os testes.

Vantagens:
  • Ecossistema otimizado pelo fato de não ter muita variedade de aparelhos;
  • Ferramentas que auxiliam muito no desenvolvimento;
  • Desempenho muito bom mesmo em aparelhos mais antigos;
Desvantagens:
  • Necessita de um MacOSX para seu desenvolvimento;
  • Plataforma mais fechada que a concorrência;

Android
Esse sistema operacional dispensa mais comentários já que é o mais utilizado no mundo, hoje muito próximo de atingir os 90% de market share no que tange aos smartphones.

Projeto de código aberto baseado no kernel linux que foi comprado e aperfeiçoado pelo Google, sendo lançado em meados de 2008 e disponível em milhares de aparelhos de dezenas de marcas hoje em dia, e que acabou de ter sua nona versão, Android Pie, lançada no mês de agosto desse ano.

Por se tratar de uma plataforma aberta (não 100%, eu sei), o desenvolvimento Android pode ser realizado em computadores com sistema operacional Windows, Linux ou Mac. Seu desenvolvimento é feito na linguagem Java, essa que ainda é uma das mais utilizadas no mundo. Hoje também é possível desenvolver para a plataforma utilizando a linguagem Kotlin, criada pelo Google para ser a linguagem oficial desse sistema.

Além do domínio de uma dessas linguagens, também é necessário o Android Studio, ferramenta que possui, assim como o XCode, um simulador do sistema, bem como as ferramentas de desenvolvimento (Android-SDK).

Vantagens:
  • Possibilidade de desenvolver em qualquer sistema operacional;
  • Linguagem Java pode ser utilizada em inúmeros projetos fora do android, tornando-a mais "útil" que a Swift, por exemplo;
  • Plataforma de Código Aberto; 
Desvantagens:
  • Número imenso de aparelhos torna a tarefa de desenvolver e testar muito mais complexa;
  • Android Studio é um devorador de recursos e exige uma máquina relativamente boa para não travar, embora esteja melhorando nas últimas versões;

Desenvolvimento Multiplataforma


Ionic


Ionic
Esse Framework pode ser utilizado para desenvolvimento para Android, iOS e Windows 10, bem como para Progressive Web Apps, e é hoje utilizado por diversas empresas e StartUps ao redor do mundo.

Ele surgiu como um projeto paralelo ao AngularJS, framework de desenvolvimento web criado por um ex-funcionário da Google e que é, até hoje, apoiado pela gigante, e assim como o AngularJS, passou por mudanças profundas a partir de sua segunda versão, se estabilizando a partir do terceiro, e atual, lançamento.

O Ionic facilita o desenvolvimento móvel para aqueles que já dominam as tecnologias web, já que ele é basicamente HTML, CSS e Javascript, claro que tudo isso encapsulado juntamente com componentes do Angular. O problema é que ele roda em cima de uma WebView e acaba não sendo recomendado para projetos que exijam muito do aparelho.

Vantagens:
  • Fácil e rápido para desenvolver para quem já desenvolve para a Web;
  • Possui componentes que se adaptam a cada plataforma;
Desvantagens:
  • Desempenho não é dos melhores;

React Native

React Native
Esse segundo framework foi criado pelo Facebook e é uma extensão de outro projeto da gigante, o ReactJS. O RN dá a possibilidade de utilizar basicamente um código e compilá-lo para Android ou iOS. Embora, ao contrário do Ionic, não possui componentes adaptáveis a cada plataforma, o que dificulta um pouco a estilização desses.

Por ser baseado no ReactJS, utilizamos basicamente Javascript para seu desenvolvimento. O RN possui componentes próprios que são traduzidos para as plataformas de destino, se comportando bastante como um código nativo, embora não o seja, o que dá um aumento de performance quando comparado com o framework anterior.

Vantagens:
  • Desempenho superior, próximo ao nativo;
  • Relativamente rápido para aprender, já que o código é basicamente Javascript, principalmente para quem desenvolve com React;
Desvantagens:
  • Mais difícil de estilizar e adaptar que outras alternativas;

Outros Frameworks que podem ser utilizados para desenvolvimento multiplataforma incluem:
  • Flutter - Outro Framework multiplataforma que é apoiado pela Google. Ao contrário das outras alternativas, utiliza uma linguagem própria para seu desenvolvimento: Dart, o que pode afastar quem já domina outras linguagens de programação, mas pode atrair quem está iniciando agora nesse mundo. O desempenho é muito próximo do nativo e dá para utilizar o Android Studio para seu desenvolvimento;
  • NativeScript - Esse é, por assim dizer, um misto de Ionic e React Native. Utiliza bastante de componentes Angular mas também faz jus a uma camada de compilação para código nativo, o que faz com que o desempenho seja similar ao obtido pelo React Native e Flutter.
  • PWA - Progressive Web App não é bem um framework, mas é uma tendência crescente já que suas principais vantagens incluem a de que para se desenvolver um basta saber desenvolver para a Web, pode ser "instalado" tanto em Android quanto iOS, funcionando inclusive offline e também de não ser necessário de uma loja para publicar o App. O que acaba também sendo uma desvantagem, já que é necessário atrair o usuário até o site para que ele o "adicione a tela inicial" de seu sistema operacional para que esse permaneça no mesmo e possa acessar os recursos do aparelho;

Bom, com essa lista de vantagens e desvantagens de cada uma das maneiras de se desenvolver, espero ter ajudado a escolher sua próxima plataforma de desenvolvimento.

Claro que tudo depende do projeto. Se for algo rápido e que não seja muito complexo, recomendaria o Ionic, com certeza, caso contrário, o React Native. A não ser que você já esteja familiarizado com o framework React, daí o React Native é a aposta mais certa.

Quanto ao mercado de trabalho, posso dizer que a procura por esse último também está muito mais aquecida que a do Ionic, então se for para escolher uma plataforma para começar, React Native é o que recomendo sem dúvidas.

Próximo
«Anterior
Anterior
Próximo Post »
0 Comentar