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
- Structure d’un projet KMM
- expect et actual
- Partager la logique métier
- API des plateformes