Skip to content
Programing

Kotlin 2.4.0: A Re-arquitetura do Multiplatform para Sistemas Modulares

Published: Duration: 7:37
0:00 0:00

Transcrição

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