What this book covers
Chapter 1, Getting Started, explains the basics of Android 6 Marshmallow and important concepts of Material Design. We will set up the tools needed to start developing and, optionally, we will install an ultrafast emulator that is quicker than the Android default one, which will help us test our app along the book.
Chapter 2, Designing our App, introduces the first step of creating an app—designing the navigation— and the different navigation patterns. We will apply the Tabs pattern with sliding screens, explaining and using Fragments, which is a key component in the Android app development.
Chapter 3, Creating and Accessing Content from the Cloud, covers all that is necessary to display information from the Internet in our app. This information can be on an external server or API. We will create our own server using Parse, and we will access it with advanced network requests using Volley and OKHttp, processing the information and converting it into usable objects using Gson.
Chapter 4, Concurrency and Software Design Patterns, talks about concurrency in Android and the different mechanisms to handle it, such as AsyncTask, Services, Loaders, and more. The second part of this chapter talks about the most common programming patterns used in Android.
Chapter 5, Lists and Grids, discusses lists and grids, starting with ListViews. It explains how this component evolved in RecyclerView, and as an example, it shows how to create a list with different types of elements on it.
Chapter 6, CardView and Material Design, focuses on improving the app from a user interface perspective and introduces Material Design, explaining and implementing features such as CardView, Toolbar, and CoordinatorLayout.
Chapter 7, Image Handling and Memory Management, mostly talks about displaying images in our app that are downloaded from the Internet using different mechanisms such as Volley or Picasso. It also covers different types of images, such as Vector Drawable and Nine patch. Finally, it talks about memory management and preventing, detecting, and locating memory leaks.
Chapter 8, Databases and Loaders, essentially explains how databases work in Android, what content providers are, and how to get the database to communicate directly with the views using CursorLoaders.
Chapter 9, Push Notifications and Analytics, talks about how to implement push notification using Google Cloud Messaging and Parse. The second part of the chapter talks about analytics, which is critical to understand how users behave with our app, to capture error reports, and to keep our app free of bugs.
Chapter 10, Location Services, introduces MapView by implementing an example in the app from the initial setup in the developer console to the final map view in the app showing locations markers.
Chapter 11, Debugging and Testing on Android, talks mostly about testing. It covers unit test, integration, and user interface tests. It also discusses using different tools and best practices on the market to develop a maintainable app through automated tests.
Chapter 12, Monetization, the Build Process, and Release, shows how to monetize the app and explains the key concepts of advertisement monetization. It shows how to export an app with different build types and, finally, how to upload and market this app in Google Play Store.