Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Developing Clean Architecture Apps

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

Developing Clean Architecture Apps

Till 2017 Android developer's biggest worry was surviving configuration change but things changed in 2017 when Google introduced Architecture components.

Using architecture components even beginners can now easily implement "Clean Architecture" in their apps.

Avatar for Ashesh Bharadwaj

Ashesh Bharadwaj

October 28, 2018
Tweet

More Decks by Ashesh Bharadwaj

Other Decks in Programming

Transcript

  1. Basics • High / Low level class: Lower, closer to

    the app boundary. Higher, less dependency and more abstract. • Business rules: It’s the logic WE CREATE to influence the behavior of the app. • Use case: An interaction with the app. • Layers: A virtual boundary to organize a group of classes. • Entity: The Entity objects hold the data used by the system and all the behaviour naturally coupled to this data - Ivar Jacobson.
  2. What is Software Architecture? • The fundamental concepts or properties

    of a system in its environment embodied in its elements, relationships, and in the principles of its design and evolution – IEEE • Software architecture is the art of drawing lines that I call boundaries - Robert C. Martin a.k.a. Uncle Bob
  3. Dependency Inversion Principle High-level modules should not depend on low-level

    modules. Both should depend on abstractions. Abstractions should not depend on details. Details should depend on abstractions.
  4. This needs to change… Architecture doesn’t require special technical knowledge

    • Android Architecture Components • Room • LiveData • ViewModel • Self-discipline • A little extra work which pays for itself