Skip to content

Latest commit

 

History

History
70 lines (45 loc) · 4.37 KB

File metadata and controls

70 lines (45 loc) · 4.37 KB

Nexus Nook

This project is to demonstrate a large database of video games in a native kotlin android app.

Prerequisites

  • This app uses a public API, RAWG , for the video games database. Please follow their instructions to retrieve an API key to test the app.

  • The RAWG API key should be added under the gradle.properties file as shown below

API_KEY="api_key_here"
  • Minimum supported SDK version is 24 (Nougat)

NOTE: Please be advised that the project is still under the development, some features may not work as intended and not all functionalities have been implemented yet.

In-App Screenshots

Technical Details

Packages & Directory Structure

This project does its best to follow clean architecture and single responsibility. The following section briefly describes the packages.

Android Dependent Packages

  • app: Entry point of the application. Only shows the splash screen and initializes some dependencies that will be shared by the rest of the packages such as dependency injection.
  • base: This package contains most commonly shared components, util classes and parent class definitions. Networking component is also here.
  • uicomponent: Custom designed views, styles, themes lay under here.
  • main: The package that contains the real implementation. Whole logic is implemented in this package. It has a single activity as an entry point, rest is handled by fragments.

Library Packages

  • buildSrc: Contains config files such as Dependencies.kt, Versions.kt that are used by build.gradle files.
  • data: Serializable data classes for REST API are here, also repository classes that call networking components lay under this package.
  • domain: Bridge between data and main, contains usecases, calls web api through repositories and returns results to the corresponding view.
  • common-model: Commonly shared non-android dependent classes are here.

Architecture

This project utilizes Single Activity architecture with MVVM Moreover, uses Repository - Use Case pattern for fetching and delivering data.

Libraries & Techs

Video demonstrations of the app

Paging.mp4

Yasar Kakdas