Skip to content
Programing

Kotlin Multiplatform Amadurece: Conheça o Kit 'Koko' e o Lançamento do Kotlin 2.4.20

Published: Duration: 8:45
0:00 0:00

Transcript

Apresentadora: E aí, pessoal, bem-vindos de volta ao Allur! Se você trabalha com desenvolvimento mobile, sabe que o "santo graal" sempre foi aquela ideia de escrever o código uma vez e rodar em qualquer lugar. Mas a gente sabe que, na prática, o buraco é mais embaixo, né? Entre soluções que pesam a mão na performance e outras que te deixam preso num ecossistema fechado, o Kotlin Multiplatform, ou KMP para os íntimos, surgiu com uma proposta diferente: compartilhar a lógica, mas manter a alma nativa. Só que muita gente ainda olhava pro KMP e pensava: "Será que isso já tá pronto pra produção pesada, pra nível comercial mesmo?". Bom, se você tinha essa dúvida, o episódio de hoje é pra você. A Kotlin Foundation acabou de lançar o kit inicial "Koko" e a versão 2.4.20 do Kotlin chegou com o pé na porta, trazendo melhorias que mudam o jogo. Hoje vamos entender se esse é o momento definitivo de maturidade da plataforma e como essas ferramentas aceleram a entrega de apps robustos. Apresentadora: E para mergulhar nesse ecossistema comigo, eu trouxe um cara que respira mobile e já quebrou muita cabeça (e consertou muita coisa) com arquitetura de apps. Ele é Engenheiro de Software Senior e um entusiasta de longa data do ecossistema Kotlin. Seja muito bem-vindo ao Allur, Tiago Meirelles! Valeu por aceitar o convite, Tiago. Convidado: Valeu, Juliana! É um prazer enorme estar aqui no Allur. Cara, esse tema é quente, viu? Eu brinco que o KMP saiu daquela fase da "adolescência rebelde" e agora resolveu colocar um terno e ir trabalhar sério. Tô animado pra gente desbravar essas novidades hoje. Apresentadora: Massa! E Tiago, vamos começar pelo básico, mas que é a dúvida de muita gente. O KMP sempre teve essa promessa de compartilhar lógica de negócios, mas a barreira de entrada às vezes parecia alta, né? Muita configuração, muito "boilerplate". Aí surge esse tal de kit "Koko". O que que ele é exatamente? É tipo um "create-react-app" do Kotlin ou algo mais profundo? Convidado: (Risos) Boa analogia! O Koko é, na verdade, uma resposta direta da Kotlin Foundation a esse feedback da comunidade. Sabe quando você vai começar um projeto KMP e perde dois dias só configurando o Gradle, decidindo qual biblioteca de networking usar, como injetar dependência em iOS e Android ao mesmo tempo? O Koko é um "starter kit" oficial que já traz as melhores práticas mastigadas. Ele foca muito no mercado comercial. Então, ele já vem estruturado pra escalabilidade. É tipo assim: "Olha, não inventa a roda, usa esse esqueleto aqui que a gente garante que funciona bem pra iOS e Android". Ele tira aquele peso inicial de "por onde eu começo?". Apresentadora: Cara, isso é sensacional. Porque o que afastava muita gente, inclusive empresas menores, era justamente esse tempo de setup, né? O custo de entrada era alto. Com o Koko, você sente que a curva de aprendizado fica mais suave para quem tá vindo do Android nativo puro? Convidado: Com certeza, Ju. E não só pro dev Android, mas ele ajuda a vender a ideia pro dev iOS também. Porque o Koko foi desenhado pra que a integração com o Swift seja mais limpa. Às vezes o pessoal de iOS ficava meio cabreiro com o KMP porque o código gerado parecia "estranho" no Xcode. O Koko já organiza o projeto de um jeito que a interoperabilidade fica muito mais natural. Ele usa o que há de mais moderno em termos de estrutura de projeto. É literalmente um "acelerador" de negócios. Apresentadora: E falando em modernidade, a gente não pode ignorar o lançamento do Kotlin 2.4.20. Eu vi que teve muito foco no compilador K2, certo? O que que mudou de fato nessa versão que faz o desenvolvedor sentir a diferença no dia a dia? É só velocidade ou tem algo mais "sob o capô"? Convidado: Ah, tem muita coisa boa! O compilador K2 é o coração dessa revolução. Na versão 2.4.20, a gente sente um amadurecimento bizarro na velocidade de compilação. Sabe aquele tempo de tomar um café enquanto o projeto builda? Tá ficando cada vez mais curto, o que é ótimo pra produtividade. Mas pra mim, o grande "pulo do gato" dessa versão é a estabilidade das APIs de exportação pro Swift. Eles melhoraram muito a forma como os tipos do Kotlin são mapeados pro ecossistema da Apple. Tipo, lidar com `Flows` e `Suspend Functions` do Kotlin dentro do Swift era um parto antigamente, precisava de várias pontes. Agora, as ferramentas estão deixando isso quase transparente. Apresentadora: Massa! Isso toca num ponto que eu ia te perguntar. O grande desafio do KMP sempre foi a convivência pacífica com o time de iOS, né? A gente sabe que rola aquela resistência tipo: "Pô, vou ter que rodar código Kotlin no meu app?". Como você vê o Kotlin 2.4.20 ajudando a quebrar esse gelo? Convidado: É bem por aí mesmo, rola um preconceito natural. Mas o que o 2.4.20 traz, junto com o Koko, é a confiança. Quando você entrega um framework KMP pro seu colega de iOS e o código que ele consome lá parece um Swift nativo, sem erros bizarros de tipos e com uma performance de execução igual ao que ele escreveria na mão, a resistência cai por terra. O Kotlin 2.4.20 focou muito em diminuir o tamanho dos binários gerados também. Ninguém quer um app que engorda 50MB só porque adicionou uma biblioteca compartilhada, né? Apresentadora: Com certeza! Ninguém merece app pesado sem motivo. Agora, Tiago, mudando um pouco o foco: você mencionou que o KMP agora está pronto para o mercado comercial e empresarial. Na sua experiência, qual é o cenário ideal hoje pra uma empresa falar: "Beleza, vamos de KMP e não de Flutter ou React Native"? Convidado: Essa pergunta é de um milhão de dólares! (Risos). Cara, o KMP brilha quando você quer o máximo de performance nativa e quer usar as UI's nativas (Jetpack Compose no Android e SwiftUI no iOS), mas tem uma lógica de negócio muito complexa que você não quer escrever duas vezes. Imagina um app de banco, com mil regras de validação, cálculo de juros, persistência de dados offline... fazer isso duas vezes é pedir pra ter bug diferente em cada plataforma. No KMP, você faz uma vez, testa uma vez em Kotlin, e as duas plataformas consomem. É o melhor dos dois mundos: UI 100% nativa com a fluidez que o usuário ama, e lógica 100% compartilhada com a segurança que o desenvolvedor precisa. Apresentadora: É o famoso "compartilhe o que faz sentido, não o que dói", né? Tipo assim, não precisa forçar a barra pra compartilhar a tela se cada plataforma tem seu jeito de interagir. Convidado: Exatamente! E o Koko ajuda muito nisso porque ele já separa as camadas bonitinho. Ele te induz a manter a UI separada da lógica. É uma arquitetura que te "obriga" a ser um bom desenvolvedor, digamos assim. Apresentadora: E Tiago, você que tá sempre testando as versões RC (Release Candidate), teve algum desafio real que você enfrentou recentemente com o KMP e que viu ser resolvido com essas atualizações? Algum momento "aha!"? Convidado: Tive sim! Recentemente estava trabalhando num projeto com muitos módulos. O gerenciamento de dependências entre módulos compartilhados e as plataformas era uma zona no Gradle. Com as melhorias do Kotlin 2.4.20 e a estrutura que o Koko sugere, o tempo que eu gastava resolvendo conflito de versão caiu drasticamente. Outra coisa foi o suporte ao Debug no Xcode. Antes era meio "caixa preta", agora tá muito mais fácil rastrear um crash que acontece dentro do código Kotlin quando ele tá rodando no simulador de iOS. Isso tira uma ansiedade enorme do time. Apresentadora: Pô, imagino! Nada pior que um crash que você não sabe nem em que linguagem tá acontecendo (risos). E pra quem tá ouvindo a gente agora, seja um dev pleno querendo se atualizar ou um tech lead decidindo a stack do próximo projeto: qual o primeiro passo? Baixar o Koko e sair brincando? Convidado: Com certeza! Minha dica é: criem um projeto "Hello World" usando o kit Koko. Vejam a estrutura, tentem entender como ele separa o que é `commonMain`, `iosMain` e `androidMain`. Leiam o changelog do Kotlin 2.4.20, especialmente a parte do compilador K2. E, cara, não tenham medo de misturar. O KMP permite que você comece pequeno. Não precisa converter o app inteiro. Começa compartilhando uma classe de validação de formulário, ou a camada de acesso à API. Quando você vê o negócio funcionando, você vicia! Apresentadora: Muito legal, Tiago. Realmente parece que o Kotlin Multiplatform chegou num estágio onde não é mais uma aposta arriscada, mas uma escolha estratégica bem sólida. A maturidade do ecossistema, com o apoio da fundação e essas ferramentas novas, dá uma segurança muito maior pra gente botar a cara no sol, né? Convidado: Totalmente! O futuro é compartilhado, mas sem perder a essência nativa. E o Kotlin tá liderando isso de um jeito muito bonito de ver. Apresentadora: Com certeza! Bom, papo tá incrível, mas estamos chegando ao fim. Tiago, queria te agradecer demais pela presença, por compartilhar essa visão técnica e prática com a gente. Foi massa! Convidado: Eu que agradeço, Juliana! Valeu pelo espaço e parabéns pelo Allur, sou fã do podcast. Até a próxima, pessoal! Apresentadora: Valeu! E pra você que acompanhou a gente: as notas do episódio com os links pro kit Koko e pra documentação do Kotlin 2.4.20 estão lá no nosso site. Se você tá pensando em escalar seu desenvolvimento mobile com qualidade, esse é o caminho. Valeu por sintonizar o Allur, eu sou Juliana Santos e a gente se vê no próximo episódio. Tchau!

Tags

mobile development kotlin multiplatform ios artificial intelligence android swift kotlin