0Pricing
Kotlin Academy · Leçon

Partager la logique métier

Réutiliser sur iOS et Android

Partager la logique métier est une leçon Kotlin Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Kotlin Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Kotlin Academy comprend 4 leçons au total.

Pourquoi partager la logique métier ?

L’interface utilisateur diffère selon la plateforme, mais des règles comme la validation, la tarification et le flux de données sont identiques. Les partager dans commonMain élimine les duplications et les bogues.

Modèles de données partagés

Définissez vos modèles métier une seule fois dans le code commun. Avec kotlinx.serialization, ils sont également sérialisés de manière identique sur les deux plateformes.

import kotlinx.serialization.Serializable

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

Cas d’utilisation partagés

Les règles métier pures résident dans le code commun et ne nécessitent aucune API de plateforme.

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

Communication réseau partagée avec Ktor

Le client Ktor est multiplateforme. Vous écrivez la couche d’API une seule fois ; chaque plateforme fournit un moteur HTTP.

import io.ktor.client.HttpClient

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

Coroutines partagées

Les coroutines fonctionnent dans le code commun, les dépôts asynchrones peuvent donc également être partagés. Les fonctions suspendues sont exposées aux deux plateformes.

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

Le modèle Repository

Un modèle courant : Repository coordonne le réseau et le cache et expose des méthodes claires. Les deux applications appellent le même dépôt.

ViewModels partagés

Avec des bibliothèques comme Decompose ou un ViewModel partagé, la logique de présentation et l’état peuvent également être partagés, en ne laissant que le rendu au code natif.

Exposition de l’état sous forme de flux

Exposez l’état avec StateFlow afin qu’Android le collecte directement et qu’iOS l’observe par l’intermédiaire d’une enveloppe.

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
}

Fonctions suspendues et iOS

Les fonctions suspendues Kotlin sont exposées à Swift sous forme de méthodes avec gestionnaire d’achèvement ou de méthodes asynchrones. iOS les appelle avec l’async/await de Swift.

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

Garder l’interface utilisateur hors du code partagé

Résistez à la tentation de partager l’interface utilisateur. Partager la logique tout en effectuant le rendu nativement offre la meilleure expérience utilisateur, tout en supprimant les règles dupliquées.

Exemple de logique exécutable

Le cas d’utilisation partagé est du Kotlin ordinaire. Ici, il s’exécute de manière autonome pour calculer le total d’un panier.

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))
}

Vérification rapide

Dans une application KMM bien structurée, lequel de ces éléments convient le mieux au partage et lequel devrait rester natif ?

Récapitulatif

Vous pouvez partager la couche de logique :

  • Modèles, cas d’utilisation, dépôts, communication réseau avec Ktor et coroutines
  • Exposer l’état via StateFlow ; iOS utilise async/await pour les fonctions suspendues
  • Conserver l’interface utilisateur et la navigation en code natif

Ensuite : accéder aux API de plateforme.

Questions Fréquemment Posées

La leçon « Partager la logique métier » est-elle gratuite ?

Oui — le texte complet de « Partager la logique métier » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Kotlin Academy, passe à CoddyKit PRO. Le cours Kotlin Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Partager la logique métier » ?

Réutiliser sur iOS et Android Tu pratiques Kotlin Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Kotlin Academy ?

Aucune expérience préalable n'est requise. Kotlin Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Partager la logique métier » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Kotlin Academy ?

Oui. Chaque leçon Kotlin Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Structure d’un projet KMM
  2. expect et actual
  3. Partager la logique métier
  4. API des plateformes
← Retour à Kotlin Academy