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

Summary

In this chapter, we looked at the concept of data sources and the different types of data sources we have available in an Android application. We started with remote data sources and saw some examples of how we can build a data source and combine it with libraries such as Retrofit and OkHttp. The local data source followed similar principles as the remote one, and here, we have used libraries such as Room and Data Store to implement this.

In the exercises, we implemented the data sources as part of different modules. This was to avoid creating any unnecessary dependencies between the other layers of the application and the specific frameworks we have used for the data sources. In the next chapter, we will look at how we can build the presentation layer and show data to the user. We will also explore how we can split the presentation layer into separate modules and navigate from a screen in one module to a screen in another module, through the introduction of modules that...