First let’s talk about the prerequisite to learn android.
You should have a laptop with Good configuration. It must have at least 8GB Ram, and 256 GB SSD. This helps you in developing android APPS without any hanging issue, As Android studio is very heavy software for developing Android Apps.
Choose A Language
You can choose Either Java or kotlin to start android development. Now To decide a language is not an easy task for a beginner. this thing confuses a lot of learners. So here I will help you in choosing the right language.
Let’s take some scenarios like :
- If you don’t know any language and want to learn android: In this case, you can go with Kotlin, no need to confuse anymore. As Google has declared the kotlin as an Official language for android development
- If you know the basics of Java: you can start Android development using Java and then after few months, you can move on to Kotlin. As you have knowledge of java, so it really helps you to understand the flow and concept of android without learning any other new language.
- If you want to do competitive programming as well as android development: so in that I would suggest you can go with java, As for competitive programming java is a good choice, and you can also start android development. so Java helps you on both sides (competitive programming + Android development)
Note* To start android development You should have knowledge of the OOPS concept, Collection framework, multithreading, Exception handling.
some Important topics in Kotlin that you must learn before start the Android development journey.
- var vs val
- Null safe
- Lambdas function
- Higher-Order function
- ENUM class
- Data class
- Keywords: let, apply, run, lateinit, lazy, with
- Extension function
- Function like: filter, map
- Sealed Classes
- Companion Object
Installation of Android
Now install the Android studio and understand the directory structure and folders usage and gradle.
you should learn the 4 components of android
- Activity (what is Activity, create activity, lifecycle of Activity)
- Broadcast Reciever
- Content Provider
Simple UI Elements
- Layouts: (Linear, Relative, Constraint, Frame layout)
- Widgets: (Button, TetxView, EditText, ProgressBar, ImageView) etc.
- Intents : (Implicit, Explicit and Intent filters)
Complex UI Elements
(RecylcerView, Navigation Drawer, bottom Navigation, Chip Navigation, ViewPage, Dialog, CardView, Toast, SnackBar, Spinner)
Animations: Motion Layout, Layout Animator etc