This is the sourcecode for a Youtube playlist of native android app called Serial Decoder




Currently (Finished):

User Interface (Finished):

  • Bottom Sheet
  • Pager layout (ViewPager in XML)
  • Simple Animation
  • Adaptive Layout
  • Theming
  • Material Design Components

Side Effects (Finished):

  • DisposableEffect
  • LaunchedEffect

Android Based Tech (Finished):

  • Navigation Component
  • SharedPreference vs Preference Data Store vs Proto Data Store
  • Deep Link (communication with other apps/website)
  • Google’s MLKit for barcode scanning (3rd party)
  • CameraX & Camera2

Dependency Injection (Finished):

  • Dagger Hilt Framework

Design Patterns (Finished):

  • Factory Design Pattern
  • Strategy Design Pattern


Testing (Finished but not recorded on Youtube):

  • Instrumentation Test (User Interface)
  • Unit Testing (Local JVM)
  • Testing Corountines
  • Test Doubles
  • Manual DI vs Dagger Hilt Framework

Testing is not included in this version yet, to view the test cases, check the other repo, which I essentially made for myself:

SerialDecoderYT repo is the same as this one, except for 2 aspects:

  • Testing (I did not record Testing on youtube yet, so there’s no testing in this repo)
  • Feature Decoding The only difference in the feature_decoding package, where on Youtube I applied the 2 design patterns, Factory, and Strategy design patterns to improve the scalability of the app to large scale opportunities, other than that they’re all the same on terms of features

Feel free to check the source code for the testing here:


Polishing (Work In Progress):

  • Made App Icon (Finished)
  • ASO (WIP)

How it looks on Phone?


How it looks on Tablet?


Before Open Closed Principle of SOLID:


Decoding Utility Class Before Open Closed Principle

Video (Before Open Closed Principle):


Video (After Open Closed Principle):


If you like this repo, feel free to star it, subcribe to the channel, do charity, just do anything positive ?

Thanks and good luck to all of you!


View Github