What is Android?
Android is an open source and Linux-based Operating System for mobile devices such as smartphones and tablet computers. Android was developed by the Open Handset Alliance**, led by Google, and other companies.
Android offers a unified approach to application development for mobile devices which means developers need only develop for Android, and their applications should be able to run on different devices powered by Android.
The first beta version of the Android Software Development Kit (SDK) was released by Google in 2007 where as the first commercial version, Android 1.0, was released in September 2008.
The source code for Android is available under free and open source software licenses. Google publishes most of the code under the Apache License version 2.0 and the rest, Linux kernel changes, under the GNU General Public License version 2.
Source : Tutorialpoint
**Open Handset Alliance is a consortium of 84 companies such as google, Samsung, AKM, Synaptics, KDDI, Garmin, Teleca, Ebay, Intel etc.It was established on 5th November, 2007, led by Google. It is committed to advance open standards, provide services and deploy handsets using the Android Platform.
Why chose to become android developer ?
You are your own boss when it comes learning, you can become android developer or ios developer, but when you will see this stats showing the dominance of android in the market, you will not think of anything else but android:
That huge gap between the Green Line(Android) and the Blue Line(iOS) speaks for itself, Windows is not even in the race. Check this image which will make things more easier to understand:
So, if you had any question like, Why become an android developer? These stats were enough to clear all the doubts, but I will give you few more reasons to become an android developer:
Source : Tutorialpoint
- It is open-source.
- Anyone can customize the Android Platform.
- There are a lot of mobile applications that can be chosen by the consumer.
- It provides many interesting features like weather details, opening screen, live RSS (Really Simple Syndication) feeds etc.
- It provides support for messaging services(SMS and MMS), web browser, storage (SQLite), connectivity (GSM, CDMA, Blue Tooth, Wi-Fi etc.), media, handset layout etc.
What are the Technical Skills required to become Android Developer?
You should of course be comfortable with the Java programming language. While you can develop Android apps using a number of different technologies, most positions are for native development using Java and Android Studio or Eclipse as your IDE.
What exactly does it mean to be comfortable with Java? You don’t need to know all the latest details of the latest version, but you should have a well-rounded knowledge of the basic syntax and programming structures. You should know things like variables, lists, loops, control structures and object-oriented concepts like class vs. static methods and inheritance. You should also be comfortable using documentation to learn how to use new parts of the Java SDK. A very big part of any position as a developer is continuous learning.
2. The Android SDK
Again, this goes without saying. But what areas of the SDK should you specifically know? The following list includes many basic Android concepts that you should be familiar with:
- A basic understanding of layouts and views
- Activities and their lifecycle
- User input
- Getting data from the web
- Storing data
- Collection views (like ListViews) and Adapters (default and custom)
- Action Bar
- Accommodating different screen sizes and densities
As you will be undoubtedly be expected try new things, you should also be comfortable using the Android documentation and resources like Treehouse to get started with a new part of the SDK. And this probably goes without saying, but you should be competent with using the debugger in your IDE to help troubleshoot bugs in your code.
3. Working with APIs
As mentioned above, getting data from the web is a pretty basic skill for app development since so many apps have a network-based component. This may not be required for all jobs, but many postings I’ve seen expect the developer to be able to work with their own API or some other 3rd party API. These will usually be JSON/REST APIs, though XML/SOAP does still pop up! I would recommend focusing on JSON/REST and only learning XML/SOAP if you need to. The basic concepts are still relatively similar; it’s just a different way of requesting and then parsing the data.
This particular skill may not be required, but whether you are working alone or with a team you will generally want to use some sort of version control system. You don’t have to be an expert at managing a bunch of merge conflicts, but you should understand the basics of creating and using a repository and committing and pushing changes.
5. Back-end Skills
Sometimes job posts will ask that the Android developers also contribute on the back-end of their system. I’ve had this experience myself. This may be harder to add to your skill set when you are just starting out as the back-end technologies vary so much (Rails, .NET, Django, NodeJS, etc.), but I wanted to list it as it comes up often enough to warrant discussion.
Don’t let this discourage you from Android development, though. You can either ignore these posts or use it as motivation to learn or brush up on your back-end skills. And remember, the basic concepts of programming translate well, so sometimes it’s just a matter of getting familiar with the architecture of a system and the syntax of the language. You don’t need to necessarily dive deep into these back-end technologies. Sometimes you just need to be comfortable modifying existing back-end APIs to work with changes to the app you are working on.
Source : Treehouse Blog
What Salary to expect being an Android Developer?
Being an Android Developer, you can get very handsome salary either by working in some organisation or by working as a freelancer. Platforms like freelancer.com and upwork.com are filled with jobs for android developers, what salary you can expect being in some organisation in different parts of the world are depicted below:
Salary of an android developer in India:
Salary of an android developer in US:
Salary of an android developer in UK:
Salary of an android developer in Australia:
Salary of an android developer in Canada:
What are the best Resources to learn Android Development?
Because of the popularity gained by Android in the past 11 years, you can find various resources to learn Android Development, some are goo, some are exceptional and some are not worth the time, so here I will mention all the best available online resources, books and courses to learn Android Development.
Best Online Courses to learn Android Development are:
All the courses mentioned below are awesome but the ones with are (awesome)².
- Android Basics Nanodegree (Udacity[Google]) (Nothing is better than getting taught by Google itself)
- Android Developer Nanodegree (For those who have basic knowledge, Udacity[Google])
- Tree House Android Development Track (Treehouse)
- Certified Android App Developer Training Course (Simplilearn)
- Become an Android Developer from Scratch (Udemy[Free])
- The Complete Android N Developer Course (Udemy)
- Learning Android App Development (Lynda)
- The Complete Android & Java Developer Course – Build 21 App (Udemy)
- Master Android N App Development With Java (Udemy)
- Android App Development Essential Training (Lynda)
Best Books to learn Android Development are:
Other Good Resources to laern, practice and stay updated with Android Development are:
- Android Developer Training (Google Official)
- Android Developer Guide (Google Official)
- Stay Updated with Android (Google Android Developer Platform)
- Android Weekly (Stay Updated)
- Follow Android Developer on Twitter
- Android Dev on Reddit
- Stackoverflow Android
- Github Android
- Intro to Programming in Java (Princeton)
- Mykong Android Tutorial
- Fun Programming
I want to make this blog a platform for the learners to find best resources and Online Courses available for particular technologies, So I request you all to please share any new resources you know of, which will be helpful for everyone, in the comment section below and I will add the same in the article.