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.