Book Image

Clean Android Architecture

By : Alexandru Dumbravan
Book Image

Clean Android Architecture

By: Alexandru Dumbravan

Overview of this book

As an application’s code base increases, it becomes harder for developers to maintain existing features and introduce new ones. In this clean architecture book, you'll learn to identify when and how this problem emerges and how to structure your code to overcome it. The book starts by explaining clean architecture principles and Android architecture components and then explores the tools, frameworks, and libraries involved. You’ll learn how to structure your application in the data and domain layers, the technologies that go in each layer, and the role that each layer plays in keeping your application clean. You’ll understand how to arrange the code into these two layers and the components involved in assembling them. Finally, you'll cover the presentation layer and the patterns that can be applied to have a decoupled and testable code base. By the end of this architecture book, you'll be able to build an application following clean architecture principles and have the knowledge you need to maintain and test the application easily.
Table of Contents (15 chapters)
1
Part 1 – Introduction
6
Part 2 – Domain and Data Layers
10
Part 3 – Presentation Layer

Analyzing lifecycle-aware components

In this section, we will analyze the lifecycles of activities and fragments and the potential issues that are caused when working with them. We will also observe how the introduction of ViewModel and LiveData solves these problems.

When the Android operating system and its development framework were released, activities were the most commonly used components when developing an application, as they represent the entry point of the interaction between an application and a user. As technology in displays and resolutions improved, apps could then present more information and controls that the user could interact with. For developers, this meant that the code required to manage the logic for a single activity increased, especially when dealing with different layouts for landscape and portrait. The introduction of fragments was meant to solve some of these problems. Responsibilities for handling the logic in different parts of the screen could now...