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.
1. 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
2. Quem sou eu
💼 Empreendedor
💻 Engenheiro de Software
♿ Cadeirante
📖 Autor do livro A liderança técnica
leanpub.com/querserlidertecnico
4. 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]
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ç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.
9. 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.
10. 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
11. Principais dúvidas
Qual o impacto no tamanho dos binários finais de apps
que possuem partes em KMP?
NENHUM
14. 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.