Android Developer RoadMap

Android Developer RoadMap

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)


No alt text provided for this image

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!!!

SUBIN BABU

Professional Android Developer | Kotlin, Jetpack Compose, MVVM, Hilt | High-Performance, Modern App Development

5 年
回复
Rohan Lodhi

?? Senior Android Engineer | Java & Kotlin Expert | MVP, MVVM,MVI | API Integration | Passionate About Scalable Mobile Solutions

5 年
Ahmed Ashour

Android Engineer at TorAlarm

5 年

Great article! , Can you upload the roadmap in a better quality ?

回复

要查看或添加评论,请登录

Rohan Lodhi的更多文章

  • Increase your Gradle Build Speed

    Increase your Gradle Build Speed

    Long build times slow down your development process, so to overcome the long build process there are some important…

  • Android Studio?Plugins

    Android Studio?Plugins

    Studio Plugins which makes development simpler!!! 1.Material Design Icon Generater Android Studio & IntelliJ Plugin for…

  • Adding Google Admob Ads to Android App

    Adding Google Admob Ads to Android App

    Main Objective of this blog post is to explain how to integrate Admob Ads in Android Application using Android…

  • This article shows you how to use Kotlin language for Development of Android application.

    This article shows you how to use Kotlin language for Development of Android application.

    The Android team announced during Google I/O 2017 that Kotlin is now an official language to develop Android Apps. This…

    1 条评论
  • Security While Sending the Data to Server Using SSL(Secure Sockets Layer)

    Security While Sending the Data to Server Using SSL(Secure Sockets Layer)

    This article describes how to create a secure socket from an android device to a server using a certificate. It…

  • RecyclerView using CardView

    RecyclerView using CardView

    This article shows you how to create recyclerview using cardview and to hide toolbar on scroll down of view. Android…

  • TabLayout Using ViewPager

    TabLayout Using ViewPager

    This article shows you how to create tab layout using fragments and viewpager. Tablayout Tab Layout provides a…

    1 条评论
  • Twitter Integration

    Twitter Integration

    Main Objective of this blog post is to explain how to integrate twitter in an Android Studio . 1)First make a account…

  • LinkedIn Integration

    LinkedIn Integration

    Main Objective of this blog post is to explain how to LinkedIn in an Android Studio . 1)CREATE DEVELOPER ACCOUNT First…

  • FaceBook Integration

    FaceBook Integration

    Main Objective of this blog post is to explain how to Integrate Facebook in an Android Studio for SDK 4.0.

社区洞察

其他会员也浏览了