Who is this for?
This book is for intermediate Android developers who already know the basics of the Android platform and the Kotlin language, and who are looking to build modern and professional apps using the most important libraries. If you want to create a reactive and good-looking UI and are determined not to ignore important aspects like security, this book will help.
- Choosing the Right Architecture
- Building Features
- Custom Views
The best book to teach you to build professional, secure Android apps for the real world using the most important architectures and libraries. You’ll gain all the foundations of Android development you need to make the best decisions in your own codebase, while addressing critical problems like finding the right...more
Before You Begin
This section tells you a few things you need to know before you get started, such as what hardware and software you’ll need, where to find the project files for this book and more.
Section I: Developing Real World Apps
In this section, you’ll learn how to design and implement PetSave as an example of a professional, real world app. You’ll learn how to choose the right architectural pattern and how to structure the code to make the app testable and maintainable.
To make your app easier to change, it’s a good practice to define different layers with specific responsibilities. In particular, you’ll learn how to design and implement the domain layer for the PerSave app. You’ll also see how to access the network efficiently, by implementing the repository pattern in the data layer.
At the end of this section, you’ll have a clear idea about how to structure the code of your app.
Section II: Modularizing Your App
As you add new features to your app, the code becomes more complex and difficult to maintain. For this reason, it’s important to separate your app into different libraries to make your code both maintainable and reusable. This also improves the app’s build time, which is a very important metric for your CI.
In this section, you’ll learn how to split your app into different modules. In particular, you’ll learn how to use the dynamic feature option, which optimizes the size of the code your users have to download to use your app.
Section III: Enhancing Your UI
The user interface (UI) is one of the most important aspects of any real world app. How your user interacts with the features of your app is what decides if the app is successful or not.
When you build your app, you have three options for creating your UI. Most of the time you’ll use what the Android SDK provides. In other cases, you customize the existing components. Your third option is to create your own custom components.
In this section, you’ll learn how to enhance the user interface of your app. You’ll create and customize animation using the new Animation Editor, which comes with recent versions of Android Studio. You’ll also learn how to master themes and styles and to create a custom view.
After reading this section, you’ll have a more appealing app and happier users.
Section IV: Securing Your App
Making your app more secure is an aspect of development that’s often ignored, but, at the same time, is absolutely vital. Imagine what would happen if somebody would hack your code, stealing important data or even the usernames and passwords of your users. That would be a disaster.
In this chapter, you’ll learn how to handle security from different points of view. You’ll learn how to protect user data and how to securely connect to a server. Finally, you’ll learn how to make hackers’ lives more difficult, by using different methods to protect your code and your data.
Section V: Maintaining Your App
When you’re developing your real world app, you might think that publishing is your end goal. But really, your work isn’t over just because you’ve released your app. You still need to understand if your app is working properly and what problems your users are experiencing.
In this section, you’ll learn everything you need to know about maintaining and controlling your app after it’s published and available to users. In particular, you’ll learn how to use Firebase for logging crashes, how to enable or disable certain features and how to use A/B tests to understand what solution is the best for your users.
Finally, you’ll see how to optimize your app’s size and how to use Android Studio as a profiling tool.
After reading this section, you’ll be ready to use all the available tools for improving your app’s quality.