Skip to content

Android Kotlin Coroutines + Retrofit Simple example using Kotlin Coroutines

Notifications You must be signed in to change notification settings

Aks-4125/Coroutines-Android

Repository files navigation

NewsApp

NewsApp is an Android application that allows users to read news articles.

Architecture Used - MVVM Multimodule

Features

  • Supports Android 13 (API 33) to Android 7.0 (API 24).
  • MVVM Multimodule architecture using Android Views. (Without Jetpack Compose)
  • Offline persist data using Room database.
  • Pagination using Jetpack Paging 3.
  • Multilingual support (English - French).
  • Multi-device support (Phone - Tablet).
  • Dedicated tablet layout for more detailed news information (News Description).
  • Portrait-Landscape support.
  • Espresso UI tests.
  • JUnit Tests using MockK.
  • Dynamic Filter support based on API response.

Dependencies

The application uses the following major dependencies:

  • AndroidX libraries for core functionality and UI components.
  • Dagger Hilt for dependency injection.
  • Retrofit for networking and API requests.
  • Moshi for JSON deserialization.
  • Coil for image loading.
  • Navigation Compose for handling app navigation.
  • LeakCanary for memory leak detection.
  • Paging 3 for smooth pagination of news articles.
  • MockK and JUnit for unit testing.
  • Room for local database storage.
  • Kotlin Flow for reactive stream processing.

Jetpack Components

The NewsApp project utilizes the following Jetpack components:

Getting Started

To build and run the project locally, follow these steps:

  1. Download the Zip file and extract it.
  2. Import the project in Android Studio.
  3. Sync Gradle and build the project.
  4. Run the app on an emulator or a physical device.

The NewsApp project is not using any commercial library - This is developed using Free and Open-Source third-party libraries.

About

Android Kotlin Coroutines + Retrofit Simple example using Kotlin Coroutines

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages