Disclaimer:
This app is used for my own learning and is a WIP - do not expect everything to work here perfectly. The Compose UI for iOS and Room database are still in alpha - so don't expect them to work perfectly either.
This is a simple app that displays a list of news articles from Newsdata.io. It has the ability to preview the articles in a WebView and save them to favorites. The intent here is to try to share as much as possible between Android and iOS.
This is a Compose Multiplatform adaptation of the Android News App.
Screen.Recording.2024-12-03.at.20.56.51.mov
- Get your API key at Newsdata.io
- Create a local.properties file in the root of the project.
- Add a line
API_KEY=your_newsdata.io_key_here
- Kotlin
- Jetpack Compose for UI
- MVVM
- Coroutines, Flows for Reactive data flow
- Room for database management
- Localization
- Getting the current users' location via location services native to each platform
- Image loading using Coil
- Dependency injection via Koin
- Networking using Ktor and OkHttp
- Navigation and state management using Voyager
- Date formatting using Kotlinx DateTime
- Permission handling using Moko
- Logging via Kermit
- Key-Value storage using DataStore
- File I/O KMPs' resources plugin
- Unit testing
- Mocking in unit tests using MocKMP
Planned:
- Custom UI per platform
- Notifications using Firebase
Design inspired by Tomas Nozina