Programing
Kotlin 2.4.0: A Re-arquitetura do Multiplatform para Sistemas Modulares
Published:
•
Duration: 7:37
0:00
0:00
Transcript
Apresentadora: Juliana Santos
Convidado: Rafael Silveira (Arquiteto de Software e Especialista em Mobile)
Apresentadora: E aí, pessoal, bem-vindos de volta ao Allur! Eu sou a Juliana Santos e hoje o papo é para quem vive o ecossistema mobile e está sempre de olho no que a JetBrains anda aprontando. Olha, se você trabalha com Kotlin Multiplatform, ou KMP para os íntimos, sabe que a gente passou anos naquela estrutura de módulo único, né? Funcionava bem, mas quando o projeto crescia, a coisa começava a ficar… digamos… "interessante" demais para gerenciar. Mas gente, o jogo mudou. Em junho de 2026, fomos presenteados com o Kotlin 2.4.0, e eu não estou falando de uma atualizaçãozinha boba de performance, não. Estamos falando de uma re-arquitetura completa que foca em sistemas modulares. É o fim daquela "maçaroca" de código compartilhado num lugar só e o começo de uma era de bibliotecas compartilhadas independentes. Hoje, vamos entender por que essa versão 2.4.0 é o marco definitivo para quem quer escala e o que muda na prática para o desenvolvedor. Para me ajudar a desbravar esse novo mundo, eu trouxe um cara que respira Kotlin e já está quebrando a cabeça com essas mudanças.
Apresentadora: Estou aqui hoje com o Rafael Silveira! O Rafa é arquiteto de software, especialista em desenvolvimento multiplataforma e tem acompanhado de perto essa evolução do Kotlin desde os primórdios. Rafa, seja muito bem-vindo ao Allur, cara! Muito massa ter você aqui.
Convidado: Valeu, Juliana! O prazer é todo meu. É um prazer estar aqui no Allur, sou ouvinte assíduo, então é uma honra participar. E olha, você tocou num ponto crucial: o Kotlin 2.4.0 chegou chutando a porta. A gente estava sentindo falta dessa maturidade na estruturação de projetos grandes, e essa mudança para um modelo modular, tipo "shared-library", é literalmente o que a gente precisava para parar de "pisar no calo" uns dos outros em times grandes. Vamos destrinchar isso aí!
Apresentadora: Com certeza! Rafa, para começar, explica para a gente: por que essa mudança para sistemas modulares é tão importante? Antes a gente tinha aquele módulo `shared` clássico, né? O que estava pegando ali que a JetBrains resolveu mudar tudo agora na 2.4.0?
Convidado: Cara, o problema era o sucesso, sabe? O KMP começou a ser adotado por empresas gigantes. E aí, imagina um time com 50, 100 desenvolvedores mexendo no mesmo módulo `shared`. Era um caos! Tipo assim, você mudava um detalhe na lógica de autenticação e, por algum motivo bizarro de acoplamento, quebrava o tracking de analytics ou a listagem de produtos. O modelo de módulo único criava um gargalo de compilação gigante. Cada alteração boba forçava o compilador a olhar para o mundo inteiro. Com a 2.4.0, a gente passa a trabalhar com o conceito de *Shared Libraries* independentes. Agora eu posso ter um módulo `shared-auth`, um `shared-data`, um `shared-ui-logic`, e eles são independentes de verdade. É a separação de preocupações levada a sério no multiplataforma. Isso dá um fôlego para a manutenção que você não tem ideia, legal demais.
Apresentadora: Nossa, total! Eu imagino o alívio de quem gerencia monorepos gigantes. E essa história de reusabilidade? Porque agora, se eu crio uma biblioteca de log ou de acesso a dados em KMP 2.4.0, eu consigo "plugar" ela em outros projetos de um jeito mais limpo, né? Não preciso mais carregar o "pacote completo" se eu só quero uma parte.
Convidado: Exatamente! Esse é o "pulo do gato". Antes, para você extrair algo do `shared`, era um parto. Agora, como a arquitetura já nasce modular, você cria componentes que são agnósticos. Você faz um módulo de `shared-analytics` e pode usar ele no App A, no App B e até num microsserviço se quiser, já que o Kotlin também roda no back-end. E tem outra coisa, Ju: a escalabilidade dos times. Cada squad pode cuidar de um módulo específico. O pessoal de "Pagamentos" mexe no módulo de pagamentos, o pessoal de "Perfil" mexe no deles, e ninguém se atrapalha nos merges de Git. A produtividade sobe muito porque você diminui a carga cognitiva. Você não precisa entender o projeto inteiro para mexer em uma funcionalidade.
Apresentadora: Massa! E saindo um pouco da arquitetura e indo para as "tripas" do Kotlin, eu vi que essa versão trouxe o suporte total ao Java 26. Cara, Java 26! A gente piscou e o Java voou, né? Como isso impacta quem está no dia a dia do Android, por exemplo?
Convidado: Pois é, o Java não está para brincadeira! Ter suporte ao Java 26 no KMP 2.4.0 é fundamental porque o target Android é, em grande parte, dependente do ecossistema JVM. Então, a gente consegue usar as APIs mais modernas, as otimizações de performance que vieram no Java 26 e ter uma interoperação muito mais lisa. Mas ó, tem uma coisa que me deixou ainda mais empolgado: a compilação incremental para WebAssembly, o Wasm.
Apresentadora: Opa, WebAssembly! Isso é o futuro, né? O que mudou exatamente na compilação? Porque antes diziam que era meio lentinho o feedback loop, né?
Convidado: Era o calcanhar de Aquiles! Tipo assim, você mudava uma linha de código e tinha que esperar uma eternidade para ver o resultado no browser via Wasm. Agora, com a compilação incremental na 2.4.0, o compilador só processa o que você alterou. O tempo de build caiu drasticamente. Isso abre portas gigantescas para a gente levar lógica complexa para a web com performance de código nativo. Imagina ferramentas de edição de imagem, cálculos pesados ou até jogos rodando no browser com o mesmo código Kotlin que você usa no seu app iOS e Android. É um ecossistema que está se fechando de um jeito muito poderoso.
Apresentadora: É aquela promessa do "escreva uma vez, rode em qualquer lugar", mas sem as gambiarras de antigamente, né? O que eu acho massa do KMP é que ele não tenta esconder o nativo. Ele fala: "ó, a lógica chata de regra de negócio, cálculo e banco de dados você compartilha, mas a UI continua sendo Swift no iOS e Compose no Android". A 2.4.0 só reforça que esse é o caminho ideal para grandes empresas, né?
Convidado: Com certeza. Inclusive, saiu um artigo no ADT Magazine recentemente comentando justamente isso: que o Kotlin 2.4.0 elevou o padrão. Ele parou de ser uma "promessa" para projetos experimentais e se consolidou como a arquitetura preferencial para quem quer escala. Você não sacrifica a experiência do usuário, porque a interface ainda é nativa e fluida, mas você ganha uma consistência de negócio absurda. Se o cálculo do frete mudou, muda num lugar só e reflete em tudo. Sem erro humano de implementar diferente em cada plataforma. É o melhor dos dois mundos, de verdade.
Apresentadora: Com certeza! Bom, pessoal, o papo está incrível, mas o nosso tempo está voando. Deu para sacar que o Kotlin 2.4.0 não é só sobre novas funcionalidades, mas sobre como a gente organiza o pensamento para construir software que dura e que cresce sem dor. Rafa, valeu demais pelo papo, cara! Suas explicações foram muito claras. Quem quiser te seguir ou saber mais sobre seu trabalho, onde te encontra?
Convidado: Eu que agradeço, Juliana! Foi um prazer. Quem quiser trocar uma ideia sobre Kotlin, KMP ou arquitetura, pode me achar no LinkedIn como Rafael Silveira ou no meu GitHub. E galera, testem a 2.4.0! Comecem a quebrar o monolito de vocês em shared-libraries, vocês vão me agradecer depois, viu? Valeu!
Apresentadora: É isso aí, fica a dica do mestre! Se você quer saber mais, os links para a documentação do Kotlin 2.4.0 e os artigos que mencionamos estão aqui na descrição do episódio. Valeu por sintonizar o Allur, o seu podcast de tecnologia. Não esquece de seguir a gente no seu player favorito. Até a próxima, tchau!
Tags
mobile development
kotlin multiplatform
ios
android
kotlin
webassembly
modularity