A simple randomizer app built with Compose Multiplatform. This is a work-in-progress reimplementation of my original Magic 8 Ball app.
| Library | |
|---|---|
| Dependency Injection | Koin |
| Navigation | Navigation Compose |
| Logging | Kermit |
| User Interface | Kepko (Compose Multiplatform) |
| Android | iOS | Desktop (JVM) | Web (JS/Wasm) | |
|---|---|---|---|---|
| Key-Value | ✅ Multiplatform Settings (SharedPreferences) | ✅ Multiplatform Settings (NSUserDefaults) | ✅ Multiplatform Settings (Java Preferences) | ✅ Multiplatform Settings (localStorage) |
| Database | ✅ SQLDelight (AndroidSqliteDriver) | ✅ SQLDelight (NativeSqliteDriver) | ✅ SQLDelight (JdbcSqliteDriver) | ❌ |
| Snapshots | ❌ | ❌ | ✅ Roborazzi | ❌ |
%%{
init: {
'theme': 'neutral'
}
}%%
graph LR
subgraph :app
:app:composeApp["composeApp"]
end
subgraph :core
:core:resources["resources"]
end
subgraph :feature
:feature:answers["answers"]
:feature:settings["settings"]
end
:app:composeApp --> :core:resources
:app:composeApp --> :feature:answers
:app:composeApp --> :feature:settings
classDef android-application fill:#2C4162,stroke:#fff,stroke-width:2px,color:#fff;
classDef kotlin-multiplatform fill:#C792EA,stroke:#fff,stroke-width:2px,color:#fff;
class :app:composeApp android-application
class :core:resources kotlin-multiplatform
class :feature:answers kotlin-multiplatform
class :feature:settings kotlin-multiplatform
classDef focus fill:#769566,stroke:#fff,stroke-width:2px,color:#fff;
class :app:composeApp focus
