Creating MasteringAndroidApp
Now that we've seen the main features of the latest Android version, we can introduce the app that we are going to develop during the book. This app will include most of these features, but we will also spend time in the components widely used in previous Android versions.
To master Android, we should be prepared to understand legacy code; for instance, we might have to work on an app that still uses ListView
instead of RecyclerView
, which is new. We will not always create apps from scratch with the latest components, especially if we are professional Android developers. Also, looking at previous components will help us understand the natural evolution of these components to have a better idea of how they are now.
We will start creating this app totally from scratch, starting with the initial design, having a look at the most used design and navigation patterns in Android, such as tabs at the top, a sliding menu on the left side, and so on.
The app that we will develop, MasteringAndroidApp
, is one with server-side interaction. This app will show information that is stored in the cloud, and we will create the cloud component, making our app communicate with it. The topic we have chosen for the app is a job listing board, where we will create job offers on the server side, and the users of the app can read these offers and receive notifications.
You can easily customize the topic; this will be an example where you can change the information and create your own app with the same structure. In fact, it's better if you think of your own idea because we will discuss how to publish the app in Play Store and how to monetize it; we will add adverts, which will generate revenue when the users click on it. So, if you apply what you learn using your idea, by the time you finish the book, you will have an app ready to be distributed.
We will develop the app explaining the programming patterns that are most used in Android as well as concurrency techniques and different methods to connect to rest APIs or servers.
We'll not only be focusing on the backend, but also on the UI; by displaying the information in an efficient way, using lists and grids, downloading images from the Internet, and customizing fonts and views with the latest material design features.
We will learn the mechanism for debugging our apps, managing logs, and consider the memory usage while learning how to identify and prevent memory leaks.
Our app will have an offline mode based on a database, where we will store the content from the cloud. So, if the mobile loses connection, we can still show the information available when we were last online.
To complete our app, we will add extra features such as push notifications, crash reports, and analytics.
To finish, we will see how the Android build system works, exporting our app in different versions as well as obfuscating the code to protect it and prevent decompiling.
We have compressed a huge amount of information that will help you to master Android by the end of the book; however, before starting with our app, let's get the tools ready.