Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/khubaibkhan4/news-kmp

News Kotlin Multiplatform Project developed using KMP, Shared UI. It supports Android, iOS, Web & Desktop Application. It uses the New York Times Rest API.
https://github.com/khubaibkhan4/news-kmp

compose-desktop compose-multiplatform compose-web desktop-app ios-app kmp kmp-library kmp-mvvm kmp-project kmp-viewmodel kotlin kotlin-multiplatform ktor-client multiplatform news-app news-kmp newsapi swiftui

Last synced: about 2 months ago
JSON representation

News Kotlin Multiplatform Project developed using KMP, Shared UI. It supports Android, iOS, Web & Desktop Application. It uses the New York Times Rest API.

Awesome Lists containing this project

README

        

# News Kotlin Multiplatform Project

This is a Kotlin Multiplatform Project for a news application that supports Android, iOS, Web, and Desktop platforms.

## Technologies Used

- **Kotlin Multiplatform:** The project is built using Kotlin Multiplatform, allowing code sharing across different platforms.

- **Android:** The Android app is built using Kotlin and leverages the Android SDK.

- **iOS:** The iOS app is built using Kotlin Multiplatform, enabling code reuse with the iOS platform.

- **Web & Desktop:** The project includes support for both Web and Desktop platforms, providing a versatile user experience.

## Libraries Used

- **Koin:** Dependency injection framework for managing dependencies in a Kotlin Multiplatform project.

- **ComposeImageLoader:** Image loading library for Jetpack Compose, used for loading and displaying images efficiently.

- **Ktor Client:** A multiplatform HTTP client for making network requests in a Kotlin Multiplatform project.

- **Ski:** A lightweight and fast image loading library for Kotlin Multiplatform projects.

- **Moko MVVM:** A multiplatform MVVM library that helps in implementing the Model-View-ViewModel architecture.

[![](https://jitpack.io/v/KhubaibKhan4/News-KMP.svg)](https://jitpack.io/#KhubaibKhan4/News-KMP)

## Screenshots

### Screenshot 1

### Screenshot 2

### Screenshot 3

### Screenshot 4

### Screenshot 5

### Screenshot 6

### Screenshot 7

### Screenshot 8
![Screenshot 8](https://github.com/KhubaibKhan4/News-KMP/blob/master/screenshots/8.png)

### Screenshot 9
![Screenshot 9](https://github.com/KhubaibKhan4/News-KMP/blob/master/screenshots/9.png)

### Screenshot 10
![Screenshot 10](https://github.com/KhubaibKhan4/News-KMP/blob/master/screenshots/10.png)

### Screenshot 11
![Screenshot 11](https://github.com/KhubaibKhan4/News-KMP/blob/master/screenshots/11.png)

### Screenshot 12
![Screenshot 12](https://github.com/KhubaibKhan4/News-KMP/blob/master/screenshots/12.png)

### Screenshot 13
![Screenshot 12](https://github.com/KhubaibKhan4/News-KMP/blob/master/screenshots/13.png)

### Screenshot 14
![Screenshot 14](https://github.com/KhubaibKhan4/News-KMP/blob/master/screenshots/14.png)

### Screenshot 15
![Screenshot 15](https://github.com/KhubaibKhan4/News-KMP/blob/master/screenshots/15.png)

### Screenshot 16
![Screenshot 15](https://github.com/KhubaibKhan4/News-KMP/blob/master/screenshots/16.png)

### Screenshot 17
![Screenshot 17](https://github.com/KhubaibKhan4/News-KMP/blob/master/screenshots/17.png)

### Screenshot 18
![Screenshot 18](https://github.com/KhubaibKhan4/News-KMP/blob/master/screenshots/18.png)

### Screenshot 19
![Screenshot 19](https://github.com/KhubaibKhan4/News-KMP/blob/master/screenshots/19.png)

### Screenshot 20
![Screenshot 20](https://github.com/KhubaibKhan4/News-KMP/blob/master/screenshots/20.png)

### Screenshot 21
![Screenshot 21](https://github.com/KhubaibKhan4/News-KMP/blob/master/screenshots/21.png)

## How to Build

To build the project, follow these steps:

1. Clone the repository: `git clone https://github.com/KhubaibKhan4/News-KMP.git`
2. Open the project in your preferred IDE.
3. Build and run the project on your desired platform.
## Before running!
- check your system with [KDoctor](https://github.com/Kotlin/kdoctor)
- install JDK 17 on your machine
- add `local.properties` file to the project root and set a path to Android SDK there

### Android
To run the application on android device/emulator:
- open project in Android Studio and run imported android run configuration

To build the application bundle:
- run `./gradlew :composeApp:assembleDebug`
- find `.apk` file in `composeApp/build/outputs/apk/debug/composeApp-debug.apk`

### Desktop
Run the desktop application: `./gradlew :composeApp:run`

### iOS
To run the application on iPhone device/simulator:
- Open `iosApp/iosApp.xcproject` in Xcode and run standard configuration
- Or use [Kotlin Multiplatform Mobile plugin](https://plugins.jetbrains.com/plugin/14936-kotlin-multiplatform-mobile) for Android Studio

### Browser
Run the browser application: `./gradlew :composeApp:jsBrowserDevelopmentRun`