Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/kashif-e/kmmnewsapp

Kotlin multi platform project template and sample app with everything shared except the UI. Built with clean architecture + MVI
https://github.com/kashif-e/kmmnewsapp

android androidarchitecturecomponets coroutines ios jetpack-compose kmm koin koin-kotlin kotlin kotlin-android kotlin-multiplatform kotlin-multiplatform-mobile ktor-client mvi-clean-architecture mvi-coroutines-flow swift swiftui

Last synced: about 15 hours ago
JSON representation

Kotlin multi platform project template and sample app with everything shared except the UI. Built with clean architecture + MVI

Awesome Lists containing this project

README

        

# KMMNewsAPP

featured by kotlin official: https://twitter.com/kotlin/status/1567871041866809344

featured by Kotzilla: https://twitter.com/Kotzilla_io/status/1612433688532320259

Here's a video of how it looks. You can always clone and check by yourself.

[Untitled.webm](https://user-images.githubusercontent.com/61690178/197214466-5e16ea33-abcc-4ed1-81fd-a9a74fe32065.webm)

## What's shared?

Everything, except the UI.
* Android UI is in Compose
* IOS ui is in SwiftUI

What does it have?

* A complete skeleton of a kmm project that will help you follow clean architecture.
* Dependency injection is set up using "The Mighty KOIN". You just have to add you dependencies.
connected with both ios and android.
* Shared ViewModel with stateflow for managing states in jetpack compose and swift ui
* Realm for local storage and caching
* Material 3 for android UI theming

Dont forget to enable the new memory model in you gradle properties

```groovy
kotlin.native.binary.memoryModel=experimental
```

## News APP

I have used newsapi.org (News Api) to build the app to demonstrate how everything should be layed out in order to build the app.
You can communicate with the API to get news and also use Realm to add a news to readlater an available offline.

## KMM is Awesome ❤️ and continuously improving. If you found an issue or want to contribute feel free to contact 🖤

```kotlin

operator fun invoke() = "KMM is Awesome"

```


kashif_mehmood_
kashif-mehmood
kashif-mehmood
kashi.m.456
kashif_mehmood._
@kashif-mehmood-km