Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Nativo, Web ou Multiplataforma?

Existem três abordagens para construir um aplicativo mobile:

Nativo — código escrito na linguagem da plataforma: Kotlin ou Java para Android, Swift ou Objective-C para iOS. Acesso direto a todas as APIs do sistema operacional. O custo: duas codebases completamente separadas para a mesma funcionalidade.

Web (PWA) — uma aplicação web empacotada para funcionar offline e ser instalada na tela inicial. Usa HTML, CSS e JavaScript, rodando dentro do motor do navegador. Funciona nas duas plataformas com uma codebase só, mas fica limitada ao que o navegador permite — notificações push, acesso à câmera e sensores dependem do suporte do browser, que varia bastante entre Android e iOS.

Multiplataforma — frameworks como React Native, Flutter e Kotlin Multiplatform permitem escrever uma codebase que gera aplicativos nativos para ambas as plataformas. O trade-off é diferente de um PWA: o código roda fora do navegador, com acesso a APIs nativas, mas cada framework tem suas limitações e peculiaridades.

Neste livro, vamos usar React Native com Expo. O React Native traduz componentes escritos em JavaScript/TypeScript para views nativas de cada plataforma — um <View> vira um android.view.View no Android e uma UIView no iOS. O Expo adiciona uma camada de ferramentas que simplifica o setup: não precisa instalar Android Studio nem Xcode para começar a desenvolver.

A escolha é pragmática. O TamoJunto já usa React no frontend web — reutilizamos a mesma linguagem (TypeScript), os mesmos conceitos (componentes, hooks, state, props) e parte da mesma lógica de negócio. Um desenvolvedor que acabou de construir o EventList em React vai reconhecer imediatamente a estrutura do código mobile.