Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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.
- Host: GitHub
- URL: https://github.com/khubaibkhan4/news-kmp
- Owner: KhubaibKhan4
- Created: 2023-11-12T11:07:58.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2024-07-26T05:21:38.000Z (5 months ago)
- Last Synced: 2024-07-26T06:39:25.383Z (5 months ago)
- Topics: 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
- Language: Kotlin
- Homepage:
- Size: 53 MB
- Stars: 5
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.MD
- Funding: .github/FUNDING.yml
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 configurationTo 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`