
Premium
Title Page
1/4/2025
Copyright Page
1/4/2025
Dedication
1/4/2025
Forewords
1/4/2025
About the Author
1/4/2025
Acknowledgements
1/4/2025
Preface
1/4/2025
Convention
1/4/2025
Table of Contents
1/4/2025
1. Introduction
1/4/2025
Introduction
1/4/2025
Structure
1/4/2025
Objectives
1/4/2025
History of Android
1/4/2025
Clean Architecture overview
1/4/2025
Clean Architecture vs. MVVM
1/4/2025
So now I must rewrite my project
1/4/2025
Clean Code
1/4/2025
Conclusion
1/4/2025
Points to remember
1/4/2025
2. Clean Architecture Principles
1/4/2025
The application and its role in architecture
1/4/2025
The layers of Clean Architecture implementation
1/4/2025
The Domain layer
1/4/2025
The Presentation layer
1/4/2025
The UI layer
1/4/2025
The Data layer
1/4/2025
The DataSource layer
1/4/2025
Navigation
1/4/2025
3. The Domain Layer
1/4/2025
A brief introduction to the Domain layer
1/4/2025
The Domain architecture code
1/4/2025
The Domain feature code
1/4/2025
4. The Presentation Layer
1/4/2025
The Presentation architecture code
1/4/2025
The Presentation feature code
1/4/2025
5. The UI Layer
1/4/2025
Role of the UI layer
1/4/2025
The UI architecture code
1/4/2025
UI feature code
1/4/2025
6. The DataSource and Data Layers
1/4/2025
The DataSource architecture code
1/4/2025
The DataSource implementation code
1/4/2025
7. Dependency Injection and Navigation
1/4/2025
Overview of the app module
1/4/2025
Implementing and arranging the DI solution
1/4/2025
Implementing navigation
1/4/2025
8. Unit Testing
1/4/2025
The value of unit tests
1/4/2025
Testing the Domain layer
1/4/2025
Testing the Presentation layer
1/4/2025
Testing the Data layer
1/4/2025
Testing the DataSource layer
1/4/2025
The fallacy of test coverage confidence
1/4/2025
9. End-to-end Testing
1/4/2025
The value of end-to-end tests
1/4/2025
The robot pattern
1/4/2025
Testing the home screen
1/4/2025
10. Mocking the Server
1/4/2025
Reasons to mock the server
1/4/2025
Mocking the server
1/4/2025
Using MockWebServer
1/4/2025
Stubbing a Ktor client
1/4/2025
11. Failures and Exceptions
1/4/2025
Failures or exceptions
1/4/2025
Handling failures
1/4/2025
Handling exceptions
1/4/2025
12. Implementing a New Feature
1/4/2025
The definition of a feature
1/4/2025
The requirement
1/4/2025
Starting with the Domain layer
1/4/2025
Implementing the Presentation layer
1/4/2025
Implementing the UI layer
1/4/2025
Implementing the Data and DataSource layers
1/4/2025
13. Dealing with Changes
1/4/2025
Dealing with changes
1/4/2025
Changing a datasource
1/4/2025
Changing the user interface
1/4/2025
14. Migrating an Existing Project
1/4/2025
Existing architectures
1/4/2025
Gradual migration from MVP
1/4/2025
Gradual migration from MVVM
1/4/2025
Revisiting existing implementations
1/4/2025
15. Other Bits and Bobs
1/4/2025
Incidental and accidental duplication
1/4/2025
Long-running operations
1/4/2025
Sharing models across layers
1/4/2025
Flattening and sanitizing data structures
1/4/2025
Handling permissions
1/4/2025
Cross-platform insights
1/4/2025
Software engineering best practices
1/4/2025