Yes!🤔 This question might confuse every beginner whenever they are thinking of to starting a new journey here.
So, if you’re one of those enthusiasts here's my article to help you getting started with android app development.
Choose a Platform
Mobile development is a broad field and therefore this means there are multiple ways to develop an application i.e this question has more than one answers. Basically the whole mobile development community works on two fronts, one is Native development
and Cross-Platform development
Android development -> using Kotlin and Java
IOS development -> using Objective C and Swift
Cross-Platform -> using Flutter,Ionic,Xamarin,React-Native,etc
First two points is an example for Native and the Third one for Hybrid
By Native Development it means that is built for one specific platform. Hence written in languages compatible with the platform For instance, native Android app run on Android OS only Whereas native iOS apps run on iOS only.
With Cross-platform Development one's can write code once and run on different platforms. Hence specialized tools are taken into service, can run on both iOS and Android platforms.
For someone new to mobile development, its better to learn native first then move to cross-platform technologies( if you want to ),
As of now better hybrid technologies are React-Native and Flutter and to my understanding that to be good in these we need a pretty strong understanding on native mobile development.
So, keep this Native vs Cross-Platform for some others day topic
However this blog is focused in Native way of Android development
Learn a LANGUAGE
For the languages, you can develop android apps either by using Kotlin or Java, Hence another confusing part for beginners.
You need to learn basic of any programming language before getting started with android such as OOPS and other such underlying concepts
1.JAVA
- Java was the first official programming language that is used to develop android apps.
- The support community and user base is more in Java its older than Kotlin.
- Android is the framework written in Java, so to code android android application you need to learn java and make yourself familiar with the syntax
2.KOTLIN
- Launched by JetBrains, who created IntelliJ IDE and it too runs on JVM
- Google in May 2017 announced Kotlin as the official language of Android App Development
- Kotlin made android app development much easy as the length of the code had decreased than Java , and other such features
- For a android developer Kotlin should be the language of choice nowadays
As time is changing the companies are shifting to Kotlin. Hence its most preferred since it offers a lot as compared to Java. Google also offers a lot of support to Kotlin, like many new Jetpack APIs and features will be offered first in Kotlin.
BUT for beginners in android with no experience with any line of codes or any other programming language first learn Android development in
Java
, then switch toKotlin
.
3.XML(Extensible Markup Language)
- XML is important used to design
UI
/UX
of an app its, presentation, layouts,etc - Since its markup language its work is to describes data and introducing elements like sets the layout of things like
buttons
andimages
, and defines thefont
,color
, and anytext
.
To recap, XML describes the views in layout, and Java/Kotlin tells them how to behave.
Its not needed to learn in depth beforehand you can learn along the way.
ANDROID SDK
- Android SDK stands for Android Software Development Kit which is developed by Google for Android Platform.
- Android SDK is a collection of libraries and Software Development tools helps to create android Apps easily.
- Its includes necessary utilities to help Android developers calling different APIs developed by Google both for controlling the device's functions and for integrating services
- Component of the Android SDK such as
Gradle
,emulator
,build tool
,platform tool
,etc.
Using an IDE Android Studio
There are many IDE available for development,but
It’s unquestionably the best IDE (Integrated Development Environment) for Android
Android Studio is a must have for both the beginner and experienced Android developer.
- Built on top of IntelliJ IDE,developed by Google for android application development.
- Google on 16th May 2013 announced as a official IDE for Android app development.
- Its comes with great out-of-the-box support for many of the most common Android SDKs.
- It has advanced tools like
memory monitors
,CPU monitors
,Code debuggers
,Code completion
,etc
helping developers make sure their code will maintain high performance on a mobile device.
Start with android
After just understanding the basics of the above listed ,it is now time to get your hand dirty. Hence just install Android Studio and start developing an app, As Practice together along with theory is one of the best ways of learning.
One of the important skill as an android developer is of reading and searching for answer ,For development Android provides the most important and incredible documentation:-
Android Documentation
You won’t understand and remember everything for the first time, ones has to browse this sites millions time and each time you will become one step better version from your previous
Here's the link of bunch of resources you can go through
1.Android basics in Kotlin-Free course by Google , you'll learn the basics of building Android apps with the Kotlin.
2.Developing Android Apps with Kotlin - Its an Udacity course by
Google.
3.Android Basics: User Interface -Learn the basics of Android and Java programming this courses doesn't require any prior knowledge in coding. One with no experience with any lines of code can also start here
4.Android codelabs - Its practical codelabs course by Google,finds a lot of helpful examples.
SOMETHING MORE
NOW ,this section is once you have started Android development and getting familiar, too with some Techincal terms
List of some important terms which you will find along the way -
1.Understand Material Designs
- Google has released a set of forward-thinking interface guidelines and standards called Material Design, to help build consistent and high quality app UI and give aesthetic look .
- These standards include tips for how to layer various elements on the screen and use specific styles and highlights the best practices for we can use
- Try to feel it. Be the material. Think like material. Behave like material. You shouldn’t miss this point while getting started with Android.
2.Gradle build
- Gradle is another build system that takes the best features from other build systems and combines them into one.
- “Build.gradle” are scripts where one can automate the tasks.
- For example, the simple task to copy some files from one directory to another can be performed by Gradle build script before the actual build process happens.
- Every Android project needs a gradle for generating an apk from the .java and .xml files in the project.
3.Learn Version Control
- There are multiple Version Control Systems available but Git is the most common one these days.
- These are tools that enables you to keep your code and also track your progress.
- Resource for learning Version Control with Git
- Showcasing your project you can learn and build the portfolio on github
5. AND there is many more
- like for Database connectivity Firebase is there
- you’ll likely want to interact with many other services through APIs Jetpack libraries are there.
This list don't ends here ,
When one picks up a career in tech they commit themselves to lifelong learning, and one thing for sure you will love it , as these technologies there only to help you and make your app developing process easier.
Now here providing the flowchart-
Remember to not be exhausted by the list, just learn the basics and start working on some project, rest of the learnings will come along the way. Good luck!
- Reference -
- Essential Skill
- Compelete roadmap , here you will find resources link of other important part in android
Personal Tips -If you want to start then, one of the best habits is that start reading articles regarding the application development.
Now we came to an end of the article
I hope you found this article valuable. If yes do let me know in the comments 😊
Top comments (20)
it's a incredible roap map, please put more links for understand gradle. I need understand gradle, it's hard for me
Wow. Looking at the roadmap, it seems that android app development is far more simpler compared to web development. The roadmap image that you shared above is from here: roadmap.sh/android.
Compare it with frontend roadmap alone and you'll see that web development is very tough! Of course, android development will have its own eco-system and complexities.
Who knows, maybe I'll start doing android development in the future, but let's see. Thanks for writing the post.
Yeah frontend roadmap seems quiet overwhelming but to be sure, I felt the same way when I started android , then after understanding it to some extent , I can say every field has there own complexities and there own advantages ,but half of the complexities can be made simpler just by understanding it in correct order.
Purpose of my blog is fulfilled as when you said its simpler ,Thank you 😊.
And yeah definitely you should tryout android , its far more interesting, as of for me,
would love to see you joining the Android community .
Great article! It's really helpful for those who want to get started with Android App Development. I think the best way to start is to learn the fundamentals of Java, so you can understand the basics of coding and app development. Once you have a basic understanding, you can then learn the Android development tools and APIs to create your own apps. Once you have a good understanding of app development, you may want to consider hiring an Android app developer to help you develop more complex apps.
Awesome man. It was my first I came across when I thought to know the procedure. Thanks for the roadmap
Glad you find this useful!
Good explaining 😊😊
Thank you very much
Very detailed and well written.
glad you like it.
Awesome 👍
Thank you 😊
Your article helped me a lot. Thanks!
Glad you like it .
Wow! Just when I was wondering where to go after learning some Kotlin! Thankyou so much for this guide :)
You're Welcome ,and glad that you considered it
Awesome Guide
Thanks