Para criar um módulo do Kotlin Multiplatform (KMP) no seu projeto do Android, use o modelo Kotlin Multiplatform Shared Module, disponível no Android Studio Meerkat e no Plug-in do Android para Gradle 8.8.0 e versões mais recentes.
O modelo de módulo automatiza a criação de um novo módulo com a configuração mínima voltada para os alvos configurados Android e iOS. O KMP também oferece suporte a outros destinos, como computador e Web, que podem ser adicionados ao módulo mais tarde. Para ver a lista completa, consulte Estabilidade das plataformas compatíveis. Para declarar um destino, consulte Destinos na referência de DSL do Gradle multiplataforma.
Configurar o módulo KMP compartilhado
Para criar um módulo KMP compartilhado, siga estas etapas:
- Selecione File > New > New Module.
- Selecione o modelo Kotlin Multiplatform Shared Module no painel Templates:
Estes são os campos do modelo:
- Module name: define o nome do módulo do Gradle e do framework do iOS (pode ser alterado depois).
- Package name: define o nome do pacote para arquivos neste módulo.
- Clique em Finish e permita que o Gradle seja sincronizado com o projeto. Talvez você também precise adicionar os arquivos do módulo recém-criado ao controle de origem.
Depois de concluído, a Visualização do projeto do Android Studio mostra o novo módulo compartilhado com um conjunto de origem para cada plataforma.
Vincular o módulo compartilhado ao app Android
O assistente de módulo não adiciona o módulo recém-criado como uma dependência a nenhum módulo atual. Em seguida, vincule o módulo compartilhado a um dos módulos do Gradle, de forma semelhante a outras dependências do Android:
dependencies {
...
implementation(project(":shared"))
}
Depois de ativada, você pode acessar o código de acesso normalmente. No app Android, é possível acessar o código disponível em androidMain ou em commonMain.
Para mais informações sobre a estrutura de projetos do Kotlin Multiplatform, consulte as noções básicas da estrutura de projetos do Kotlin Multiplatform.
Configurar o módulo compartilhado ao app iOS
O Swift não pode usar módulos Kotlin diretamente e exige a produção de um framework binário compilado.
O novo modelo no Android Studio configura o módulo compartilhado para
produzir um framework para cada uma das arquiteturas do iOS. Você pode encontrar o
código abaixo no arquivo build.gradle.kts do módulo compartilhado:
val xcfName = "sharedKit"
iosX64 {
binaries.framework {
baseName = xcfName
}
}
iosArm64 {
binaries.framework {
baseName = xcfName
}
}
iosSimulatorArm64 {
binaries.framework {
baseName = xcfName
}
}
Consulte Estrutura hierárquica do projeto para saber como definir outros tipos de arquitetura.
Vincular a biblioteca compartilhada no projeto do iOS
Para permitir o acesso ao código compartilhado do projeto do iOS, adicione uma fase de script para gerar o framework Kotlin antes de compilar as origens do Swift:
- Clique com o botão direito do mouse no arquivo no Android Studio e selecione Open In e Open in Associated Application. O app iOS será aberto no Xcode.
- Abra as configurações do projeto clicando duas vezes no nome dele no navegador de projetos.
- Mude o nome padrão Run Script para Compile Kotlin Framework para identificar melhor o que essa fase faz. Clique duas vezes no título Run Script para editá-lo.
- Abra a fase de build e, no campo de texto Shell, insira o seguinte código de script:
Arraste a fase Run Script para que fique antes da fase Compile Sources.
Figura 6. Executar a fase de build do script antes de compilar as origens Crie o projeto no Xcode clicando em ⌘B ou navegando até o menu Product e selecionando Build.
Quando o build for concluído, você verá o ícone a seguir.
Acessar o código compartilhado no app iOS
Para verificar se o app iOS pode acessar o código do módulo compartilhado, faça o seguinte:
- No projeto do iOS, abra o arquivo
ContentView.swiftem:Sources/View/ContentView.swift - Adicione a importação
sharedKitna parte de cima do arquivo. - Modifique a visualização de texto para incluir as informações de
Platform_iosKt.platform()na string mostrada da seguinte maneira:
Essa atualização verifica se o app pode chamar a função platform() do módulo compartilhado, que deve retornar "iOS" ao ser executado na plataforma iOS.
Outros recursos
- Se você não conhece o desenvolvimento de KMP, consulte a documentação oficial do KMP (link em inglês) para mais guias.
- Se você não tem experiência com o desenvolvimento para iOS, consulte a documentação sobre os conceitos básicos do Swift.
- Para problemas comuns de configuração do KMP, consulte Solução de problemas no guia de início rápido do KMP.
- Para conferir apps de exemplo, consulte Exemplos do Kotlin Multiplatform para Android.