dautovicharis / TechYourChance-Android-Application

This app demonstrates the best practices for Android development and contains a repository of useful features

Home Page:https://techyourchance.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

Blog posts' tutorials

Parts of the source code in this app correspond to the articles I published on my blog:

Blog Post Source Code
Foreground Service in Android Screen
Logic
WorkManager in Android Screen
Logic
Android NDK Tutorial Screen
Logic
Biometric Authentication in Android Screen
Logic
How to Use Jetpack Compose Inside Android Service Screen
Logic
Kotlin Coroutines vs Threads Performance Benchmark Screen
Logic
Kotlin Coroutines vs Threads Memory Benchmark Screen
Logic

Architecture

The project is written in Kotlin, using the "classical" Android 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.

Functional 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.

About

This app demonstrates the best practices for Android development and contains a repository of useful features

https://techyourchance.com

License:GNU General Public License v3.0


Languages

Language:Kotlin 99.6%Language:C++ 0.2%Language:CMake 0.1%Language:C 0.0%