Who is this for?
This book is for intermediate Android developers who already know the basics of Android and Kotlin development but want to learn how best to organize code for scale.UI development but want to learn coroutine API in order to simplify and optimise their code.
- Model View Controller Theory
- Android Architecture Components
- Dependency Injection
- Model View Presenter Theory
- Model View ViewModel Theory
- VIPER Theory
- Model View Intent Theory
In Advanced Android App Architectures, you’ll find a diverse and hands-on approach to architecting your apps on Android. Android development can be fun; however, scaling an app can have its fair share of problems.
In this book, you’ll learn why a conversation on architecture is the first important step to...more
Before You Begin
This section tells you a few things you need to know before you get started, such as what you’ll need for hardware and software, where to find the project files for this book, and more.
Section I: Building a Foundation
This section introduces you to topics that will serve as a foundation for your understanding of the UI architecture patterns. You’ll get introduced to the sample project, an app named WeWatch, that allows users to keep track of movies to watch. You’ll also learn concepts that aid architecture, including Android Architecture Components and dependency injection.
Section II: Fundamental UI Architectures
In this section, you’ll rewrite WeWatch three different ways, first using MVP, then using MVVM with data binding, and finally using MVVM with Android Architecture Components. Though a user of the app won’t be able to see any difference after each of these changes, you as a developer will see how they solve some of the problems of the original WeWatch app written in MVC.
Section III: VIPER & MVI
In this section, you’ll rewrite WeWatch two different ways, first using VIPER and then using MVI. VIPER is similar to the MVP architecture but adds another two layers of abstraction to provide the highest level of modularity. On the other hand, MVI follows a different approach by using reactive programming principles with powerful libraries such as RxJava.