Programing
Compose Multiplatform 1.10.0: Hot Reload Estável e a Chegada da Navigation 3 no Ecossistema KMP
Published:
•
Duration: 7:34
0:00
0:00
Transcript
Apresentadora: Juliana Santos
Convidado: Rafael Costa (Engenheiro de Software Sênior e Especialista em Mobile)
Apresentadora: E aí, pessoal, bem-vindos de volta ao Allur! Se você trabalha com desenvolvimento mobile ou desktop, com certeza já sentiu aquele frio na barriga — ou talvez um pouco de cansaço — ao falar sobre desenvolvimento multiplataforma, né? A gente sempre busca aquele "santo graal": um código que rode em todo lugar, mas sem perder a performance e o feeling de um app nativo.
Apresentadora: E pra destrinchar tudo isso comigo, eu trouxe um cara que respira Kotlin e já quebrou muito a cabeça montando arquiteturas mobile escaláveis. Ele é Engenheiro de Software Sênior e um entusiasta de longa data da comunidade KMP. Rafael Costa, seja muito bem-vindo ao Allur, Rafa! Que prazer ter você aqui, cara.
Convidado: Valeu, Juliana! O prazer é todo meu. É um momento muito massa pra gente conversar sobre isso, porque o ecossistema tá fervendo. Quem acompanhou o KMP desde o início, lá atrás, quando era tudo "experimental", olha pra essa versão 1.10.0 e sente que a ferramenta finalmente virou gente grande, sabe?
Apresentadora: Pois é! E eu queria começar exatamente por aí. A gente ouve muito que o KMP era ótimo pra compartilhar lógica de negócio, mas a parte de UI (a interface) ainda era aquele ponto de interrogação. O que essa versão 1.10.0 traz que dá essa segurança de que "agora vai" até no mercado corporativo?
Convidado: Cara, a palavra-chave aqui é maturidade. Antigamente, o KMP era vendido como: "compartilha sua lógica e faz a UI nativa". Só que as empresas começaram a querer compartilhar a UI também pra ganhar velocidade. O Compose Multiplatform veio pra isso, mas ele tinha alguns "gargalos" que incomodavam o desenvolvedor no dia a dia. Nessa versão 1.10.0, a JetBrains e o Google basicamente disseram: "Beleza, agora os problemas de infraestrutura acabaram". A gente tem um motor estável, uma navegação unificada e o apoio oficial do Google, que agora recomenda essa arquitetura de núcleo compartilhado. Isso tira o medo do CTO de investir numa tecnologia que pode morrer amanhã.
Apresentadora: Entendi. E falando em "dia a dia do dev", tem uma coisa que todo mundo ama (quando funciona) e odeia (quando quebra): o tal do Hot Reload. Agora ele tá estável no CMP 1.10.0. Explica pra gente: o que isso muda na prática? É só "ver a cor mudar mais rápido"?
Convidado: (Risos) Olha, Ju, é muito mais que isso. Sabe aquele ciclo de: altera um padding, dá um "Build", espera dois minutos, o app abre na tela inicial, você navega até onde estava pra ver se ficou bom... e descobre que não ficou? Isso mata a produtividade. O Hot Reload estável no 1.10.0 permite que você altere seu componente `@Composable` e a mudança apareça instantaneamente no simulador ou no desktop. E o pulo do gato: ele mantém o estado! Se você preencheu um formulário gigante e mudou a cor do botão, o texto que você digitou continua lá. Pra quem faz UI pra iOS e Desktop usando Compose, isso é vida. É o fim daquela desculpa de "tô esperando o Gradle terminar pra tomar um café", sabe? Agora o café vai ter que ser em outro momento!
Apresentadora: Massa! Eu imagino o ganho de tempo no final de uma sprint. Mas agora, vamos falar de um calo que todo mundo que mexe com KMP sente: Navegação. Antes era uma bagunça, né? Cada plataforma de um jeito, ou dependendo de lib de terceiros tipo o Voyager ou Decompose. E agora chegou a Navigation 3. O que ela resolve de verdade?
Convidado: Cara, a navegação era o "calcanhar de Aquiles". No Android a gente tinha o Jetpack Navigation, mas levar isso pro iOS ou Desktop era um parto. A Navigation 3 foi reconstruída pensando no mundo multiplataforma desde o dia 1. Ela é declarativa, o que combina perfeitamente com o jeito que o Compose funciona. O mais legal é que ela abstrai a complexidade. Você define suas rotas, gerencia sua stack de telas e isso funciona igualzinho no iOS, no Android e até na Web. Não precisa mais ficar fazendo aquele "expect/actual" chato pra decidir como trocar de tela no iPhone. É uma API unificada. É tipo assim: "Roda aí e a Navigation cuida do resto".
Apresentadora: E tem um ponto no post que me chamou a atenção, que é a integração com o Lifecycle, né?
Convidado: Exato! Isso é fundamental. Quando você muda de tela, você quer que os dados sejam preservados ou que um processo seja parado pra não gastar bateria. A Navigation 3 conversa nativamente com o ciclo de vida do Compose. Então, se você tá numa transição de tela no iOS, ela se comporta como um app iOS deveria se comportar, mas com o código que você escreveu uma vez só.
Apresentadora: Muito bom. Agora, mudando um pouco pro lado estratégico... a gente viu que o Google deu um "selo de aprovação" pro KMP recentemente. No ambiente das grandes empresas, as "enterprises", o que pesa mais na hora de escolher o Compose Multiplatform em vez de, sei lá, um Flutter ou um React Native?
Convidado: Pergunta de um milhão de dólares! O diferencial do KMP com Compose 1.10.0 é a performance e a flexibilidade. O Compose renderiza direto usando Skia ou Impeller, então a fluidez é de app nativo mesmo, não parece uma página web mascarada. Além disso, a redução de custo é real. Você não precisa de dois times (um Android e um iOS) sincronizando cada detalhe de botão. Um time só faz a base e a interface, e a consistência de marca fica perfeita. E se você precisar de algo muito específico do iOS, o KMP te deixa acessar a API nativa de um jeito muito mais orgânico que os concorrentes. É o melhor dos dois mundos: produtividade de multiplataforma com poder de nativo.
Apresentadora: Cara, é muito louco pensar como isso evoluiu rápido. Mas, nem tudo são flores, né? O que você diria que ainda é um desafio ou que o pessoal tem que ficar de olho mesmo com essa versão 1.10.0?
Convidado: Com certeza. O ecossistema ainda está crescendo. Embora a navegação tenha melhorado muito, bibliotecas muito específicas — tipo algumas de mapas ou biometria avançada — às vezes ainda exigem que você escreva um tiquinho de código nativo. E tem a curva de aprendizado pro pessoal que vem puramente do iOS (SwiftUI). O Compose é incrível, mas é um paradigma diferente. Mas olha, com o Hot Reload estável e essa Navigation 3, as "fricções" que sobram são mínimas perto do benefício.
Apresentadora: Legal! Pra gente fechar, se alguém tá ouvindo agora e tem um projeto KMP rodando numa versão mais antiga, qual o seu conselho? Atualiza agora ou espera um pouco mais?
Convidado: Atualiza ontem! (Risos). Sério, ajusta as versões no seu Gradle, sobe pro 1.10.0. Só de ganhar o Hot Reload estável, sua equipe vai te agradecer no primeiro dia. E já começa a olhar pra Navigation 3 pra simplificar aquela arquitetura de telas que provavelmente tá cheia de gambiarra pra funcionar no iOS. O futuro do desenvolvimento multiplataforma é o Kotlin, e essa versão é a prova de que o terreno tá muito sólido.
Apresentadora: Sensacional, Rafael! Papo muito esclarecedor. Acho que deu pra tirar aquela impressão de que KMP é "coisa de entusiasta" e mostrar que o negócio tá pronto pro mundo real. Galera, as principais conclusões de hoje: o Compose Multiplatform 1.10.0 estabilizou o fluxo de trabalho com Hot Reload, unificou a navegação com a Navigation 3 e agora tem o respaldo total pra ser usado em projetos de grande escala.
Convidado: Eu que agradeço, Juliana! Valeu pelo convite e bora codar que o futuro é multiplatform!
Apresentadora: É isso aí! Valeu por sintonizar o Allur, o seu podcast de tecnologia. Não esquece de seguir a gente na sua plataforma de áudio favorita e compartilhar esse episódio com aquele seu amigo dev que ainda tá sofrendo com build demorado. Até a próxima, tchau!
Tags
mobile development
kotlin multiplatform
compose multiplatform
ios
android
kotlin
productivity