Kotlin Multiplataforma
Respondendo as principais dúvidas sobre essa tecnologia
que promete permitir o compartilhamento da lógica de
negócios para seus aplicativos iOS, Android, Web e Desktop
Quem sou eu
💼 Empreendedor
💻 Engenheiro de Software
♿ Cadeirante
📖 Autor do livro A liderança técnica
leanpub.com/querserlidertecnico
Como e onde eu uso KMP
Principais dúvidas
● O que é e pra que serve KMP?
● Quais diferenças de KMP para Flutter e React Native?
● Como ficaria a estrutura do meu projeto?
● Quais partes do meu projeto eu devo migrar para KMP?
● Qual é a quantia média de código compartilhado e específico por plataforma?
● Como empacotar KMP como bibliotecas iOS e Android?
● Como fazer para integrar KMP com código específico de cada plataforma?
● Qual o impacto no tamanho dos binários finais de apps que possuem partes em KMP?
● Como testar? Preciso de testes para cada plataforma?
● Quais são os principais benefícios do uso de KMP?
● Swift interop pode vir a matar o KMP?
● [Outras perguntas feitas por vocês]
Principais dúvidas
O que é e pra que serve KMP?
O Kotlin Multiplatform é um framework que permite que você
use uma única base de código para a lógica de negócios de
aplicativos iOS e Android. Você só precisa escrever o código
específico da plataforma onde for necessário, por exemplo,
para implementar uma UI nativa ou ao trabalhar com APIs
específicas da plataforma.
Principais dúvidas
Quais diferenças de KMP para Flutter e React Native?
Interface do Usuário
O Flutter usa o canvas do SDK nativo de diferentes plataformas e desenha seu próprio
componente da IU nesse canvas usando o material design ou as especificações
Cupertino. O React Native usa componentes nativos mapeados para o código JS e, no
KMM, temos que escrever o código da IU nativo separadamente para Android e IOS.
Lógica de negócios
Em Flutter, React Native e lógica de negócios KMM é comum, mas escrita em
diferentes linguagens Dart, JS e Kotlin, respectivamente.
Arquitetura em camadas
KMM tem a arquitetura que separa a IU e a lógica de negócios por padrão.
Interoperabilidade
Kotlin pode interagir com Java e outras linguagens também. Mas no caso do Flutter,
temos que nos ater apenas ao Dart e o React Native, apenas ao JS.
Nativo fácil de usar
No KMM é muito fácil escrever código nativo em qualquer nível de codificação e em
qualquer camada da arquitetura.
Integração com projetos existentes
KMM tem o poder de se integrar a qualquer projeto existente, mas no Flutter ou React
Native, temos que continuar com sua própria infraestrutura.
Principais dúvidas
Como ficaria a estrutura do projeto?
https://github.com/Kotlin/kmm-basic-sample
Principais dúvidas
Quais partes do meu projeto devo migrar?
Principais dúvidas
Como empacotar KMP em bibliotecas iOS e Android?
O Kotlin Multiplatform permite empacotar sua lógica de
negócio como em outro projeto como uma biblioteca binária
para iOS como .framework e como um arquivo .jar para
android.
A importação nos projetos segue o padrão de qualquer outra
dependência, no android pode ser importada pelo Gradle e no
iOS pelo Cocoapods.
Principais dúvidas
Como fazer para integrar KMP com código específico de
cada plataforma?
https://kotlinlang.org/docs/mobile/connect-to-platf
orm-specific-apis.html#example-generate-a-uuid
Principais dúvidas
Qual o impacto no tamanho dos binários finais de apps
que possuem partes em KMP?
NENHUM
Principais dúvidas
Como testar? Preciso de testes para cada plataforma?
https://github.com/Kotlin/kmm-basic-sample
Principais dúvidas
Swift interop pode vir a matar o KMP?
NÃO
Principais dúvidas
Quais são os principais benefícios do uso de KMP?
Evitar replicação de código que poderia gerar bugs.
Economia significativa de tempo de desenvolvimento, teste e
validação.
Redução do número de desenvolvedores necessários para um
projeto.
Maior interação entre equipes Android e iOS tendo em vista
que ambas trabalharam na mesma lógica de negócio.
Principais dúvidas
O que mais vocês gostariam de saber sobre KMP?
Obrigado
leanpub.com/querserlidertecnico

Kotlin multiplataforma

  • 1.
    Kotlin Multiplataforma Respondendo asprincipais dúvidas sobre essa tecnologia que promete permitir o compartilhamento da lógica de negócios para seus aplicativos iOS, Android, Web e Desktop
  • 2.
    Quem sou eu 💼Empreendedor 💻 Engenheiro de Software ♿ Cadeirante 📖 Autor do livro A liderança técnica leanpub.com/querserlidertecnico
  • 3.
    Como e ondeeu uso KMP
  • 4.
    Principais dúvidas ● Oque é e pra que serve KMP? ● Quais diferenças de KMP para Flutter e React Native? ● Como ficaria a estrutura do meu projeto? ● Quais partes do meu projeto eu devo migrar para KMP? ● Qual é a quantia média de código compartilhado e específico por plataforma? ● Como empacotar KMP como bibliotecas iOS e Android? ● Como fazer para integrar KMP com código específico de cada plataforma? ● Qual o impacto no tamanho dos binários finais de apps que possuem partes em KMP? ● Como testar? Preciso de testes para cada plataforma? ● Quais são os principais benefícios do uso de KMP? ● Swift interop pode vir a matar o KMP? ● [Outras perguntas feitas por vocês]
  • 5.
    Principais dúvidas O queé e pra que serve KMP? O Kotlin Multiplatform é um framework que permite que você use uma única base de código para a lógica de negócios de aplicativos iOS e Android. Você só precisa escrever o código específico da plataforma onde for necessário, por exemplo, para implementar uma UI nativa ou ao trabalhar com APIs específicas da plataforma.
  • 6.
    Principais dúvidas Quais diferençasde KMP para Flutter e React Native? Interface do Usuário O Flutter usa o canvas do SDK nativo de diferentes plataformas e desenha seu próprio componente da IU nesse canvas usando o material design ou as especificações Cupertino. O React Native usa componentes nativos mapeados para o código JS e, no KMM, temos que escrever o código da IU nativo separadamente para Android e IOS. Lógica de negócios Em Flutter, React Native e lógica de negócios KMM é comum, mas escrita em diferentes linguagens Dart, JS e Kotlin, respectivamente. Arquitetura em camadas KMM tem a arquitetura que separa a IU e a lógica de negócios por padrão. Interoperabilidade Kotlin pode interagir com Java e outras linguagens também. Mas no caso do Flutter, temos que nos ater apenas ao Dart e o React Native, apenas ao JS. Nativo fácil de usar No KMM é muito fácil escrever código nativo em qualquer nível de codificação e em qualquer camada da arquitetura. Integração com projetos existentes KMM tem o poder de se integrar a qualquer projeto existente, mas no Flutter ou React Native, temos que continuar com sua própria infraestrutura.
  • 7.
    Principais dúvidas Como ficariaa estrutura do projeto? https://github.com/Kotlin/kmm-basic-sample
  • 8.
    Principais dúvidas Quais partesdo meu projeto devo migrar?
  • 9.
    Principais dúvidas Como empacotarKMP em bibliotecas iOS e Android? O Kotlin Multiplatform permite empacotar sua lógica de negócio como em outro projeto como uma biblioteca binária para iOS como .framework e como um arquivo .jar para android. A importação nos projetos segue o padrão de qualquer outra dependência, no android pode ser importada pelo Gradle e no iOS pelo Cocoapods.
  • 10.
    Principais dúvidas Como fazerpara integrar KMP com código específico de cada plataforma? https://kotlinlang.org/docs/mobile/connect-to-platf orm-specific-apis.html#example-generate-a-uuid
  • 11.
    Principais dúvidas Qual oimpacto no tamanho dos binários finais de apps que possuem partes em KMP? NENHUM
  • 12.
    Principais dúvidas Como testar?Preciso de testes para cada plataforma? https://github.com/Kotlin/kmm-basic-sample
  • 13.
    Principais dúvidas Swift interoppode vir a matar o KMP? NÃO
  • 14.
    Principais dúvidas Quais sãoos principais benefícios do uso de KMP? Evitar replicação de código que poderia gerar bugs. Economia significativa de tempo de desenvolvimento, teste e validação. Redução do número de desenvolvedores necessários para um projeto. Maior interação entre equipes Android e iOS tendo em vista que ambas trabalharam na mesma lógica de negócio.
  • 15.
    Principais dúvidas O quemais vocês gostariam de saber sobre KMP?
  • 16.