• Stars
    star
    285
  • Rank 145,115 (Top 3 %)
  • Language
    Kotlin
  • License
    GNU General Publi...
  • Created over 1 year ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

This app demonstrates the best practices for Android development and contains a repository of tutorials, benchmarks and reference implementations

TechYourChance Android Application

This app demonstrates the best practices for Android development and contains a repository of useful features that you can learn from. It shows what I consider to be "clean and pragmatic Android code".

The architecture, implementation details, tests, etc. in this application follow the practices and guidelines that I teach in my Android development courses.

Installation

You can download a prebuilt APK file attached to the latest release, or clone this repo and build the application from the source code.

Application Updates

The application includes auto-update feature. It uses a special Android API that will prompt you to approve the installation of each new version of the application. On the first update, this API will also ask you to enable the auto-update feature in device's settings app.

Alternatively, you can download the latest APK from here and update the application manually, or even build the update from the source code.

Architecture

The project is written in Kotlin, using the "classical" Andorid UI framework (XMLs + Views). [Jetpack Compose will be added in the future]

Packages structure of the application follows package by feature approach.

Dependency injection architectural pattern is implemented using Dagger 2 framework.

Presentation layer logic is organized according to MVC architectural pattern.

Funcitonal flows in the app are encapsulated into Use Case classes.

The logic responsible for navigation between screens is encapsulated in ScreensNavigator class.

DialogsNavigator "facade" class is responsible for showing dialogs.

Kotlin Coroutines framework is used for concurrency.

Contribution

Bug reports, code quality feedback and feature suggestions are welcome. Since this project aims to demonstrate a very specific approach to Android development, any external contribution should be discussed and approved in advance.