Thanks to visit codestin.com
Credit goes to github.com

Skip to content

naikdp7/KMPNewsApp

Repository files navigation

NewsNode App - KMP Architecture

This project is a modern Kotlin Multiplatform (KMP) mobile application based on a clean, modular architecture. It implements best practices in architecture, dependency injection, networking, local storage, and design system management using Jetpack Compose Multiplatform.

UX/UI Reference: Inspired by Nuntium News App Figma Design

📱 NewsNode App

A cross-platform mobile app built with Kotlin Multiplatform and Jetpack Compose.


🤖 Android Preview

📸 Screenshots

Screen 1 Screen 2 Screen 3
Screen 4 Screen 5

🎥 Demo Video

Watch the video


🍎 iOS Preview

📸 Screenshots

Screen 1 Screen 2 Screen 3
Screen 4

🎥 Demo Video

Watch the video

📦 Modules Overview

🔹 composeApp

  • Contains the app entry point for Android and iOS.
  • Hosts navigation and screen composition logic.
  • Depends on domain, data, di, and designsystem.

🔹 di

  • Handles Dependency Injection using Koin.
  • Centralized location for defining and providing all modules (data sources, repositories, use cases, view models).

🔹 domain

  • Pure Kotlin module containing:
    • Business logic
    • Use cases
    • Data models (shared across the app)
  • No third-party dependencies for maximum portability and testability.

🔹 data

  • Handles all data operations:
    • API calls via Ktor
    • Local storage using Room on Android.
  • Responsible for:
    • Mapping DTOs to domain models
    • Repository implementations

🔹 designsystem

  • Encapsulates reusable UI components using Jetpack Compose Multiplatform.
  • Ensures consistent styling and branding across all screens.
  • Examples: Buttons, Typography, Theme, Card layouts, etc.

🔧 Technologies Used

Purpose Tool / Library
UI Toolkit Jetpack Compose (Multiplatform)
Networking Ktor Client
Local Storage Room
Dependency Injection Koin
Architecture Pattern Clean Architecture
Design Reference Nuntium Figma Design

🚀 Getting Started

  1. Clone this repository
  2. Open it in Android Studio with KMP plugin support.
  3. Run on Android or configure iOS target (MacOS only).
  4. Update your API keys, if needed.

📁 Module Dependency Overview

  • composeApp
    • depends on: di, domain, data, designsystem
  • di
    • depends on: domain, data
  • data
    • depends on: domain
  • designsystem
    • standalone (used only by composeApp)
  • domain
    • standalone (no dependencies)

🤝 Contribution

Contributions are welcome and appreciated!

If you'd like to contribute:

  • Fork the repository
  • Create a new branch (git checkout -b feature/your-feature-name)
  • Commit your changes (git commit -m 'Add your message')
  • Push to the branch (git push origin feature/your-feature-name)
  • Open a Pull Request

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published