/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.

Primary LanguageKotlin

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.

Screenshots

Screenshot 1

Screenshot 2

Screenshot 3

Screenshot 4

Screenshot 5

Screenshot 6

Screenshot 7

Screenshot 8

Screenshot 8

Screenshot 9

Screenshot 9

Screenshot 10

Screenshot 10

Screenshot 11

Screenshot 11

Screenshot 12

Screenshot 12

Screenshot 13

Screenshot 12

Screenshot 14

Screenshot 14

Screenshot 15

Screenshot 15

Screenshot 16

Screenshot 15

Screenshot 17

Screenshot 17

Screenshot 18

Screenshot 18

Screenshot 19

Screenshot 19

Screenshot 20

Screenshot 20

Screenshot 21

Screenshot 21

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
  • 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:

Browser

Run the browser application: ./gradlew :composeApp:jsBrowserDevelopmentRun