Desenvolvimento de aplicativos multiplataforma em 2020: as melhores estruturas a serem consideradas

illustration of application development
Last updated

Em seus 12 anos de existência, os aplicativos móveis evoluíram bastante.

Em 2008, havia apenas 500 deles. Hoje, há mais de cinco milhões. (1)

Seja o comercial da Apple de 2009, “Tem um app pra isso”, um slogan de marketing ou uma verdadeira profecia, uma coisa é certa — a maneira como nos comunicamos e vivenciamos o mundo ao nosso redor mudou completamente na última década; uma mudança no estilo de vida atribuída, em grande parte, aos pequenos quadradinhos organizados com cuidado em nossas telas.

Tanto é assim que essa vida dominada por aplicativos que passamos a levar nos faz checar nossos celulares 58 vezes por dia, sendo que 90% desse tempo é dedicado ao uso de aplicativos. (2, 3)

Naturalmente, empresas de todos os portes têm acompanhado de perto a tendência dos dispositivos móveis, cientes de que um aplicativo próprio aumenta sua visibilidade, fortalece a fidelidade dos clientes e melhora seus resultados financeiros. 

Em nível mundial, estima-se que a receita com aplicativos móveis (downloads pagos, compras dentro dos aplicativos e publicidade) se aproxime dos US$ 600 bilhões, com os números tendendo a aumentar, já que ter um aplicativo empresarial está se tornando uma norma para qualquer empresa em ascensão. (4) 

Os aplicativos, portanto, não só têm grande demanda, como também podem ser altamente lucrativos. No entanto, quando se trata de desenvolver um aplicativo nativo tanto para Android quanto para iOS, os altos custos de desenvolvimento e os longos prazos de implantação podem exercer uma pressão enorme até mesmo sobre as equipes mais ambiciosas.

A boa notícia é que há uma maneira de contornar isso.

Uma base de código para dominar todas as plataformas: prós e contras do desenvolvimento móvel multiplataforma

Quem tem acompanhado o cenário do desenvolvimento de aplicativos já deve ter ouvido falar deles — Xamarin, React Native, Flutter, Cordova e outros semelhantes.

Ao longo dos anos, essas estruturas têm atendido às necessidades das empresas que buscam alcançar usuários de smartphones das plataformas iOS e Android (que representam 98% do mercado de sistemas operacionais móveis), sem precisar desenvolver dois aplicativos distintos para cada sistema operacional. (5, 6)

Com isso, eles conseguiram se beneficiar de:

  • Same accessibility with half the effort. One of the biggest benefits cross-platform app development offers is the ease of code reusability. Instead of releasing multiple native apps for each platform, you can reuse a significant amount of code and have the same app deployed across multiple platforms.
  • Reduced costs. Because the code is written once, the development team will have to put in half the effort which translates into reduced production, maintenance, and hiring costs. The need for learning a platform-specific language is also reduced as fluency in JavaScript, C++, C#, and HTML5 will in most cases suffice for cross-platform development.
  • Shorter time to market. Less work also means quicker deployment times. Subsequently, less time spent in development means you can deliver value to your customers faster and tweak your applications according to their feedback sooner.
  • Near-native feel. Despite the substantial UX and UI differences between iOS and Android, cross-platform apps can emulate the native feel by handling design and navigation mismatches by default.
Quer saber mais?
Entre em contato hoje mesmo para falar com um especialista em fraude e identidade da Microblink

Essas vantagens parecem boas demais para ser verdade. Por que alguém optaria pela abordagem nativa e criaria dois aplicativos distintos para ambas as plataformas, se é possível obter a mesma acessibilidade com metade do trabalho? 

Acontece que há várias razões, incluindo: 

  • Language barrier. One of the main challenges that come with cross-platform app development is the fact developers are writing an app in a non-native language. This means they won’t have the same access to the native components simply because the code is written in a higher-level language. To bridge the two, they need to rely on third-party libraries specific to each framework, and the younger the framework is, the scarcer the library.
  • UX discrepancy. Because both Android and iOS have very specific graphical user interfaces (navigation, buttons, menus, etc.), more effort is required to achieve a native feel for each platform. Sometimes, the labor put into making this happen outweighs the above-listed benefits.
  • Performance issues. Performance is another known dealbreaker, and even though the differences are for the most part minute, developing a mobile game with Flutter or React Native won’t match the native technology.
  • Size. Depending on the framework, code linkage and third-party plugins can nearly double the file size of your cross-platform app. And as you can imagine, larger apps don’t get as much love as their lighter counterparts. Not only do they require more storage space on the user’s device, but they also take more time and data to download. In fact, Google Play Apps & Games published a report showing a 100MB app will receive ~30% fewer downloads than an app that weighs around 10MB. 
  • Your target audience. Finally, you may only need to serve Android or iOS users, in which case going native would make perfect sense. The programming language is now fully compatible with the platform and the device, meaning your developer won’t have to fish out that gyroscope plugin for Cordova.

Agora você pode ver que o desenvolvimento multiplataforma não é só alegria. Muitas coisas podem dar errado, e cabe a você decidir se essa é uma abordagem que vale a pena para o seu projeto.

Ainda assim, para a grande maioria das empresas (como o Facebook, o Google e o eBay), a abordagem de desenvolvimento multiplataforma tem se mostrado um método econômico e confiável para a criação de aplicativos. 

Vamos avaliar algumas das principais estruturas de 2020 e ver em que aspectos elas se destacam e em que ficam aquém.

React Native: escreva uma vez, implante em qualquer lugar

Fundado pelo Facebook em 2015, o React Native rapidamente se consolidou como uma das estruturas de desenvolvimento multiplataforma mais populares entre os desenvolvedores. 

O principal fator por trás de seu uso em larga escala é a linguagem de programação do framework, o JavaScript, que é utilizada em 95% dos 1,7 bilhão de sites do mundo. (7, 8)

Isso significa que um desenvolvedor que já tenha criado um site usando JavaScript não enfrentará uma curva de aprendizado íngreme ao trabalhar em um aplicativo multiplataforma no React Native. 

Outra grande vantagem que o React Native oferece é sua capacidade de reproduzir com sucesso a sensação de um aplicativo nativo. Embora não inclua muitos componentes de interface do usuário prontos para uso, há uma grande variedade de componentes de terceiros que proporcionam uma experiência nativa fluida. 

O problema é que, quando você depende excessivamente de bibliotecas externas, pode estar trocando uma sensação de aplicativo nativo por um desempenho mais lento. Como o React Native requer uma ponte para seus wrappers nativos, você pode acabar com um aplicativo que possui muitas chamadas nativas, o que causa problemas de desempenho.

Cordova: vale a pena usar o WebView? 

Assim como o React Native, o Cordova é uma opção atraente para desenvolvedores web que se interessam pela ideia de reutilizar seus conhecimentos já adquiridos em HTML, CSS e JS para criar um aplicativo tanto para Android quanto para iOS.

No papel, o Cordova parece um sonho. Há várias ferramentas e bibliotecas que facilitam a sua vida — o Ionic, por exemplo, é ótimo para lidar com a interface do usuário e integrar serviços adicionais, como biometria de impressão digital e processamento de pagamentos, ao seu aplicativo.

Mas tenha cuidado antes de embarcar na onda do Cordova. Se você não estiver ciente dos limites da estrutura (e dos seus próprios), esse sonho pode rapidamente se transformar em um pesadelo. 

Em primeiro lugar, não faria sentido desenvolver um jogo sério ou um aplicativo pesado com o Cordova. Ao contrário do React Native, que aciona funcionalidades nativas por meio de uma ponte, o Cordova exibe o código em um WebView, e executar um aplicativo dessa forma não só pode causar uma perda significativa de desempenho, como também torna o aplicativo vulnerável a ataques XSS. 

É provável também que você tenha que dedicar algum tempo a soluções alternativas para bugs específicos da plataforma. Às vezes, esse processo pode ser bastante frustrante, já que funcionalidades nativas que você sempre considerou naturais agora precisam ser corrigidas com plug-ins que exigem personalização ou, pior ainda, desenvolvimento do zero. 

Para aplicativos pequenos e simples, o Cordova é uma opção que vale a pena considerar. Aplicativos de estilo de vida, notícias, eventos, educação e mensagens, por exemplo, já foram e podem ser facilmente desenvolvidos com o Cordova, que, no momento da redação deste artigo, detém 7,88% da participação no mercado de aplicativos. 

Mas, se você estiver desenvolvendo um jogo com muitas animações, considere usar a abordagem nativa. Você perderá mais tempo tentando descobrir as soluções alternativas necessárias do que o tempo que economizou ao escrever uma única base de código.

Xamarin: o pioneiro das plataformas cruzadas

O Xamarin foi um dos primeiros frameworks de código aberto lançados com o objetivo de fazer a ponte entre plataformas nativas e tornar o desenvolvimento para dispositivos móveis uma opção mais econômica. 

E, embora o Xamarin tenha sido lançado em 2011, foi somente após sua aquisição pela Microsoft, em 2016, que a comunidade de desenvolvedores finalmente começou a lhe dar alguma credibilidade e impulso.

Hoje, é uma das principais estruturas de desenvolvimento multiplataforma, contando com mais de 60.000 colaboradores de mais de 3.700 empresas. (9)

Baseado em C#, uma linguagem de programação orientada a objetos, o Xamarin é considerado por muitos como mais difícil de aprender do que o React Native, embora o código funcione perfeitamente em diversas plataformas, incluindo Android, iOS, tvOS, watchOS, macOS e Windows.

Além disso, os desenvolvedores têm à disposição todas as ferramentas necessárias para criar seus aplicativos multiplataforma por meio do .NET, incluindo APIs específicas para cada plataforma, pacotes e XAML.

Atualmente, há duas opções à escolha ao desenvolver um aplicativo no Xamarin, e ambas permitem atingir níveis de desempenho quase nativos.

  1. Xamarin Native offers a low-level approach to building separate applications for each platform with Xamarin.iOS and Xamarin.Android libraries. It’s a basis for exposing some native functionalities to Xamarin Forms by calling platform-specific APIs.
     
  2. Xamarin.Forms is a framework on top of Xamarin Native with all functionalities of Xamarin. It’s a better option for those just starting out with Xamarin as developers are able to reuse up to 96% of the code and product owners can scale and maintain their apps more easily.

Flutter: o novato no mercado

Ao contrário do React Native e do Xamarin, o Flutter é uma estrutura que existe há apenas alguns anos. 

Mas, apesar de ser uma novata no mercado, a Flutter causou grande impacto na comunidade desde o seu lançamento pelo Google em 2018, provando ser uma concorrente confiável e inovadora. 

Sua linguagem de programação, o Dart, pode não ser tão popular quanto o JavaScript, mas é relativamente fácil de aprender; para começar, grande parte da sintaxe é semelhante à do Swift, do Kotlin e do Java, o que significa que desenvolvedores com experiência em C/C++ não terão muita dificuldade em migrar para essa abordagem orientada a objetos na criação de aplicativos. 

E mesmo que encontrem alguns obstáculos pelo caminho, o Flutter oferece uma documentação abrangente para apoiar a transição deles.

Em seguida, temos a arquitetura do Flutter, que, em comparação com o React Native, não depende do JavaScript Bridge para traduzir as chamadas para a API nativa. O código escrito em Dart é compilado em código de máquina nativo, resultando em um desempenho mais fluido e aprimorado do aplicativo, além de uma melhor experiência do usuário. 

No entanto, a forma como o Flutter se comunica diretamente com a plataforma, utilizando sua própria biblioteca de componentes integrados, não é ideal. É difícil encontrar plug-ins de terceiros, e as APIs específicas para hardware não são nem de longe tão abundantes quanto no React Native, o que torna o Flutter uma opção menos adequada para aplicativos que dependem de hardware. 

Também vale a pena mencionar que o motor C/C++ e o Dart ficam bastante pesados e, embora os aplicativos criados no Flutter possam ter um desempenho melhor, eles ocupam muito espaço. 

Ainda assim, os widgets que vêm prontos para uso são totalmente personalizáveis e, combinados com o recurso de recarregamento dinâmico, tornam o Flutter uma estrutura ideal para o desenvolvimento de um aplicativo MVP com uma interface de usuário personalizada e perfeita até o último pixel.

Qual framework você deve escolher?

Bem, a resposta a essa pergunta dependerá, em grande parte, dos objetivos que você estabeleceu para o seu aplicativo, bem como do tempo e do orçamento que você pode destinar à sua produção e manutenção. 

Seja qual for a abordagem que você escolher — nativa, multiplataforma ou até mesmo uma combinação das duas —, os dispositivos móveis vieram para ficar. Pelo contrário, espera-se que passemos, em média, 3,7 horas em nossos smartphones por dia este ano, um aumento de 10% em relação ao ano anterior e um crescimento de 35% em relação a 2017. (10)

Seja qual for a forma que você decidir desenvolver seu aplicativo, tenha certeza de que a Microblink estará à sua disposição para lhe dar suporte quando você precisar de uma solução de digitalização poderosa e integrada ao aplicativo.

Descubra nossas soluções

Para explorar nossas soluções, você está a apenas um clique de distância. Experimente nossos produtos ou converse com um de nossos especialistas para se aprofundar no que oferecemos.

Relatório
Analisando o aumento das fraudes de identidade impulsionadas pela IA

A IA não se limitou a tornar a fraude mais rápida. Ela a transformou em um sistema. Analisamos milhões de interações relacionadas à identidade para mapear como os ataques de identidade estão evoluindo em diferentes regiões, tipos de ataque e níveis de sofisticação — e o que as organizações precisam repensar para acompanhar essa evolução.

Veja os dados