Skip to content

Android client implementation of SWAPI API using MVVM and clean architecture with pagination and offline support

Notifications You must be signed in to change notification settings

sDevPrem/star-net-voyager-android-swapi

Repository files navigation

StarNet Voyager

In StarNet Voyager, you can explore the characters of Star Wars and movies performed by them. It is an Android client implementation of SWAPI API using MVVM and clean architecture and uses Room database as a single source of truth.

Features

  1. Explore Star Wars Characters and their movies.
  2. Single Activity Architecture and uses Jetpack navigation to navigate through destination (fragments).
  3. Retrofit to do api calls and gson to parse response.
  4. Paging3 to load only required Characters and Movies.
  5. Room database to cache Characters and Movies data.
  6. Hilt for dependency injection.
star_net_voyager_home star_net_voyager_character_filters star_net_voyager_home

Architecture

This app follows MVVM architecture with Clean architecture, Uni Directional Flow (UDF) pattern and Single Activity architecture pattern.

Packages

  • :data: - The data origin point.
    |---:local: - Handles data with a local database (Room).
    |---:network: - Handles remote APIs.
    |---:repository: - Decides from where and how the data should come (local or remote).
  • :di: - Hilt modules
  • :domain: - Central nervous system of the app containing the contract between UI and Data layer.
  • :ui: - All the Screens UI lies here in subpackages.

Build With

Kotlin: As the programming language.

Jetpack Navigation : Caption of the app which will take you to new areas ensuring safe delivery of your data.

Room : Rest room for the Jedi.

Hilt : Factory and supplier for the ingredients required to cook a feature.

Paging3: Make the app feel like reading a comic.

Retrofit: Gets the Star Warriors from stars to your world.

Coroutines: Mission Coordinator ensuring co-working.

Installation

Simple clone this app and open in Android Studio.