Kotlin Multiplatform — Google I/O 2024

Ricardo Lecheta
6 min readMay 18, 2024

--

No desenvolvimento mobile, temos a opção de desenvolvimento nativo, híbridos e cross-platform. Frameworks cross-platform modernos, permitem fazer o desenvolvimento para várias plataformas com a mesma base de código, incluindo: Android, iOS, Web e Desktop. Neste mundo, onde reinam React Native e Flutter, vem surgindo um novo potencial gladiador, que está ganhando cada vez mais força, o próprio Kotlin.

O Kotlin é o queridinho da comunidade Android, e desde 2017 ele é a linguagem oficial de desenvolvimento nativa para Android, desbancando o Java. Esse anúncio foi feito durante o Google I/O de 2017. A propósito, nessa época, enquanto eu ainda escrevia rs, lancei o livro Android Essencial com Kotlin (2017 — novatec).

Google I/O 2017

E no último Google I/O 2024, o Kotlin Multiplatform teve uma grande atenção, se consolidando como uma alternativa robusta e promissora aos frameworks híbridos e cross-platform atuais. Sua capacidade de combinar o melhor dos dois mundos — desenvolvimento nativo e compartilhamento de código — o torna uma escolha atraente para empresas e desenvolvedores que buscam otimizar seus processos e entregar aplicativos de alta qualidade em diversas plataformas.

Google I/O 2024

Em suma, o Google I/O 2024 marcou um novo capítulo na história do Kotlin, impulsionando sua jornada rumo ao topo do desenvolvimento multiplataforma. O futuro do KMM é brilhante, e estamos apenas começando a vislumbrar todo o seu potencial.

Mas o que é o Kotlin Multiplatform?

O Kotlin Multiplatform foi criado para simplificar o desenvolvimento de projetos cross-platform. Ele reduz o tempo gasto escrevendo e mantendo o código para diferentes plataformas, enquanto mantém a flexibilidade e os benefícios da programação nativa.

Com o Kotlin Multiplatform, em conjunto com o Compose Multiplatform (framework para construção de telas), é possível criar apps e reutilizar também a interface entre Android, iOS, Desktop e Web, aumentando significativamente a produtividade e eficiência na construção.

Qual o potencial do Kotlin?

A escolha entre Kotlin Multiplatform, React Native, Flutter e outras plataformas para o desenvolvimento de aplicativos depende de vários fatores, incluindo as necessidades específicas do projeto, a necessidade de acesso as últimas inovações do sistema ou controle de sensores e hardware, mas principalmente a experiência da equipe de desenvolvimento com cada framework.

No próprio site do Google for Developers temos um post explicando quando usar um framework ou outro.

Kotlin e Flutter

A familiaridade com a tecnologia costuma ser sempre uma das primeiras opções na escolha de um framework, essa é uma das mesmas razões pelas quais equipes especializadas em web adotam o React Native e toda a stack JavaScript/TypeScript

Esse é um dos pontos fortes doKotlin, pois desenvolvedores Android nativo podem utilizar sua expertise para também criar apps para iOS, onde 90% do código ou mais é compartilhado entre ambas as plataformas, e o restante dos 10% são códigos específicos ou configurações de um projeto iOS. Como Kotlin é extramente robusto e possui uma comunidade gigantesca, ele ganhará cada vez mais espaço no mercado.

Agora vamos explorar outro ponto positivo do Kotlin (o seu uso no backend). Para exemplificar, vamos usar como exemplo a stack do Javascript mais uma vez, sendo que um dos grandes trunfos desta stack, é que além de React.js (web) e React Native (mobile), o Node.js (backend) é amplamente usado no backend. Isso permite o uso da mesma stack em todos os frameworks, fortalecendo o conceito de programador fullstack.

O Kotlin possui um potencial semelhante. Assim como o Node.js, o Kotlin é usado no backend há tempos, inclusive em aplicações de grande porte com critérios rigorosos de alta disponibilidade e escalabilidade. Frameworks consagrados e robustos como o Spring Boot para construção de APIs em Java podem ser facilmente utilizados e potencializados com o Kotlin. Grandes empresas e bancos no Brasil já adotam essa prática, e há também a opção de usar frameworks nativos de Kotlin, como o Ktor, entre outros. Se backend e construções de API com Kotlin é um tema novo para você, confira esta apresentação do Google I/O 2019.”

Aproveitar essa stack comum entre vários canais — seja web, mobile ou na construção de APIs — é um diferencial significativo. Facilita tanto a atuação de profissionais fullstack quanto as questões de onboarding e transição entre times, já que a mesma tecnologia é adotada para todas as plataformas e aplicações.

Transpassando essa questão da stack, o Kotlin é de fato uma linguagem muito moderna, expressiva e concisa, oferecendo recursos avançados de programação que aumentam a produtividade e a qualidade do código, tornando-o uma escolha excelente para desenvolvimento de aplicações.

Algo curioso é que sempre fui e ainda sou um grande entusiasta do Flutter. Olho por olho, dente por dente, é indiscutível a produtividade, facilidade e elegância que o Flutter traz para a criação de apps modernos e ricos.

Mas voltando ao assunto do que é curioso, é que a alguns anos atrás, enquanto implantávamos o Flutter em um grande banco, surgiu a ideia e desafio de utilizá-lo também no backend. Isso seria um grande argumento ‘vendedor’ do Flutter internamente no banco, e aumentaria ainda mais a sua relevância e potencial de se consolidar como uma plataforma fullstack. Mas na época fui contra essa iniciativa, pois para desbancar plataformas como Java e .NET no backend, seria necessário um vasto conjunto de bibliotecas prontas para integração, como comunicação com soluções de mensageria à mainframes, além de soluções maduras para criar aplicações com micro-serviços e até mesmo implementar tarefas de rotinas como geração de arquivos PDFs, Excel, entre outros.

Mas minha opinião sobre o Kotlin é muito diferente. Como o Kotlin executa sobre uma JVM, ele pode usufruir de todo o ecossistema estável e escalável do Java, que já está consolidado há anos, tornando o Kotlin uma escolha robusta e confiável para o backend. Sim, o Kotlin tem o grande potencial multiplataforma, que o Dart/Flutter não conseguiu atingir ou encantar no nível coorporativo de grandes empresas.

Conclusão

O Kotlin de fato vai começar a fazer cada vez mais barulho e com isso desenvolvedores e arquitetos mobile precisam estar preparados para tomar a melhor decisão.

Na BRQ, apoiamos nossos clientes em diversas tecnologias e somos agnósticos em relação aos frameworks utilizados. Acreditamos que a tecnologia é apenas um meio, e que a escolha de um framework envolve diversos fatores, alguns já relatados aqui. O mais importante é se conectar ao desafio ou o problema que estamos solucionando e como podemos agregar valor através da tecnologia escolhida.

O Kotlin, com seu ecossistema robusto e potencial multiplataforma, é uma das muitas ferramentas que consideramos para oferecer soluções eficientes e escaláveis aos nossos clientes.

E para encerrar, vale a pena ficar de olho nos estudos de caso no site da Jetbrains; nomes como Netflix, McDonald’s, Philips, dentre outras, já aparecem na lista como cases do Kotlin Multiplatform.

--

--