https://github.com/xxfast/NYTimes-KMP
A KMP template of the New York Times App using Compose multiplatform for Android, Desktop, iOS and Web
https://github.com/xxfast/NYTimes-KMP
android desktop ios kotlin kotlin-multiplatform
Last synced: about 1 month ago
JSON representation
A KMP template of the New York Times App using Compose multiplatform for Android, Desktop, iOS and Web
- Host: GitHub
- URL: https://github.com/xxfast/NYTimes-KMP
- Owner: xxfast
- License: apache-2.0
- Created: 2023-03-09T22:42:22.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-24T03:56:22.000Z (6 months ago)
- Last Synced: 2024-10-24T21:14:00.871Z (6 months ago)
- Topics: android, desktop, ios, kotlin, kotlin-multiplatform
- Language: Kotlin
- Homepage: https://xxfast.github.io/NYTimes-KMP/
- Size: 1.42 MB
- Stars: 582
- Watchers: 9
- Forks: 41
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-kotlin-multiplatform - NYTimes-KMP
README
#
NYTimes-KMP
[](https://github.com/xxfast/NYTimes-KMP/actions/workflows/build.yml)
[](https://kotlinlang.org)




A KMP template of the New York Times App using Compose multiplatform. To build and run this application you will need [an API key from the New York Times](https://developer.nytimes.com/).
## Libraries used
- ๐งฉ [Compose Multiplatform](https://github.com/JetBrains/compose-multiplatform); for shared UI
- ๐ [Ktor](https://github.com/ktorio/ktor); for networking
- ๐ฆ [Kotlinx Serialization](https://github.com/Kotlin/kotlinx.serialization); for content negotiation
- ๐ฐ๏ธ [Kotlinx Datetime](https://github.com/Kotlin/kotlinx-datetime); for datetime
- ๐๏ธ [KStore](https://github.com/xxfast/KStore); for storage
- ๐ [Decompose](https://github.com/arkivanov/Decompose) + [Router](https://github.com/xxfast/Decompose-Router); for navigation
- ๐งช [Molecule](https://github.com/cashapp/molecule); for modeling state
- ๐๏ธ [Compose-imageloader](https://github.com/qdsfdhvh/compose-imageloader); for loading images## Run instructions
Run configurations available on `.idea/runConfigurations` for each platform.
| platform | gradle command |
|----------|-------------------------------------------------------------------------------------------------------------------------------------|
| android | `./gradlew :app:android:assembleDebug` |
| wear | `./gradlew :app:wear:assembleDebug` |
| ios | `/Applications/Xcode.app/Contents/Developer/usr/bin/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` |## Showcase
### Android
https://github.com/xxfast/NYTimes-KMP/assets/13775137/25adabad-400e-4178-8a14-aaca531c8062
### WearOs
https://github.com/xxfast/NYTimes-KMP/assets/13775137/e9ce8ab6-6c08-49a5-b80c-123733bf466c
### iOS
https://github.com/xxfast/NYTimes-KMP/assets/13775137/43855864-a4e3-4efb-8047-3e80b0594b02
### Desktop
https://github.com/xxfast/NYTimes-KMP/assets/13775137/97da961c-ef9a-40d0-9cee-f322ad8aa6ef
### Web (Js & WasmJs)
https://github.com/xxfast/NYTimes-KMP/assets/13775137/eb37d767-d241-4aa8-9083-25a4b9ad3dfa