A Kotlin Multiplatform sample of the New York Times app with a shared domain (networking, storage, Molecule view models) driving
- Compose Multiplatform UIs for Android, Desktop (Linux, macOS, Windows), and Web (JS + WasmJs)
- Jetpack Compose for Wear OS, consuming the shared domain and view models
- Dual Compose + SwiftUI experience on iOS
- WPF + WinUI 3 + MAUI on native Windows via kotlin-native-nuget.
To build and run you will need an API key from the New York Times.
- π§© Compose Multiplatform; for shared UI
- π Ktor; for networking
- π¦ Kotlinx Serialization; for content negotiation
- π°οΈ Kotlinx Datetime; for datetime
- ποΈ KStore; for storage
- π Decompose + Router; for navigation
- π§ͺ Molecule; for modeling state
- ποΈ Compose-imageloader; for loading images
- π¦ SKIE; Swift-friendly Kotlin APIs (Flows, etc.) on iOS
- πͺ kotlin-native-nuget; packages Kotlin/Native (MinGW) as NuGet for WPF + WinUI 3
Run configurations available on .idea/runConfigurations for each platform.
| platform | command |
|---|---|
| android | ./gradlew :app:android:assembleDebug |
| wear | ./gradlew :app:wear:assembleDebug |
| ios | xcodebuild -project app/ios/ios.xcodeproj -scheme NYTimes -configuration Debug |
| desktop | ./gradlew :app:desktop:run |
| js | ./gradlew :app:web:jsBrowserDevelopmentRun |
| wasm | ./gradlew :app:web:wasmJsBrowserDevelopmentRun |
| windows (WPF) | dotnet run --project app\windows\WpfApp\WpfApp.csproj |
| windows (WinUI) | dotnet run --project app\windows\WinUiApp\WinUiApp.csproj |
| windows (MAUI) | dotnet run --project app\windows\MauiApp\MauiApp.csproj |
Build details for the WPF, WinUI and MAUI hosts are in app/windows/README.md.


