Vivemos um momento incrível para ser Desenvolvedor Mobile. Smartphones, tablets e relógios inteligentes se tornaram uma parte importante em nossas vidas, e o Android e o iOS continuam melhorando e adicionando novos recursos a cada lançamento. Grandes estruturas ajudam os desenvolvedores a criar aplicativos de maneira mais rápida e confiável e o Flutter é, obviamente, uma dessas estruturas.

O Flutter é o novo kit de ferramentas de aplicativos móveis do Google para criar belas interfaces nativas no iOS e no Android (web e desktop) em tempo recorde. Atualmente, temos três maneiras principais de desenvolvedor aplicativos móveis: nativo, web e híbrido.

Nativo

No desenvolvimento nativo, utilizamos as ferramentas oficiais disponibilizadas pelas plataformas, sendo o Xcode para as plataformas Apple e o Android Studio para as plataformas Android. Com os SDKs nativos, é possível aproveitar a expertise de especialistas na plataforma para criar aplicativos rápidos e performáticos, utilizando todos os recursos disponíveis na plataforma.

No entanto, o desenvolvimento nativo tem uma grande desvantagem. Para criar um aplicativo para iOS e Android, você precisará criar e manter dois aplicativos diferentes, um para cada plataforma. Além disso, na hora de desenvolver, você precisará conhecer duas linguagens ou ter duas equipes separadas (uma para cada plataforma).

Web Apps ou Progressive Web Apps (PWA)

No outro extremo do espectro, temos os aplicativos web. Podemos acessá-los a partir de um navegador e eles nos permitem compartilhar o mesmo código para o desenvolvimento móvel web. Isso é ótimo para desenvolvedores que usam HTML, CSS e JavaScript, pois podem reutilizar parte do código de seu sistema principal web com uma base de código unificada e mais fácil de manter.

No entanto, você não poderá utilizar os recursos mais avançados do dispositivo e o usuário pode sentir que seu aplicativo não é realmente um aplicativo, e sim um site no formato de app.

Híbrido

É considerado uma terceira via. Ferramentas como Xamarin, Cordova, Ionic e React Native são exemplos de soluções híbridas. Cada uma delas tem vantagens e desvantagens, mas todas essas estruturas nos permitem criar nossos aplicativos com uma única base de código para dispositivos móveis.

Essas ferramentas geralmente usam alguma forma de JavaScript (exceto o Xamarin, que usa C#). O problema dos apps híbridos é que eles precisam de uma ponte entre o código e o sistema operacional mobile. Por conta disso, alguns apps híbridos têm desempenho bem abaixo do nível dos aplicativos nativos. Além disso, em alguns casos, a complexidade do uso de várias bibliotecas e componentes de terceiros com seus problemas de compatibilidade podem tornar a vida do desenvolvedor um pesadelo.

Onde entra o Flutter, então?

Na categoria híbrida, com alguns recursos que o Google acredita que podem fazer a diferença. O primeiro é que o Flutter é compilado como nativo para obter excelente desempenho. O Flutter também possui o modelo de compilação just-in-time, em que o código é recompilado em tempo real, permitindo recarregamento intenso. Isso significa que, quando desenvolvemos, vemos as mudanças em tempo real, sem necessidade de recompilar. Você escreve o código e vê os resultados imediatamente no seu dispositivo ou emulador. Então, nós temos uma compilação antecipada. O código é compilado nativamente para obter ótimo desempenho em qualquer dispositivo.

O Flutter foi criado para fornecer aos desenvolvedores uma estrutura de desenvolvimento rápido e aos usuários uma ótima experiência. E, claro, você terá uma única base de código para iOS e Android. Outro recurso que pode fazer a diferença do Flutter é que você não tem pontes entre o código e o dispositivo.

Dart como linguagem de programação

Quando desenvolvemos para o Flutter, usamos uma linguagem chamada Dart. É uma linguagem de programação orientada a objetos fortemente tipada, desenvolvida pelo Google. Se você não conhece o Dart, não se preocupe. Conhecendo C#, Java, Swift, TypeScript ou mesmo JavaScript, você não terá problema com o Dart, que é intuitivo e fácil de aprender.

Pré-requisitos

Então, o que eu preciso saber antes de começar? Bem, você precisa conhecer qualquer linguagem de programação orientada a objetos. Entendendo variáveis, fluxo de controle, herança, classes e objetos, você estará pronto.

E o que eu preciso ter? Você pode usar um PC com Windows, Mac ou Linux com seu editor de texto favorito. Você também precisará de um dispositivo ou emulador Android e, se estiver em um Mac, poderá usar um dispositivo iOS ou um simulador.

Este artigo foi uma breve introdução ao Flutter. Fique ligado no blog da Iteris para acompanhar mais dicas e novidades sobre essa solução incrível!

Links úteis