Giter Club home page Giter Club logo

yogesh-7 / techyourchance-android-application Goto Github PK

View Code? Open in Web Editor NEW

This project forked from techyourchance/techyourchance-android-application

0.0 0.0 0.0 510 KB

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

Home Page: https://techyourchance.com

License: GNU General Public License v3.0

C++ 0.23% C 0.03% Kotlin 99.61% CMake 0.13%

techyourchance-android-application's Introduction

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 Room Tutorial Part 2 โ€“ The Architecture 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.

techyourchance-android-application's People

Contributors

techyourchance avatar dautovicharis avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.