Adicionar o Kotlin Multiplatform a um projeto

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:

  1. Selecione File > New > New Module.
  2. Selecione o modelo Kotlin Multiplatform Shared Module no painel Templates:
Como criar um módulo KMP
Figura 1. Criar um novo módulo KMP

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.
    1. 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.

Visualização do projeto mostrando novos módulos compartilhados
Figura 2. Visualização do projeto mostrando novos módulos compartilhados

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.

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:

  1. 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.
Abrir no aplicativo associado
Figura 3. Abrir no aplicativo associado
  1. Abra as configurações do projeto clicando duas vezes no nome dele no navegador de projetos.
Caixa de diálogo de configurações do projeto do Xcode
Figura 4. Caixa de diálogo de configurações do projeto do Xcode
  1. 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.
  2. Abra a fase de build e, no campo de texto Shell, insira o seguinte código de script:
Como adicionar uma nova fase de build de script de execução
Figura 5. Executar a fase de build do script
  1. Arraste a fase Run Script para que fique antes da fase Compile Sources.

    Executar a fase de build do script antes de compilar as origens
    Figura 6. Executar a fase de build do script antes de compilar as origens

  2. 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.

Build bem-sucedido mostrado no Xcode
Figura 7. Build concluída

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:

  1. No projeto do iOS, abra o arquivo ContentView.swift em: Sources/View/ContentView.swift
  2. Adicione a importação sharedKit na parte de cima do arquivo.
  3. 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.

Simulador do Xcode executando o app iOS
Figura 8. Simulador do Xcode executando o app iOS

Outros recursos