0Pricing
Kotlin Academy · Aula

Compartilhamento da Lógica de Negócios

Reutilize em iOS e Android

Compartilhamento da Lógica de Negócios é uma aula grátis de Kotlin Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Kotlin Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Kotlin Academy inclui 4 aulas no total.

Por que Compartilhar a Lógica de Negócio?

A interface do usuário varia conforme a plataforma, mas regras como validação, definição de preços e fluxo de dados são idênticas. Compartilhá-las em commonMain elimina duplicações e erros.

Modelos de Dados Compartilhados

Defina seus modelos de domínio uma única vez no código comum. Com kotlinx.serialization, eles também são serializados de forma idêntica nas duas plataformas.

import kotlinx.serialization.Serializable

@Serializable
data class Product(val id: Int, val name: String, val price: Double)

Casos de Uso Compartilhados

As regras de negócio puras ficam no código comum e não precisam de APIs da plataforma.

class CartTotal {
    fun total(items: List<Product>): Double =
        items.sumOf { it.price }
}

Comunicação de Rede Compartilhada com Ktor

O cliente Ktor é multiplataforma. Você escreve a camada de API uma vez; cada plataforma fornece um mecanismo HTTP.

import io.ktor.client.HttpClient

class Api(private val client: HttpClient) {
    // suspend fun products(): List<Product> = client.get(...)
}

Corrotinas Compartilhadas

As corrotinas funcionam no código comum, portanto os repositórios assíncronos também podem ser compartilhados. As funções suspensas são expostas às duas plataformas.

class Repository(private val api: Api) {
    suspend fun load(): List<Product> = api.products()
}

O Padrão Repository

Um padrão comum: o Repository coordena a rede e o cache, expondo métodos simples. Os dois aplicativos chamam o mesmo repositório.

ViewModels Compartilhados

Com bibliotecas como Decompose ou um ViewModel compartilhado, a lógica de apresentação e o estado também podem ser compartilhados, deixando apenas a renderização nativa.

Expondo o Estado como Flow

Exponha o estado com StateFlow para que o Android o colete diretamente e o iOS o observe por meio de um encapsulador.

import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow

class ProductState {
    private val _items = MutableStateFlow<List<Product>>(emptyList())
    val items: StateFlow<List<Product>> = _items
}

Funções Suspensas e iOS

As funções suspensas do Kotlin são expostas ao Swift como métodos com manipulador de conclusão ou assíncronos. O iOS as chama com async/await do Swift.

// Swift
// let products = try await repository.load()

Mantenha a Interface do Usuário Fora do Código Compartilhado

Evite compartilhar a interface do usuário. Compartilhar a lógica e renderizar de forma nativa proporciona a melhor experiência ao usuário, além de eliminar regras duplicadas.

Um Exemplo de Lógica Executável

O caso de uso compartilhado é Kotlin puro. Aqui ele é executado de forma independente para calcular o total do carrinho.

data class Product(val name: String, val price: Double)

fun total(items: List<Product>): Double = items.sumOf { it.price }

fun main() {
    val cart = listOf(Product("Pen", 2.5), Product("Book", 12.0))
    println("Total: " + total(cart))
}

Verificação Rápida

Em um aplicativo KMM bem estruturado, qual destas opções é a melhor candidata para ser compartilhada e qual deve permanecer nativa?

Recapitulação

Você pode compartilhar a camada de lógica:

  • Modelos, casos de uso, repositórios, comunicação de rede com Ktor e corrotinas
  • Exponha o estado por meio de StateFlow; o iOS usa async/await para funções suspensas
  • Mantenha a interface do usuário e a navegação nativas

Próximo tópico: acesso às APIs da plataforma.

Perguntas Frequentes

A aula “Compartilhamento da Lógica de Negócios” é grátis?

Sim — o texto completo de “Compartilhamento da Lógica de Negócios” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Kotlin Academy, atualize para CoddyKit PRO. O curso de Kotlin Academy inclui 4 aulas no total.

O que vou aprender em “Compartilhamento da Lógica de Negócios”?

Reutilize em iOS e Android Você pratica Kotlin Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Kotlin Academy?

Nenhuma experiência prévia é necessária. Kotlin Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Compartilhamento da Lógica de Negócios”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Kotlin Academy?

Sim. Cada aula de Kotlin Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Estrutura de Projetos KMM
  2. expect e actual
  3. Compartilhamento da Lógica de Negócios
  4. APIs da Plataforma
← Voltar para Kotlin Academy