Skip to content

YKakdas/NexusNook

Repository files navigation

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

About

Video games database showcase in Android app

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages