Chapter 1, Creating Android Layouts, will introduce or reintroduce Android Studio and help create a new Android application project from a template. We'll look at how an Android project is structured and how a user interface is wired together.
Chapter 2, Designing Form Screens, will show you how to design a form screen from scratch. You will learn techniques to decide what to put on the screen and how to layout a form screen to maximize its effectiveness while not disrupting your user's flow of thought.
Chapter 3, Taking Actions, will show you how to handle events in Android. It'll walk you through various types of events and provide you patterns and techniques to keep your application as responsive as possible. It'll also show you techniques to avoid complexity overload in your code base and how to keep your application's internal structure as clean as possible.
Chapter 4, Composing User Interfaces, will give you tools to build modular user interface components. It'll show you how to wrap related logic and user interface structures so that they can be reused, to reduce your code complexity while also making the user experience more consistent.
Chapter 5, Binding Data to Widgets, will introduce the data binding framework in Android. You'll find out why data binding exists, how it works, and how to use it effectively. You'll learn how to create user interface structures that automatically update when the data model changes.
Chapter 6, Storing and Retrieving Data, will cover how the storage and retrieval of data in a mobile app has a direct effect on the user experience. You will learn how best to build offline-first, reactive applications using the Room data access layer and data binding.
Chapter 7, Creating Overview Screens, will explore the RecyclerView and how it is often used in overview screens and dashboards to provide information. You'll learn how to create the data structures that support a RecyclerView and how to leverage data binding to massively reduce the boilerplate traditionally associated with these structures.
Chapter 8, Designing Material Layouts, will introduce several Material Design-specific patterns and widgets for Android apps. You'll learn how to leverage collapsing title bars and customize them to show your user additional information. You'll also learn how to add swipe-to-dismiss behavior, undo snackbars, and elevation to your user interfaces.
Chapter 9, Navigating Effectively, will help you learn to make a design-effective application navigation to guide your user to their intended goals intuitively. This chapter introduces several navigation-specific widgets and layout techniques, and shows where and how they can be most effectively applied.
Chapter 10, Making Overviews Even Better, will revisit the overview screen built in Chapter 7, Creating Overview Screens, and show how to leverage the Android platform API to produce polished overview screens. You'll learn how to use DiffUtil to automatically produce animations in RecyclerView and patterns that allow you to produce more readable overview lists.
Chapter 11, Polishing Your Design, will help you with the polishing of a good design. It'll introduce tools and techniques to help you choose a color scheme for your application. You'll also learn how to generate color schemes on the fly and how to create and use animations to guide your users.
Chapter 12, Customizing Widgets and Layouts, will introduce building your own custom widgets for Android. You'll learn how to render 2D graphics directly from Java code and how to create your own custom layouts. This chapter also shows how to build animation widgets that self-animate while they are visible.
Appendix A, Activity Lifecycle, a diagram and short description covering the lifecycle events delivered to an Android Activity, and when they can be delivered.
Appendix B, Test Your Knowledge Answers, the answers to the Test Your Knowledge section of each chapter.