2.1 KiB
2.1 KiB
| applyTo |
|---|
| **/*.kt |
Kotlin Coding Conventions – Krisenvorrat App
Diese Konventionen gelten für alle Kotlin-Dateien im Workspace.
Sprache & Plattform
- Kotlin (aktuell), Zielplattform Android (aktuelles API-Level)
- Jetpack Compose für UI
- Gradle (Kotlin DSL) als Build-System
State Management
StateFlow/MutableStateFlowin ViewModelscollectAsStateWithLifecycle()in Composablesremember/rememberSaveablefür UI-lokalen State
Navigation
- Jetpack Navigation Compose
- Type-safe Navigation mit
@SerializableRouten
Concurrency
- Kotlin Coroutines (
suspend,Flow,StateFlow) viewModelScopefür ViewModel-gebundene CoroutineswithContext(Dispatchers.IO)für I/O-Operationen- Strukturierte Fehlerbehandlung mit
try/catchum jedensuspend-Aufruf
Naming
- Klassen/Interfaces:
UpperCamelCase - Funktionen/Variablen:
lowerCamelCase - Konstanten:
UPPER_SNAKE_CASE - Composable-Funktionen:
UpperCamelCase(wie Klassen) - Boolean-Eigenschaften: Präfix
is,has,can,should
Zugriffsmodifikatoren
- So restriktiv wie möglich:
private>internal>public - Kein
publicohne klaren Grund (Kotlin-Default istpublic)
Verbotene Patterns
- Keine Force-Casts (
as) ohne vorherige Typprüfung –as?bevorzugen - Keine
println()-Statements – stattdessenTimberoder Projekt-Logger verwenden - Keine ungenutzten Imports
- Keine auskommentierten Code-Blöcke
- Kein
!!(not-null assertion) in Produktionscode
Testing
- JUnit 5 für Unit Tests
- Espresso / Compose Testing für UI Tests
- Testmethoden:
test_<Was>_<Vorbedingung>_<Ergebnis>() - Gliederung:
// Given,// When,// Then - MockK für Mocking
Persistenz
- Room (SQLite) für lokale Daten
- kotlinx.serialization für JSON Import/Export
- DataStore für Einstellungen/Konfigurationen
- Keychain für Session-Tokens
Dokumentation
- Alle öffentlichen/internen Typen und Methoden mit
///dokumentieren - Kommentare beschreiben „was" und „warum", nicht „wie"