Skip to content

A Compose Multiplatform app intended for educational purposes

Notifications You must be signed in to change notification settings

nsmirosh/NewsAppKMP

Repository files navigation

Clean Architecture MVVM Compose Multiplatform News App

App description

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

Set up:

To run the app:

  1. Get your API key at Newsdata.io
  2. Create a local.properties file in the root of the project.
  3. Add a line API_KEY=your_newsdata.io_key_here

Technologies used

  • Kotlin
  • Compose
  • MVVM
  • Coroutines, Flows
  • Room
  • Native Location services
  • Image loading using Coil
  • Dependency injection via Koin
  • Networking using Ktor
  • Navigation and state management using Voyager
  • Date formatting using Kotlinx DateTime
  • Permission handling using Moko
  • Logging via Kermit
  • Key- Value storage using DataStore

Planned:

  • Tests
  • Custom UI per platform

Design inspired by Tomas Nozina

About

A Compose Multiplatform app intended for educational purposes

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published