Desenvolvimento híbrido x Nativo

Blog


Desenvolvimento híbrido x Nativo

O desenvolvimento híbrido tem a vantagem de ter um custo menor e ser bem mais fácil e rápido o seu desenvolvimento, além disso é possível fazer aplicativos multiplataforma com poucas alterações. No caso do app nativo ele é feito em sua propria linguagem e por isso pode ser um pouco mais rápido. Porém tem um custo de desenvolvimento mais caro.

Abaixo uma lista com as principais diferenças

Híbrido

  • Um desenvolvedor conhecedor de HTML, CSS e JS é capaz de, em um único código fonte, desenvolver para ambas as plataformas (Android, iOS e Windows Phone);
  • Tem a capacidade de acessar recursos nativos do dispositivo através do Cordova e Phonegap, que servem basicamente para criar um app nativo, capaz de abrir uma webview executando o HTML/CSS e JavaScript, e mostrar ao usuário;
  • Respeita a UX/UI do sistema operacional do dispositivo, porém, utiliza um navegador embutido no aplicativo para demonstrar ao usuário.

Hoje em dia, há um verdadeiro leque de frameworks disponíveis no mercado que auxiliam o desenvolvimento híbrido; os mais usuais pelos desenvolvedores são:

  • Ionic, que é baseado em HTML, CSS e JavaScript, e utiliza o AngularJS;
  • Apache Cordova, sendo uma biblioteca de API’s que possibilita acessar funções nativas de dispositivos móveis apenas com JavaScript;
  • Phonegap, que semelhante ao Ionic, também tem como base o uso de HTML, CSS e JavaScript. Ele garante o funcionamento nas plataformas desejadas utilizando o Apache Cordova;
  • O Meteor nos possibilita escrever apps com JavaScript, prometendo reduzir radicalmente o código necessário para o desenvolvimento;

Além destes, podemos citar vários outros exemplos, como Chocolate-UI, Framework 7, Ratchet, jQuery mobile, Lungo, e a lista é grande.

  • O Xamarin (utilizando C#), React Native (Javascript) e Flutter, têm propósitos parecidos em relação à buscar métodos de desenvolvimento de widgets nativos do dispositivo, porém, dividem espaço com os Frameworks em relação à em um único código, proporcionar apps multiplataformas.

Nativo

  • É necessário um desenvolvedor especialista para cada plataforma (Android com Java, iOS com Objective-C ou Swift, e Windows Phone com C#) ou um desenvolvedor ninja que manja muito de ambas plataformas;
  • Possui acesso à todos os recursos do dispositivo, com bom desempenho (acelerômetro, giroscópio, geolocalização, etc);
  • Como são desenvolvidos especificamente para cada plataforma, explora muito bem toda a UX/UI , seguindo o padrão de interface do usuário adequadamente.

Em relação ao conhecimento/linguagens de programação:

  • Para o Android, além de seguir as boas práticas do Google em relação ao design, é necessário dominar a base do Java, bem como alguma IDE com suporte específico de componentes e SDKs, podendo citar o Android Studio, NetBeans, Eclipse, etc. Pode ser desenvolvido em sistemas operacionais Windows, OS X e Linux;
  • Para o iOS, também seguindo as boas práticas da Apple para a UX/UI de interface do usuário, é imprescindível pleno conhecimento de Objective-C ou Swift, além de dominar a ferramenta específica (e única) de desenvolvimento da Apple, o Xcode. Portanto, é desenvolvido exclusivamente em um sistema operacional OS X;
  • Para Windows Phone, é necessário ter o Microsoft Visual Studio como IDE de desenvolvimento, com todos os SDKs instalados e ter conhecimento na linguagem C#, podendo ser desenvolvido em sistemas operacionais Windows, OS X e Linux.