
Clean Android Architecture
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
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.
All prices
More details
Content
- Intro
- Title page
- Copyright and Credits
- Foreword
- Contributors
- About the reviewers
- Table of Contents
- Part 1 - Introduction
- Preface
- Chapter 1: Getting Started with Clean Architecture
- Technical requirements
- The architecture of a legacy app
- Legacy analysis
- Software design principles
- SOLID principles
- Component cohesion principles
- Component coupling principles
- Exploring the evolution of Android
- Fragments
- The Gradle build system
- Networking
- Humble objects
- Functional paradigms
- Kotlin adoption
- Dependency injection
- Android architecture components
- Coroutines and flows
- Jetpack Compose
- Enter clean architecture
- Summary
- Chapter 2: Deep Diving into Data Sources
- Technical requirements
- Understanding Kotlin coroutines and Flows
- Kotlin coroutines
- Exercise 02.01 - Using Kotlin coroutines
- Kotlin Flows
- Exercise 02.02 - Using Kotlin Flows
- Using OkHttp and Retrofit for networking
- Exercise 02.03 - Using OkHttp and Retrofit
- Using the Room library for data persistence
- Exercise 02.04 - Using Room to persist data
- Understanding and using the DataStore library
- Exercise 02.05 - Using DataStore to persist data
- Summary
- Chapter 3: Understanding Data Presentation on Android
- Technical requirements
- Analyzing lifecycle-aware components
- Exercise 3.1 - Using ViewModel and LiveData
- Using Jetpack Compose to build UIs
- Exercise 3.2 - Navigating using Jetpack Compose
- Summary
- Chapter 4: Managing Dependencies in Android Applications
- Technical requirements
- Introduction to DI
- Using Dagger 2 to manage dependencies
- Using Hilt to manage dependencies
- Exercise 04.01 - using Hilt to manage dependencies
- Summary
- Part 2 - Domain and Data Layers
- Chapter 5: Building the Domain of an Android Application
- Technical requirements
- Introducing the app's architecture
- Creating the domain layer
- Exercise 05.01 - Building a domain layer
- Summary
- Chapter 6: Assembling a Repository
- Technical requirements
- Creating the data layer
- Creating repositories
- Exercise 06.01 - Creating repositories
- Summary
- Chapter 7: Building Data Sources
- Technical requirements
- Building and using remote data sources
- Exercise 07.01 - Building a remote data source
- Building and integrating local data sources
- Exercise 07.02 - Building a local data source
- Summary
- Part 3 - Presentation Layer
- Chapter 8: Implementing an MVVM Architecture
- Technical requirements
- Presenting data in Android applications
- Presenting data with MVVM
- Exercise 08.01 - Implementing MVVM
- Presenting data in multiple modules
- Exercise 08.02 - Multi-module data presentation
- Summary
- Chapter 9: Implementing an MVI Architecture
- Technical requirements
- Introducing MVI
- Implementing MVI with Kotlin flows
- Exercise 09.01 - Transitioning to MVI
- Summary
- Chapter 10: Putting It All Together
- Technical requirements
- Inspecting module dependencies
- Exercise 10.01 - Reduce dependencies
- Instrumentation testing
- Exercise 10.02 - Instrumented testing
- Summary
- Index
- Other Books You May Enjoy
System requirements
File format: ePUB
Copy protection: Adobe-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Install the free reader Adobe Digital Editions prior to download (see eBook Help).
- Tablet/smartphone (Android; iOS): Install the free app Adobe Digital Editions or the app PocketBook before downloading (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (not Kindle).
The file format ePub works well for novels and non-fiction books – i.e., „flowing” text without complex layout. On an e-reader or smartphone, line and page breaks automatically adjust to fit the small displays.
This eBook uses Adobe-DRM, a „hard” copy protection. If the necessary requirements are not met, unfortunately you will not be able to open the eBook. You will therefore need to prepare your reading hardware before downloading.
Please note: We strongly recommend that you authorise using your personal Adobe ID after installation of any reading software.
For more information, see our ebook Help page.
File format: ePUB
Copy protection: without DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Use a reader that can handle the file format ePUB, such as Adobe Digital Editions or FBReader – both free (see eBook Help).
- Tablet/Smartphone (Android; iOS): Install the free app Adobe Digital Editions or the app PocketBook (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (not Kindle).
The file format ePUB works well for novels and non-fiction books – i.e., 'flowing' text without complex layout. On an e-reader or smartphone, line and page breaks automatically adjust to fit the small displays.
This eBook does not use copy protection or Digital Rights Management
For more information, see our eBook Help page.