Android Developer RoadMap
Rohan Lodhi
?? Senior Android Engineer | Java & Kotlin Expert | MVP, MVVM,MVI | API Integration | Passionate About Scalable Mobile Solutions
While Going through some of the android articles I found below image . This image explains all things which Android Developer should know.
If you are a new Android developer, buckle your belt. It surely will help .When there is so much information and you just started Android development, it’s easy to get confused about where to start.So, I thought I would write this article to help you to clear the path to begin with development.
If you want to become an Certified Android developer , just follow below suggested path. The image explains all topics of android application from zero to complex(Android Studio To App Publishing)
Below are some basic concept and good for beginners wanting to get started with Android development.
1.Programming Language
To Develop Android applications you need to have three major skills/languages: Java ,Android and XML.
- Java is a general-purpose, statically typed, object-oriented programming language designed to be used in conjunction with the Java Virtual Machine (JVM).
- Android is Google's mobile operating system, used for programming or developing digital devices (Smartphones, Tablets, Automobiles, TVs, Wear, Glass, IoT).
- XML is the language used for Developing Android User Interface.Extensible Markup Language (XML) is a flexible, structured document format that defines human- and machine-readable encoding rules.
After Google IO 2019, Kotlin Is the prefered and Official Language for Android Development.
I know that you must me thinking if google had announced kotlin as an official language for programming Android apps then why to learn java.Google also recommend you to learn Java first because Java is still a big part of Android and still there are not many resources available to learn all Android APIs in kotlin.
Android Studio is the official integrated development environment for Google's Android operating system, built on JetBrains' IntelliJ IDEA software and designed specifically for Android development.
2.App Manifest
Every application must have an AndroidManifest.xml file (with precisely that name) in its root directory. The manifest presents essential information about the application to the Android system, information the system must have before it can run any of the application's code.
3.App Components
App components are the essential building blocks of an Android app. Each component is an entry point through which the system or a user can enter your app. Some components depend on others.
There are four different types of app components:
- Activities : An activity is the entry point for interacting with the user. It represents a single screen with a user interface.
- Services : A service is a general-purpose entry point for keeping an app running in the background for all kinds of reasons. It is a component that runs in the background to perform long-running operations or to perform work for remote processes.
- Broadcast receivers : A broadcast receiver is a component that enables the system to deliver events to the app outside of a regular user flow, allowing the app to respond to system-wide broadcast announcements.
- Content providers : A content provider manages a shared set of app data that you can store in the file system, in a SQLite database, on the web, or on any other persistent storage location that your app can access.
Other useful Components are:-
- Fragments : A Fragments represents a behavior or a portion of user interface in a FragmentActivity . You can combine multiple fragments in a single activity to build a multi-pane UI and reuse a fragment in multiple activities.
- Intent : An Intent provides a facility for performing late runtime binding between the code in different applications. Its most significant use is in the launching of activities, where it can be thought of as the glue between activities. It is basically a passive data structure holding an abstract description of an action to be performed.
4.User Interfaces
Your app's user interface is everything that the user can see and interact with. Android provides a variety of pre-built UI components such as structured layout objects and UI controls that allow you to build the graphical user interface for your app.
5.Storage
Android provides several options for you to save persistent application data. The solution you choose depends on your specific needs, such as whether the data should be private to your application or accessible to other applications (and the user) and how much space your data requires.
Your data storage options are the following:
6.Architecture
A collection of libraries that help you design robust, testable, and maintainable apps. Start with classes for managing your UI component lifecycle and handling data persistence.
The main parts of Architecture are:
- Code Architecture
- Dependency Injection
- Quality Assurance
Code Architecture
The Model-View-Controller (MVC) is an architectural pattern that separates an application into three main logical components: the model, the view, and the controller. Each of these components are built to handle specific development aspects of an application.
The Model–view–presenter (MVP) is a derivation of the model–view–controller (MVC) architectural pattern which mostly used for building user interfaces. In MVP, the presenter assumes the functionality of the “middle-man”. In MVP, all presentation logic is pushed to the presenter.
The Mode-View-ViewModel pattern makes use of Data Binding, such that views contain exactly 1 variable vm i.e. ViewModel. Idea is that the ViewModel should have all information required to display the View. Multiple views can share a single view model. This helps in reusing functionality for a different layout.
Dependency Injection
Dependency injection is a technique whereby one object supplies the dependencies of another object. A dependency is an object that can be used. An injection is the passing of a dependency to a dependent object that would use it.
Quality Assurance
Quality assurance is a way of preventing mistakes and defects in manufactured products and avoiding problems when delivering products or services to customers.
7.Build Configuration
In Android Studio, Gradle is a custom build tool used to build android packages (apk files) by managing dependencies and providing custom build logic. APK file (Android Application package) is a specially formatted zip file which contains. Byte code. Resources (images, UI, xml etc)
8. Thread Handling
In Android, all application code runs on single thread which is main thread.All UI modifications and handling of input events will be handle by main thread. So when we perform some slow and long running task which block the main thread for a while or may be forever, so to avoid that situation we have to perform long running asynchronously by using Thread.
To perform asynchronously we can use :
A Handler allows you to send and process Message and Runnable objects associated with a thread's MessageQueue. Each Handler instance is associated with a single thread and that thread's message queue.
The Kotlin team defines coroutines as “lightweight threads”. They are sort of tasks that the actual threads can execute. The banner on Kotlinlang.org is an illustration of this : The most interesting thing is that a thread can stop executing a coroutines at some specific “suspension points”, and go do some other work.
AsyncTask is basically used to reduce the load of tasks off the UI thread. It creates a background thread to perform an operation like that of fetching results from the Internet or loading data from the database, etc. and then publish the results to the main UI thread.
This was a quick introduction to Android Topics and I’ll try to give basic idea for remaining topics in second article .I know that all the theory behind Android topics is huge, but I’m tried to give basic idea so that everyone can start using them within their projects.Hoping that some of you found this useful.
Resources:
Image: https://github.com/anacoimbrag/android-developer-roadmap
Content :https://developer.android.com/
Happy Coding!!!
Professional Android Developer | Kotlin, Jetpack Compose, MVVM, Hilt | High-Performance, Modern App Development
5 年https://github.com/mobile-roadmap/android-developer-roadmap
?? Senior Android Engineer | Java & Kotlin Expert | MVP, MVVM,MVI | API Integration | Passionate About Scalable Mobile Solutions
5 年Please follow this :- https://github.com/anacoimbrag/android-developer-roadmap
Android Engineer at TorAlarm
5 年Great article! , Can you upload the roadmap in a better quality ?