Skip to content

I used Modularization in this app to separate different fields

Notifications You must be signed in to change notification settings

majid2851/Kotlin_Modularization

Repository files navigation

Kotlin_Modularization

Project Name This project is a Kotlin-based Android application built using Clean Architecture, MVI, and modularization to create an offline-first experience. It uses Jetpack Compose for UI rendering, Ktor for network communication, SQL Delight for caching, and Coil for image caching. The project also includes unit and UI tests, as well as Hilt for dependency injection.

Modularization will: Decrease build times. Make it easier to delegate work. Increase code reusability. Overall make testing easier and more clear.

#Features Kotlin

Clean Architecture

MVI

Multi-module

Compose

Ktor (Network)

SQL Delight (Caching)

Coil (Image Caching)

Unit Tests

UI Testing with Compose

Hilt Dependency Injection

Testing with Hilt

Building an "offline first" application

Installation To use this project, you will need to have Android Studio installed on your machine. Follow these steps to install the project:

Clone the repository from Github using git clone https://github.com/majid2851/Kotlin_Modularization.git Open the project in Android Studio Build and run the project using the Android emulator or a connected device Usage The app is designed to showcase an offline-first experience. It loads data from the network when available, and saves it to a local cache for offline use. The app includes a list view and detail view to demonstrate basic functionality.

#Testing The project includes both unit and UI tests. To run the tests, use the following steps:

Open the project in Android Studio Right-click on the desired test folder (e.g. "src/test") and select "Run tests in 'test'" Dependencies The project uses several open-source libraries, including:

Jetpack Compose Ktor SQL Delight Coil Hilt Contributing If you would like to contribute to this project, please fork the repository and create a pull request. We welcome contributions of all kinds, including bug fixes, new features, and documentation improvements.

Screenshot_1683359826 Screenshot_1683359856

About

I used Modularization in this app to separate different fields

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages