Um diálogo revelador sobre as tecnologias por trás da geração de aplicativos por Inteligência Artificial, o papel do Kotlin e do Flutter no mercado de desenvolvimento, e as estratégias para levar código gerado para o iOS.
Quando você clica em “New App” (ou usa o Build mode) no Google AI Studio e pede para a IA criar um aplicativo, a linguagem e a tecnologia usadas dependem da plataforma que você escolheu construir. Atualmente, geramos aplicativos para duas plataformas principais:
1. Aplicações Web (Padrão)
Se você estiver criando um Web App, a IA cria um ambiente full-stack (cliente e servidor) completo:
- Frontend (Visual do App): A linguagem utilizada é o JavaScript/TypeScript, e o framework padrão que a IA utiliza para criar a interface é o React.
- Backend (Servidor): A IA utiliza um ambiente Node.js (também baseado em JavaScript/TypeScript). Isso permite que o aplicativo se conecte a bancos de dados, gerencie pacotes via npm e faça chamadas de API.
2. Aplicativos Nativos para Android
Se você usar o seletor de plataforma para criar um aplicativo Android nativo, a IA construirá o projeto usando:
- Linguagem: Kotlin.
- Interface Gráfica: Jetpack Compose (o kit de ferramentas oficial e moderno do Google para criar interfaces nativas no Android).
Em ambos os casos, a IA escreve e gerencia todo o código nos bastidores, permitindo visualização em tempo real. Você também tem a opção de exportar o código fonte final gerado para modificar diretamente no seu editor.
O Kotlin é uma linguagem de programação moderna, de código aberto e estaticamente tipada, que se tornou a “queridinha” no mundo do desenvolvimento mobile, especialmente para Android. Aqui estão os principais pontos sobre ela:
- Origem: Criado pela JetBrains (mesma empresa do IntelliJ IDEA e Android Studio). Foi anunciado em 2011, com a primeira versão estável em 2016.
- A Linguagem Oficial do Android: Em 2019, o Google declarou que o desenvolvimento Android seria “Kotlin-first”, deixando o Java em segundo plano.
- Concisão: Permite fazer o mesmo que o Java escrevendo muito menos código repetitivo (boilerplate).
- Null Safety (Segurança contra Nulos): Criado para eliminar o famoso erro
NullPointerException, forçando o programador a tratar valores nulos na escrita do código. - Interoperabilidade com Java: Roda na JVM, permitindo que arquivos Java e Kotlin funcionem juntos perfeitamente.
- Além do Android: É amplamente usado no backend (com frameworks como Spring Boot) e na tecnologia Kotlin Multiplatform (KMP), que permite rodar lógicas de negócios no Android e no iOS simultaneamente.
O Flutter é um kit de desenvolvimento de software (SDK) de código aberto criado pelo Google focado no desenvolvimento multiplataforma.
- A Linguagem (Dart): No Flutter você usa o Dart, uma linguagem otimizada para criar interfaces de usuário de forma rápida.
- Escreva Uma Vez, Rode em Qualquer Lugar: A partir de um único código em Dart, o Flutter compila aplicativos para Android, iOS, Web e Desktop (Windows, macOS e Linux).
- Tudo é um “Widget”: A construção da tela funciona como blocos de Lego. Botões, textos e espaços são widgets que se encaixam para criar designs complexos.
- Hot Reload: Permite alterar o código e ver a mudança na tela do celular em milissegundos, acelerando a velocidade de criação.
- Alta Performance: Diferente de tecnologias que usam “Webviews”, o Flutter desenha seus próprios pixels na tela usando um motor gráfico de alta performance, rodando a 60 ou 120 quadros por segundo.
O Flutter foi apresentado com o codinome “Sky” em 2015, mas sua versão oficial (Flutter 1.0) foi lançada em 4 de dezembro de 2018. Hoje, é uma tecnologia altamente consolidada.
Sobre o risco de ser extinto pelo Google (o famoso fantasma do Killed by Google), hoje esse risco é considerado muito baixo pelos seguintes motivos:
- Uso interno pesado: Produtos como Google Pay, Google Earth e partes do Google Ads são feitos em Flutter.
- Adoção massiva pelo mercado: Gigantes globais como Nubank, BMW, Toyota, Alibaba e Tencent dependem dele.
- Código Aberto (Open Source): Se o Google parasse de investir, a comunidade ou uma fundação assumiria a manutenção, dada a importância comercial da tecnologia.
- Expansão contínua: O Google continua investindo em sua expansão para Web e Desktop e reescrevendo seu motor gráfico para maior performance.
O Impeller é o novo motor de renderização gráfica do Flutter criado sob medida para resolver um problema específico do antigo motor (Skia).
O Skia sofria com o “Shader Compilation Jank”, uma leve travadinha que ocorria em iPhones quando uma animação aparecia pela primeira vez, pois ele traduzia os gráficos na hora. O Impeller resolveu isso pré-compilando todos os shaders de forma offline. Quando o usuário abre o aplicativo, os gráficos já estão prontos para a placa de vídeo.
As vantagens incluem:
- Fim dos engasgos (Zero Jank), com fluidez máxima desde o primeiro toque.
- Aproveitamento de tecnologias de ponta como Metal (Apple) e Vulkan (Android).
- Menos consumo de memória e bateria.
- Suporte aprimorado para elementos 3D dentro dos aplicativos.
Essa é a pergunta de 1 milhão de reais! A decisão de usar React e Kotlin em vez do Flutter nas ferramentas de criação com IA (Vibe Coding) se baseia em limitações técnicas e estratégias de produto:
- Volume de Dados de Treinamento: IAs são treinadas lendo código na internet. Existe uma quantidade astronomicamente maior de código em JavaScript/React e Java/Kotlin do que em Dart/Flutter. Logo, a IA é muito mais fluente nestas linguagens, cometendo menos erros ao gerar lógicas complexas de primeira.
- A Mágica do Navegador: O AI Studio exibe o app no navegador em segundos. É muito leve rodar JavaScript nativamente ali. Compilar Dart e carregar o motor do Flutter na nuvem de forma instantânea seria pesado e lento.
- Política Kotlin-First: A funcionalidade foi feita com a equipe Android, cuja diretriz máxima é o Kotlin. A ideia é que a IA gere a base e você exporte para finalizar no Android Studio de forma puramente nativa, facilitando o acesso a sensores do hardware.
- O Risco Multiplataforma: Pedir para a IA gerar uma base de código única que respeite as diretrizes visuais da Apple, Android e Web simultaneamente é pedir para a IA alucinar o layout. Separando o escopo (Web = React, Mobile = Kotlin), garante-se uma entrega mais robusta.
Como a IA gera o código para Android ou Web, existem estratégias eficientes para levá-los ao ecossistema da Apple (iOS):
Se você gerou em Kotlin (Mobile):
- Compose Multiplatform: Tecnologia da JetBrains que permite pegar a interface e a lógica do app Android (Kotlin) e recompilar para rodar nativamente no iOS. É a principal concorrente moderna do Flutter.
- Tradução com a própria IA: Você pode pedir para a IA ler a lógica feita em Kotlin e reescrevê-la em Swift/SwiftUI, a linguagem nativa do iPhone, para compilar no Xcode.
Se você gerou em JavaScript/React (Web):
- Converter para React Native: A lógica permanece a mesma, você apenas usa a IA para trocar as tags HTML (como divs) por componentes do React Native, gerando um app iOS e Android.
- Empacotadores (Capacitor / Ionic): Ferramentas que pegam o código web, colocam em uma “casca” de aplicativo invisível e adicionam atalhos nativos (câmera, GPS) para ser publicado na App Store.
- PWA (Progressive Web App): Hospedar o código na internet e permitir que o usuário do iPhone “adicione à tela de início” através do Safari. Funciona em tela cheia sem precisar de aprovação da Apple.
