Android Developer
Step by step guide to becoming an Android developer in 2021
The intent of this guide is to give you an idea about the Android development landscape and to help guide your learning if you are confused. Before we start, please note that the roadmap is opinionated, and you might have different opinions than those of the author. Having said that, we would love to hear your opinions and incorporate them in the roadmap if suitable.
There are multiple ways to develop applications for the android; you can go down the path of hybrid application development where flutter, react-native, or NativeScript are the most common contenders. Flutter uses Dart, whereas React Native and Native Script rely on JavaScript. Answering the question of hybrid vs native is out of the scope of this roadmap. This roadmap is focused on the native Android apps development but if you are interested in learning any hybrid framework, my personal preference is react-native and I would recommend you to checkout the Frontend Developer Roadmap.
Here is the full version of the roadmap in a single image and after that we have the broken down version with the resources and links to learn more about each of the boxes.
Broken Down Version
Below is the broken down version of the roadmap with links and resources to learn more about each of the items listed in the complete roadmap above.
Pick a Language
For the languages, you can develop android apps either by using Kotlin or Java.
Although, you can use both Kotlin and Java to develop native android apps, Google announced in 2019 to make Kotlin the preferred way of developing android applications. If you were to start learning android development today, Kotlin should be your language of choice.
Install the Android Studio and learn the basics of Kotlin to get started.
We have also listed down some free resources which you can use for the items listed in the image above. If you have some better ones, please do suggest. Also, you don’t need to go through all of them, just go through them and pick what you like.
Version Control Systems
Version control systems record your changes to the codebase and allow you to recall specific versions later. There are multiple Version Control Systems available but Git is the most common one these days.
Here are some of the resources to get you started. Feel free to google and find something else that you find easier.
Building an Application
Here is the list of items that you are going to need when developing Android applications. Please note that, this is an exhaustive list, and you don’t need to know it all from the get-go. Get an idea of the items listed, and just start building some apps and keep the items listed in the back of your mind and have a deep dive when using them.
To learn more about the items listed in the image above, here are the links to the relevant docs
I would highly recommend watching this free course from google on Developing Android Apps with Kotlin. Also, here are some of the resources to learn more about the topics listed above.
That wraps it up for the android developer roadmap. Again, 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!
For any suggestions, improvements and feedback, feel free to submit an issue or reach out to me on twitter @kamranahmedse.
Open Source
The project is OpenSource, 7th most starred project on GitHub and is visited by hundreds of thousands of developers every month.
A considerable amount of my time is spent doing unpaid community work on things that I hope will help humanity in some way. Your sponsorship helps me continue to produce more open-source and free educational material consumed by hundreds of thousands of developers every month.
Stay Informed
Subscribe yourself to get updates, new guides, videos and roadmaps in your inbox.
Free subscription for updates
Support the project by paying as little as 5$ per month
Источник
What does it take to become an Android developer?
So naturally, here is our take on learning Android development as well!
When you are first starting to learn to code Android, the amount of things you have to learn may seem overwhelming. What language should you use? Java or Kotlin? Or should I go non-native? If so, should I use React Native, Flutter, or Xamarin? And on and on.
But try not to get bogged down in all the options. As the saying goes, the journey of a thousand miles, begins with a single step. And coding is definitely a journey.
While the amount of things you need to learn may seem overwhelming, there is one simple discipline that is absolutely essential when learning Android development:
I know that may seem pithy and just like a bit of “inspiration”, but consistency is key when learning something like a new programming language or technology. Dedicate an hour or more each day to learning, writing code, and building things. This is what makes the difference between who succeeds and who fails.
Like Darren Hardy says in his book The Compound Effect: “You will never change your life until you change something you do daily. The secret of your success is found in your daily routine.”
p.s. I highly recommend this book.
When learning, you might find yourself overwhelmed by all you need to learn and start to compare yourself to others… Maybe a YouTube developer you follow, maybe a friend you know, or maybe you just beat yourself up because you don’t feel smart enough. That is a huge lie and is preventing you from growing! “Imposter Syndrome” is what it’s called — where you attack yourself and feel as if you’re an imposter and that if someone really found out what you didn’t know they wouldn’t take you seriously as a developer.
But, here’s a little secret. I guarantee you even the people you think know everything, are googling stuff all the time just like you are. I know that I am!
One thing that really helped me when I was learning to code, is to recognize the growth you have made. When you are able to solve a tough problem, successfully debug something, or help someone else solve a problem, stop and realize how far you have come!
A lot of people obsess over “should I learn X?” or “should I learn Y?” when in reality, the overarching principles of software design and programming can be learned in many ways — Android development is just one way to learn key principles. So, if you’re worried about mobile apps becoming obsolete, you can rest easy knowing that you have a solid foundation in programming in general and can easily shift that to another technology. Have the growth mindset that you can apply general programming skills to other technologies.
I like to tell people that programming mobile apps is a more than just knowing how to code. In fact, I think it’s only about a third. The other two parts is knowing how to use the IDE (integrated development environment, or in other words the application used to make the Android app) and then know how to use the Android APIs (application programming interface).
So, let’s break those down:
1. Learn To Code:
If you are just starting to learn Android development, there are two main options right now. Java and Kotlin. Java is the longer established language; at over 20 years old there are tons of documentation and learning resources out there. Kotlin is the new kid on the block. It was announced as an officially supported language in the 2017 Google I/O conference and has since exploded in popularity. According to the 2018 StackOverflow survey, it was the second most loved language. Here at Devslopes we are all in on Kotlin and I highly recommend it to people starting out. It is much cleaner and easier to read than Java which makes it easier for people to learn.
So where do you start with your programming language of choice?
- Basics of Programming: Learn the basics like variables, constants, numbers, booleans & conditional logic, arrays, hash maps, loops, functions, classes.
- Object-Oriented Programming: While there are other paradigms used in Android development, OOP (Object-Oriented Programming) is the most common. It’s been tried and tested over many years and is used with literally tons of other programming languages/technologies. You should also learn (and be able to clearly articulate) things like polymorphism & inheritance.
2. Know your IDE:
If you are making Android apps, then the best choice is Android Studio. This is the official IDE from Google for making Android apps. This is where you will be writing your code, creating your user interfaces, testing on the emulator, debugging, and much more. It is a large program with tons of features, so you will need to spend some time familiarizing yourself with Android Studio.
3. Learn Android APIs:
Once you know how the Kotlin/Java language works, you’ll need to learn how to marry that with the Android technologies that make apps possible. Here are some of the things I think are most essential for an Android developer to know:
- Understanding the Activity lifecycle.
- Understanding how to use Fragments and their lifecycle.
- Intents
- Building to Devices
- Uploading an App to the Google Play store
- Understanding of Model-View-Controller & OOP
- Debugging Apps in Android Studio
- RecyclerViews
- How to create user interfaces using the layout editor.
- Persisting data
- Parsing JSON into usable data in apps
- Interacting with RESTful APIs
- Git or another method of version control
- Understanding of DRY Principle
- Here is what we teach in our Android course
4. Join a Community:
Don’t get me wrong — learning Android development is hard. Learning by yourself is way harder. Surround yourself with both other learners who are in a similar circumstance as you and those who are above you in experience that are willing to mentor and help you. That’s something that we’ve aimed to build at Devslopes — a community where you can learn to code, build amazing apps, and not feel stupid asking questions. At some places online cough cough StackOverflow asking a simple question is equatable to a war crime. We wanted to build a community of learners where you can ask questions and get the help you need. You might even possibly make some friends you can collaborate on projects with.
If you’ve read this all the way, thank you. And if you’d like a guided learning path for Android development and access to an amazing community, check out Devslopes. We look forward to guiding you on your Android journey.
Источник
Best Way to Become Android Developer – A Complete Roadmap
Android is an open-source operating system, based on the Linux kernel and used in mobile devices like smartphones, tablets, etc. Further, it was developed for smartwatches and Android TV. Each of them has a specialized interface. Android has been one of the best-selling OS for smartphones. Android OS was developed by Android Inc. which Google bought in 2005. Various applications like games, music player, camera, etc. are built for these smartphones for running on Android. Google Play Store features quite 3.3 million apps. Today, Android remains dominant on a global scale. Approximately 75% of the world population prefers using Android as against 15% of iOS. It is an operating system that has a huge market for apps.
It is known to everyone that how popular is Android nowadays. Now the questions arise are, Why Android(Decide the Goal First?), how to start? Where to start? What topics one should cover? etc, etc. Do you need to learn all the concepts from a book or you should go with some online tutorials or you should learn Android by doing some projects on it? So in this article, we are going to discuss all these things in detail.
Why Android? (Decide the Goal First?)
So before jumping into the complete Roadmap of Android one should have a clear goal in his/her mind that why he/she wants to learn Android? Is it for your college academic projects? or is it for your long-term career? or do you want to build your apps to start your business? So first make a clear goal. Why do you want to learn Android? For example, if you want to learn Android for your college Academic projects then it’s enough to just learn the beginner things in Android. Similarly, if you want to build your long term career then you should learn the professional or advanced things also. So it’s on your hand and it’s your decision why you want to learn Android.
How to Learn Android?
In Android, programming is done in two languages JAVA or Kotlin and XML(Extension Markup Language). The XML file deals with the design, presentation, layouts, blueprint, etc (as a front-end) while the JAVA or KOTLIN deals with working of buttons, variables, storing, etc (as a back-end). And the biggest confusion for an Android beginner is which language to choose between Java and Kotlin? So let me try to overcome the confusion first.
Java or Kotlin?
Java is the official language for Android App Development and consequently, it is the most used language as well. Many of the apps in the Play Store are built with Java and it is also the most supported language by Google.
Kotlin is a cross-platform programming language that may be used as an alternative to Java for Android App Development. It has also been introduced as a secondary “official” Java language in 2017. The only sizable difference is that Kotlin removes the superfluous features of Java such as null pointer exceptions. It also removes the necessity of ending every line with a semicolon. In short, Kotlin is much simpler for beginners to try as compared to Java and it can also be used as an “entry point” for Android App Development.
So my recommendation for a beginner is to go with Java first, then jump to Kotlin. Why Kotlin? Because Google has already declared Kotlin as the first-class language. And then Why Java? So in order to get the most out of Kotlin, we must have a knowledge of Java. So start with the Java basics then the Kotlin basics then go for Android Studio.
Learning Resources
There are plenty of resources and videos available online and it’s confusing for developers where to start learning all the concepts. Initially, as a beginner, if you get overwhelmed with so many concepts then don’t be afraid and stop learning. Have patience, explore, and stay committed to it.
The best way to learn Android is by developing some baby projects to some advanced projects.
A Roadmap to Learn
Start with the Overview of Android. Read some android related blogs and also research some Android-related things. For example read blogs on Introduction to Android Development, History of Android, Different Versions of Android, and also topics like Why Kotlin will replace Java for Android App Development, etc. etc. and make a complete mind makeup to start your journey on Android. Make yourself self-motivated to learn Android and build some awesome projects on Android. Do it regularly and also start learning one by one new concept on Android. It will be very better to join some workshops or conferences on Android before you start your journey. Make your goal clear and move on toward your goal.
1) Programming
One may consider this step as a prerequisite. Learn these programming languages before you start learning Android.
- Java Programming Language
- Kotlin Programming Language
- Sound Knowledge of XML (Extensible Markup Language)
2) Android Studio
It’s better to know your tools before you are going to use it. 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.
- File Structure:
- AndroidManifest.xml file
- Java file
- Drawable file
- Layout file
- mipmap file
- colors.xml file
- strings.xml file
- styles.xml file
- build.gradle(Module: app) file
- Android Studio Overview:
- Create a new project
- Reopen, close, save the project
- Create a new activity, classes, drawable resource files
- Run the app on AVD of Emulator or in a real device etc.
3) Android Components
There are some necessary building blocks that an Android application consists of. These loosely coupled components are bound by the application manifest file which contains a description of each component and how they interact.
- Activity:
- Activity life cycle
- Handle Activity State Changes
- Understand Tasks and Back Stack
- Processes and Application Lifecycle
- Services:
- Types of Android Services
- The Life Cycle of Android Services
- Content Provider:
- Content URI
- Operations in Content Provider
- Working of the Content Provider
- Creating a Content Provider
- Broadcast Receiver:
- Implicit Broadcast Exceptions
4) Simple UI Design
After you got an idea about the different components of Android then start exploring some simple UI design which is given below.
- Explore different layouts:
- Frame
- Linear
- Relative
- Constraint
- View Elements:
- TextView
- EditText
- Buttons
- ImageView
- Intent:
- Implicit
- Explicit
- Intent Filter
5) Complex UI Design
Once you have a command on simple UI design then solely move to the complex UI design part such as:
- ListView
- RecycleVIew
- Fragments
- Dialogs
- Toast
- Bottom Sheets
- Navigation Drawer
- Tabs
- Material Design
- Some inserting Animations
6) Storage
In Android, there are three types of the storage system:
- Shared Preferences
- File System
- Database
- RoomDB
7) Build
- Gradle
- Debug/ Release Configuration
8) Threading
- Threads
- Looper
9) Debugging
One of the most important skills of a developer is debugging skills. So the developer must learn these things:
- Exceptions
- Error Handling
- Logging
- Memory Profiling
10) Memory Leaks
11) Third-Party Libraries
- Image Loading Libraries
- Glide
- Picasso
- Fresco
- COIL
- Dependency Injection
- Dragger
- Networking
- Retrofit
- Multithreading
- Coroutines
- Rxjava
12) Android Jetpack
On its official site, it says Android Jetpack is a set of libraries, tools, and architectural guidance to help make it quick and easy to build great Android apps. It provides common infrastructure code so you can focus on what makes your app unique.
- AppCompat library
- Architecture components,
- Animation and transitions
- Android Ktx
- Navigation
- Paging
- Slices
- WorkManager
13) Android Architecture
The three famous architecture in the Android world are:
- MVVM (Model–View–ViewModel)
- MVI (Model-View-Intent)
- MVP (Model View Presenter)
14) Firebase
- FCM (Firebase Cloud Messaging)
- Analytics
- Remote Config
- App Indexing
15) Unit Testing
- Local Unit Testing
- Instrumentation Testing
16) Security
- Encrypt / Decrypt
- Proguard
17) App Release
- Signed APK
- Play Store
18) Keep Practicing and Read Some Android Tips
“Practice makes a man perfect” which tells the importance of continuous practice in any subject to learn anything. So keep practicing and read some Android tips such as Tips to Improve Your Android Development Skills, Tips to Get Your Android App Featured on Google Play Store, etc. Below is a complete diagrammatical representation of the Android Roadmap.
Источник