Geschäftslogik gemeinsam nutzen
Wiederverwenden auf iOS und Android
Geschäftslogik gemeinsam nutzen ist eine kostenlose Kotlin Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Kotlin Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Kotlin Academy-Kurs umfasst insgesamt 4 Lektionen.
Warum Geschäftslogik teilen?
Die Benutzeroberfläche unterscheidet sich je nach Plattform, aber Regeln wie Validierung, Preisberechnung und Datenfluss sind identisch. Wenn Sie sie in commonMain teilen, vermeiden Sie Duplikate und Fehler.
Gemeinsame Datenmodelle
Definieren Sie Ihre Domänenmodelle einmal im gemeinsamen Code. Mit kotlinx.serialization werden sie außerdem auf beiden Plattformen identisch serialisiert.
import kotlinx.serialization.Serializable
@Serializable
data class Product(val id: Int, val name: String, val price: Double)Gemeinsame Use-Cases
Reine Geschäftsregeln gehören in den gemeinsamen Code und benötigen keine Plattform-APIs.
class CartTotal {
fun total(items: List<Product>): Double =
items.sumOf { it.price }
}Gemeinsame Netzwerkkommunikation mit Ktor
Der Ktor-Client ist plattformübergreifend. Sie schreiben die API-Schicht einmal; jede Plattform stellt eine HTTP-Engine bereit.
import io.ktor.client.HttpClient
class Api(private val client: HttpClient) {
// suspend fun products(): List<Product> = client.get(...)
}Gemeinsame Coroutines
Coroutines funktionieren im gemeinsamen Code, sodass auch asynchrone Repositories gemeinsam genutzt werden können. Suspend-Funktionen werden für beide Plattformen bereitgestellt.
class Repository(private val api: Api) {
suspend fun load(): List<Product> = api.products()
}Das Repository-Muster
Ein häufig verwendetes Muster: Ein Repository koordiniert Netzwerk und Cache und stellt übersichtliche Methoden bereit. Beide Apps rufen dasselbe Repository auf.
Gemeinsame ViewModels
Mit Bibliotheken wie Decompose oder einem gemeinsamen ViewModel können auch Präsentationslogik und Zustand geteilt werden, während nur die Darstellung nativ bleibt.
Zustand als Flow bereitstellen
Stellen Sie den Zustand mit StateFlow bereit, damit Android ihn direkt sammelt und iOS ihn über einen Wrapper beobachtet.
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
}Suspend-Funktionen und iOS
Kotlin-Suspend-Funktionen werden für Swift als Completion-Handler- oder async-Methoden bereitgestellt. iOS ruft sie mit Swifts async/await auf.
// Swift
// let products = try await repository.load()Benutzeroberflächen aus gemeinsamem Code heraushalten
Widerstehen Sie der Versuchung, die Benutzeroberfläche zu teilen. Wenn Sie die Logik teilen, die Darstellung aber nativ umsetzen, erhalten Sie die beste Benutzererfahrung und vermeiden dennoch doppelte Regeln.
Ein ausführbares Logikbeispiel
Der gemeinsame Use-Case ist einfaches Kotlin. Hier wird er eigenständig ausgeführt, um eine Warenkorbsumme zu berechnen.
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))
}Kurztest
Was eignet sich in einer gut strukturierten KMM-App am besten zum Teilen, und was sollte nativ bleiben?
Zusammenfassung
Sie können die Logikschicht teilen:
- Modelle, Use-Cases, Repositories, Ktor-Netzwerkkommunikation und Coroutines
- Zustand über
StateFlowbereitstellen; iOS verwendet async/await für Suspend-Funktionen - Benutzeroberfläche und Navigation nativ belassen
Als Nächstes: auf Plattform-APIs zugreifen.
Häufig gestellte Fragen
Ist die Lektion „Geschäftslogik gemeinsam nutzen“ kostenlos?
Ja — der vollständige Text von „Geschäftslogik gemeinsam nutzen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Kotlin Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Kotlin Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Geschäftslogik gemeinsam nutzen“?
Wiederverwenden auf iOS und Android Du übst Kotlin Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Kotlin Academy zu starten?
Keine Vorkenntnisse erforderlich. Kotlin Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „Geschäftslogik gemeinsam nutzen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Kotlin Academy-Lektion Code schreiben und ausführen?
Ja. Jede Kotlin Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- KMM-Projektstruktur
- expect und actual
- Geschäftslogik gemeinsam nutzen
- Plattform-APIs