Giter Site home page Giter Site logo

pradiptapaa / github Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 387 KB

A precise code with less boilerplate and long disturbing code android application using the essence of all of my learned skills and lessons (excluding the tests) designed to be easy to understand even for the beginner. This project is using SharedFlow as its flow, a modular module Clean Architecture, Hilt as its dependency injection, ViewBinding as its layout binding, Retrofit as its REST API Client, Glide to get requested image link into the layout, BroadcastReceiver to get a notification locally, Widget showing Github user's photo, MVVM as its Architecture Pattern, Navigation-ui as its navigation, Paging 3 as its infinite scrolling, XML as its layout, SharedPreference to a temporary saving boolean state, SQLite using Room as its database, ContentProvider as its way to access database in a different module.

Kotlin 100.00%

github's Introduction

Github - pradiptapa version

A precise code with less boilerplate and long disturbing code android application using the essence of all of my learned skills and lessons (excluding the tests) designed to be easy to understand even for the beginner. This project is using SharedFlow as its flow, a modular module Clean Architecture, Hilt as its dependency injection, ViewBinding as its layout binding, Retrofit as its REST API Client, Glide to get requested image link into the layout, BroadcastReceiver to get a notification locally, Widget showing Github user's photo, MVVM as its Architecture Pattern, Navigation-ui as its navigation, Paging 3 as its infinite scrolling, XML as its layout, SharedPreference to a temporary saving boolean state, SQLite using Room as its database, ContentProvider as its way to access database in a different module.

Development Skills Applied

This list will be listed ALL of my learned lessons about Android Native Development. The checklist will be checked if there are any learned lessons which used in this project. The double slash will act as a short description of the library/method/etc. This list makes it even non-developers easier to understand what's being applied in this project. As my knowledge grows, this list probably will be updated when I have the time for it, so I hope it can serve as it's meant to be.

1. Lifecycle
1.1. [x] Coroutine // Thread-like Management

2. Observable
2.1. [ ] LiveData // Lifecycle-aware-version of observable

2.2. Flow 
2.2.1. [ ] StateFlow // Hot-flow-version of flow
2.2.2. [x] SharedFlow // No-initial-value of flow

3. Clean Architecture
3.1. [x] Modular // Separating layers into different modules
3.2. [x] Centralize // Combine layers in one application module

4. Dependency Injection
4.1. [x] Hilt // Dagger-with-improved-boilerplate

5. Network
5.1. [ ] Firebase // Software-as-many-many-useful-free-and-easy-to-use-service  
5.2. [x] Retrofit // Rest Client 
5.3. [ ] Ktor // Kotlin-version-of-retrofit

6. BroadcastReceiver 
6.1. [x] BroadcastReceiver // Those pop-up things when you got a notification 

7. Widget
7.1. [x] Widget // Those things that usually appear in your home phone

8. Leak
8.1. [ ] LeakCanary // Library to check leaking memory

9. Architecture Pattern
9.1. [ ] MVP // Model-View-Presenter
9.2. [x] MVVM // Model-View-ViewModel

10. Navigation
10.1. [x] Navigation-ui // One Activity, Multiple Fragment

11. Local Storage
11.1. [x] SharedPreference // Temporary Storage
11.2. [x] SQLite // Android-version-of-database
11.2.1. [x] Room // Easier SQLite

12. Layout
12.1. [x] XML // Default Android Native Layout

13. Infinite Scroll
13.1. [x] Paging 3 // Improved Paging 2

14. ContentProvider
14.1. [x] ContentProvider // A way to Access database from different module/package

15. Image Loading
15.1. [x] Glide // Famous image-loading library
15.2. [ ] Picasso // Another image-loading library which famous for it's lightness

Usage

To try running this project, clone and put your own Github authorization code in commented TODO in Gradle and you're ready to go.

github's People

Contributors

pradiptapaa avatar

Stargazers

 avatar

Watchers

 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.