Aplicativos Mobile – Multiplataforma vs Nativo: Visão Técnica

Continuando a nossa discussão sobre aplicativos nativos x multiplataforma, e respondendo a algumas perguntas recebidas, vamos para uma visão mais técnica do assunto. A ideia é apresentar as principais características de cada um desses tipos de aplicativos.

Nativo
Como dito anteriormente, aplicativos nativos são aqueles desenvolvidos em plataformas específicas para cada sistema operacional. Ou seja, o aplicativo é exclusivo para iOS, ou para Android, ou para Windows Phone etc. A maior vantagem dos aplicativos nativos é, sem dúvida, a sua performance, pois são compilados em código de máquina da plataforma.

Além disso, ele podem interagir com todas as ferramentas disponíveis no sistema operacional e com o hardware dos dispositivos. Isso resulta em um aplicativo muito mais integrado com a plataforma, pois o desenvolvedor possui acesso a rotinas em background, processos de sincronização automática, gerenciador de credenciais, comunicação entre diferentes aplicativos, desenvolvimento para wearables, entre diversas outras funcionalidades.

Quanto ao design e usabilidade, as empresas que suportam e desenvolvem os sistemas operacionais mobile evangelizam guias de estilização e diversos componentes  que, em teoria, aproveitam ao máximo os recursos do dispositivo. Esses guias também garantem uma experiência consistente entre aplicativos, de modo que o usuário final possa se familiarizar com a plataforma. Do ponto de vista técnico, não é possível reaproveitar o layout produzido para uma plataforma em outra. Entretanto, o desenvolvimento baseado nesses guias resulta em aplicativos que apresentam um visual consistente e comparável com as demais aplicações da plataforma.

Um problema encontrado no desenvolvimento de apps nativos é a necessidade de desenvolver um projeto para cada sistema operacional que se deseja disponibilizar o aplicativo. Embora muita gente pense o contrário, não é possível aproveitar o código de uma plataforma em outra (por exemplo, usar o código de um aplicativo iOS para gerar um aplicativo para Android). Talvez uma pequena parte seja possível de ser reaproveitada, mas a maioria do código não. Isso ocorre porque cada plataforma possui sua linguagem padrão de desenvolvimento (Objective-C ou Swift para iOS, Java para Android, .NET para Windows Phone etc), o que inviabiliza o aproveitamento de código. As lógicas de negócio obviamente se mantêm, mas a codificação é diferente.

Para desenvolver um aplicativo nativo, basta escolher a plataforma (ou plataformas) na qual deseja disponibilizar o app, criar uma conta de desenvolvedor na empresa proprietária (Apple, Google, Windows etc), baixar a IDE recomendada e começar a se divertir! As IDE’s mais famosas são o XCode para iOS, o Android Studio para Android e o Visual Studio para Windows Phone. No caso do iOS, você precisará obrigatoriamente de um Mac.

Multiplataforma
Como dito anteriormente, aplicativos multiplataformas são aqueles desenvolvidos através de um framework e que são compatíveis com a maioria dos sistemas operacionais existentes (Android, iOS, Windows Phone, BlackBerry etc).

Dentro desta lista de frameworks podemos distinguir dois grupos:

frameworks para a criação de aplicativos híbridos;
frameworks que geram código nativo.

No primeiro grupo podemos destacar, por exemplo, o PhoneGap, que possibilita o desenvolvimento de aplicativos utilizando HTML, CSS e JavaScript. De forma geral, os aplicativos híbridos são sistemas web que são encapsulados em um componente de visualização de páginas web nativo para cada sistema operacional. Desta forma, estes aplicativos possuem um acesso limitado às APIs do sistemas operacional, restringindo-se apenas à funcionalidades básicas como acesso à câmera, GPS e notificações, não permitindo um alto nível de customização. Nesse grupo podemos citar, além do PhoneGap, o Ionic, o Meteor, o Sencha Touch, entre outros.

Já o segundo grupo destaca-se por, através de um único código fonte, ser capaz de gerar código nativo para diversas plataformas. Isto significa que todos os elementos de layout serão traduzidos em elementos. Desta forma, o desenvolvedor que opta por estas soluções é obrigado a utilizar um ambiente de desenvolvimento totalmente à parte que irá englobar tanto a parte de criação de layout, quanto de código fonte propriamente dito. Pode-se destacar as plataformas Xamarin, React Native (desenvolvido pelo Facebook) e o Kony.

A maioria destas soluções apresenta como propaganda a seguinte qualidade: “Faça uma vez, rode em todos os lugares!”. Entretanto, esta afirmação não pode ser considerada totalmente verdadeira. Após a “finalização” do desenvolvimento, percebe-se a necessidade de diversos ajustes para que seu aplicativo execute de forma correta em todas as plataformas suportadas. Sim, o Windows Phone irá te dar muito trabalho. Além disso, é importante destacar o alto custo de manutenção desta aplicações, que podem apresentar comportamentos e aparência totalmente diferentes dependendo do aparelho. Fator que se mostra muito reduzido no desenvolvimento nativo.

Outra desvantagem se deve ao fato da Google e Apple não estimularem este tipo de abordagem para o desenvolvimento de aplicativos. Dessa forma, um aplicativo multiplataforma pode apresentar um destaque muito menor nas lojas de distribuição (Google Play Store e App Store), por exemplo.

 

E aí, já sabe por onde começar o desenvolvimento do seu App? Qualquer dúvida, entre em contato com a gente!

Por: Magno Batista e Renan Ferreira
Revisão: Dandara Chaves

Deixe um comentário