Earlier than You Start
This part tells you a number of issues it’s good to know earlier than you get began, comparable to what {hardware} and software program you’ll want, the place to search out the mission information for this e-book and extra.
Part I: Growing Actual World Apps
On this part, you’ll learn to design and implement PetSave for example of knowledgeable, actual world app. You’ll learn to select the best architectural sample and the right way to construction the code to make the app testable and maintainable.
To make your app simpler to alter, it’s a very good apply to outline completely different layers with particular obligations. Particularly, you’ll learn to design and implement the area layer for the PerSave app. You’ll additionally see the right way to entry the community effectively, by implementing the repository sample within the knowledge layer.
On the finish of this part, you’ll have a transparent thought about the right way to construction the code of your app.
The Android platform is greater than 10 years previous and the variety of frameworks, libraries and instruments you need to use to develop your app are numerous. This e-book covers the applied sciences and practices it’s good to comply with in the actual world if you wish to create a profitable Android app.
1
Constructing Android apps is not only a matter of writing code. You additionally want to make use of one of the best structure and construction your information in a means that makes it straightforward to use adjustments. Retaining excessive cohesion and low coupling is simply one of many primary ideas you will study on this chapter, the place you will begin engaged on the PetSave app.
2
The area layer is a group of entity objects and associated enterprise logic, designed to characterize the enterprise mannequin of any app. Right here, you will study what a website layer is and the right way to create a very good one. You will see the variations between entity and worth objects together with some great benefits of utilizing the repository abstraction. Lastly, you will check the area logic of your app.
3
Each helpful app permits customers to entry info that is both saved regionally or fetched from the community. That is what an information layer helps you do. On this chapter, you will study what the info layer is and what selections you may have whenever you want one. You will be launched to the repository sample and learn to implement it from the design to the testing part.
4
Most apps entry knowledge from the community, which introduces completely different sorts of issues, like latency and connectivity prices. To enhance efficiency and cut back prices, it is a good apply to retailer knowledge regionally. Due to this fact, it’s good to implement the repository sample as a cache or easy native retailer. On this chapter, you will learn to implement and check the repository sample within the PetSave app utilizing Room and Hilt.
5
PetSave permits customers to search out animals near them based mostly on sure standards. There are a number of architectural design patterns you need to use to create this function. Right here, you will use MVVM and Unidirectional Knowledge Movement to implement the “Animals Close to You” function. You will even have the chance to learn to use elementary libraries like StateFlow, ViewModel and ViewBinding.
6
PetSave’s primary function is to allow you to seek for pets based mostly on sure standards. On this chapter, you will use a top-down method to implement the search, from defining the UI to fetching the info.
7
Part II: Modularizing Your App
As you add new options to your app, the code turns into extra advanced and troublesome to keep up. Because of this, it’s necessary to separate your app into completely different libraries to make your code each maintainable and reusable. This additionally improves the app’s construct time, which is an important metric to your CI.
On this part, you’ll learn to cut up your app into completely different modules. Particularly, you’ll learn to use the dynamic function possibility, which optimizes the scale of the code your customers should obtain to make use of your app.
Modularization is likely one of the most difficult issues you face with huge apps. Splitting the app into completely different modules permits you to cut back construct time whereas creating code you’ll be able to reuse in different apps. On this chapter, you will learn to create a function module for PetSave, specializing in the navigation.
8
This chapter covers the basic ideas of dynamic options. Dynamic options allow you to cut up the app into completely different modules to scale back the APK dimension and the obtain time and price.
9
Cell apps, particularly video games and apps with numerous graphic property, usually have giant APKs. Google’s dynamic function possibility permits you to maintain your app modern by splitting it into elements that customers can load if and once they really want them. On this chapter, you will learn to use dynamic options to put in PetSave extra effectively.
10
Part III: Enhancing Your UI
The consumer interface (UI) is likely one of the most necessary elements of any actual world app. How your consumer interacts with the options of your app is what decides if the app is profitable or not.
Once you construct your app, you may have three choices for creating your UI. More often than not you’ll use what the Android SDK supplies. In different circumstances, you customise the present parts. Your third possibility is to create your individual customized parts.
On this part, you’ll learn to improve the consumer interface of your app. You’ll create and customise animation utilizing the brand new Animation Editor, which comes with latest variations of Android Studio. You’ll additionally learn to grasp themes and kinds and to create a customized view.
After studying this part, you’ll have a extra interesting app and happier customers.
Animations are important to creating your app each straightforward and nice to make use of. The Android platform supplies a number of APIs to implement several types of animations. On this chapter, you will learn to use each physics-based and Lottie animation.
11
Implementing animation within the Android platform could be troublesome and time-consuming. It is essential to make use of the best instrument. In latest releases of Android Studio, the Movement Editor permits you to implement several types of animations in a easy and declarative means. On this chapter, you will learn to use Movement Editor and the right way to combine MotionLayout into your app.
12
The Android platform supplies completely different normal parts you need to use to create the UI to your app. More often than not, they’re sufficient. Typically, as within the PetSave app, you want one thing customized. To create customized UI components, you utilize the customized view, which you will study all about on this chapter.
13
Android supplies kinds and themes to customise the feel and appear of the UI parts of any app. They let you utterly change any side of the UI of your app in a declarative means by offering a easy XML file. On this chapter, you will see the right way to customise a UI that makes use of normal parts and the right way to use kinds and themes with a customized view.
14
Part IV: Securing Your App
Making your app safer is a facet of improvement that’s usually ignored, however, on the similar time, is totally important. Think about what would occur if someone would hack your code, stealing necessary knowledge and even the usernames and passwords of your customers. That will be a catastrophe.
On this chapter, you’ll learn to deal with safety from completely different factors of view. You’ll learn to defend consumer knowledge and the right way to securely connect with a server. Lastly, you’ll learn to make hackers’ lives harder, by utilizing completely different strategies to guard your code and your knowledge.
On this chapter, you will study finest practices for securing an Android app. You will see the right way to cope with permissions and the right way to stop the most typical safety dangers.
15
Accessing knowledge from native storage has safety implications, so Android supplies completely different APIs and instruments to keep away from undesirable entry to your knowledge. Right here, you will learn to make your app safer by encrypting and decrypting knowledge and by utilizing biometrics to implement the consumer login.
16
On this chapter, you’ll study to safe the community connections of your app by utilizing HTTPS for community calls, trusting a reference to certificates pinning and verifying the integrity of transmitted knowledge.
17
Any cellular app could be susceptible to several types of assaults from hackers. It is common to examine hackers breaking apps and stealing necessary info. Due to this, avoiding code vulnerability and validating the enter from the consumer are essential matters. On this chapter, you will learn to use among the most necessary methods to make your app troublesome to hack.
18
Part V: Sustaining Your App
Once you’re creating your actual world app, you may assume that publishing is your finish aim. However actually, your work isn’t over simply since you’ve launched your app. You continue to want to know in case your app is working correctly and what issues your customers are experiencing.
On this part, you’ll study the whole lot it’s good to find out about sustaining and controlling your app after it’s printed and obtainable to customers. Particularly, you’ll learn to use Firebase for logging crashes, the right way to allow or disable sure options and the right way to use A/B exams to know what answer is one of the best to your customers.
Lastly, you’ll see the right way to optimize your app’s dimension and the right way to use Android Studio as a profiling instrument.
After studying this part, you’ll be prepared to make use of all of the obtainable instruments for enhancing your app’s high quality.
Firebase is a strong instrument to handle necessary elements of your app. Right here, you will see the right way to use Crashlytics to watch crashes and errors. Then, you will see the right way to use Distant Config to manage your app remotely. Lastly, you will learn to use Check Lab to check your app on a variety of gadgets.
19
Once you construct an app, it is not sufficient to implement its options and run exams. You additionally must spend time enhancing your app’s high quality by optimization. For instance, decreasing the APK’s dimension is necessary to help previous gadgets and customers with gradual web connections. On this chapter, you will learn to optimize your app earlier than launch.
20
Once you implement an app or attempt to repair a bug, you want some instruments to examine what’s taking place. For instance, you expertise a crash and do not know why, otherwise you obtain invalid info from the community and must examine the info. This chapter comprises the whole lot it’s good to find out about debugging, from reminiscence to community, from battery utilization to the definition of the UI and way more.
21
Typically, your app has issues and you do not know why. To unravel the issue, it’s good to do some deep investigation, not simply into your code but in addition into code you imported from third-party libraries. In different circumstances, the issue is not the code, however a corrupted file or database. On this chapter, you will learn to study the bytecode of your app and the information it makes use of to search out bugs and safety issues.
22