Configurar o ambiente (Kotlin Multiplatform)

O Kotlin Multiplatform (KMP) permite compartilhar código Kotlin entre em diferentes plataformas. Antes de começar a criar apps com o KMP, você precisa e a configuração do ambiente conforme descrito neste documento. Você também pode consultar Documentação oficial do Jetbrain.

Instalar ou atualizar as ferramentas necessárias

  • Instale ou atualize para a versão estável mais recente do Android Studio.
  • Atualize o plug-in do Kotlin que acompanha o Android Studio. para a versão mais recente para evitar problemas de compatibilidade.
  • (Opcional) Para desenvolvimento em iOS, instale o Xcode para criar o e adicione o código Swift ou Objective-C, conforme necessário.

Criar um projeto Kotlin Multiplatform

Use o assistente do Kotlin Multiplatform do Jetbrains para criar um novo projeto KMP. Marque a caixa Não de compartilhamento de interface para manter a interface nativa.

Estrutura do projeto

Os projetos KMP seguem uma estrutura semelhante aos projetos do Android.

Um projeto KMP contém módulos específicos da plataforma junto com um módulo compartilhado. Adicione o código específico da plataforma ao módulo relevante. Por exemplo, adicione Interface do seu app Android no módulo androidApp e IU do seu app iOS em iosApp. Todo código que você quer compartilhar entre plataformas é inserido no módulo shared.

O módulo compartilhado usa o Gradle como sistema de build, assim como o restante do projeto. É possível declarar dependências comuns e específicas da plataforma usando conjuntos de origem. Por exemplo, se o app usa o Ktor para redes, é preciso adicionar uma dependência OkHttp para Android e uma dependência darwin para iOS. Algumas as bibliotecas exigem apenas dependências comuns e não precisam de arquitetura dependências.

sourceSets {
   commonMain.dependencies {
       //put your multiplatform dependencies here
       //...
       implementation(libs.ktor.client.core)
       implementation(libs.ktor.client.content.negotiation)
       implementation(libs.ktor.serialization.kotlinx.json)
       //...
   }
   androidMain.dependencies {
       implementation(libs.ktor.client.okhttp)
   }
   iosMain.dependencies {
       implementation(libs.ktor.client.darwin)
   }
}

Ao adicionar uma nova biblioteca ao módulo compartilhado do seu app, verifique se há as dependências necessárias para cada plataforma.