canopas/Android-developer-roadmap
Android developer roadmap 2022 is a path to start your journey with android development.
Android Developer Roadmap 2022
Android Developer Roadmap 2022 is learning paths to understanding Android development.
How to Learn Android?
In Android, programming is done in two languages JAVA or Kotlin and Jetpack Compose(Declarative UI) or 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. Kotlin has also been introduced as a “official” Java language in 2017. 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.
Table of contents
Let's start with basic learning
Sprint 1
Java basics
- Introduction to Java Programming
- Object Oriented Programming (OOPs) Concept in Java
- Java difference between primitive type and class types
Android basics
- 7 Key Android Concepts
- Android best practices
- Introduction to Activities
- Understand The Activity Lifecycle
- Understand The Fragments
Practicle 1.1
- Button click counter application
- Write an application which counts the number of button clicks and shows the click count on the app screen.
Version control system
Practicle 1.2
- Create repository of practicle 1.1 on Gitlab
References
- Introduction to version control: What Is Version Control?
- How to use git
Delightful user experience
Practicle 1.3
Create the scorekeeper application.
Refrences
- User Interface
- Basic knowledge of
Code Style
A quick look on Java and Android code style
Json
- Introduction of Json
- What is JSON and why would I use it?
- Json vs XML
Android Permission
Practicle 1.4
- Write an application to request read and write storage permission on button click and Show result on the screen.
References
User interaction
Practicle 1.5
- Write an application that has two edit texts for user name and user phone number, button and recycler view, shows user inputs in recycler view on button click.
References
- Android From Scratch: Understanding Views And View Groups
- Build a Responsive UI with ConstraintLayout
- Recyclerview
- Recyclerview component
- Recyclerview Pro Tip
Sprint 2
Kotin for android development
Kotlin is a great fit for developing Android applications, bringing all of the advantages of a modern language to the Android platform.
- Java vs kotlin
- Kotlin basic
- Setup kotlin in android studio
- Android App Development Masterclass using Kotlin
Working in background
Practicle 2.1
- Write an application that lets the user trigger, update and cancel a notification using three buttons.
Practicle 2.2
- Create an app that uses a broadcast receiver to receive incoming SMS messages. The app should display a notification when a message with a specific keyword is received.
Practicle 2.3
- Create a music player application. Use android Service to play music in background.
References
- Guide to background processing
- Broadcasts
- Services
Saving user data
Practicle 2.4
- Imaplment Contact diary applicatio. User should be able to add, edit, delete, and search for contacts. Users can set reminders for the birthdays of their contacts and receive notifications.
References
- Introduction of database:Udemy section 10 : lecture 177 - 178
- Data and file storage overview
- Shared preferences
Save data in local database
- Introduction of database:Udemy section 10 : lecture 189 to 191
- Save data using SQLite
- Storing data with Room
Advance Learning
Sprint 3
Now it’s time to dive into the real development with 50% work and 50% training daily
Jetpack compose
Practical 3.1
- Create a UI like this
- Create a Quiz Appication. It should displays a series of multiple-choice questions. Users can select an answer and receive instant feedback on whether they were correct or not.
References
Android Networking
Practicle 3.2
- Retrieve and display a simple users list from web API to Android recyclerview using the retrofit library. Display Name, email, and city. Also add functionality to Delete the item.
- GET Api Url: http://jsonplaceholder.typicode.com/users
References
Sprint 4
App Architecture
- Guide to app architecture
- App architecture recommendation
- Android Application Architecture
- Android MVP Architecture
- Android Architecture Patterns: Model-View-ViewModel
- Android MVVM Design Pattern
ViewModel and LiveData
Practicle 4.1
- Use liveData and viewModel in practical 3.2
References
Sprint 5
RxJava and RxAndroid
Practical 5.1
- Create an android application to show a list of movies in recycler view using rxjava and retrofit using MVP architecture.
- GET API Url : https://top-250-movies-api.herokuapp.com/api/v1/movies
- Self exercise: Write an open-source project to cover operators of rxjava such as map, flat map, combine, zip etc...
References
- Rxjava and RxAndroid
- Part 1: The Basics
- Part 2: Operator, Operator
- Part 3: Reactive with Benefits
- Part 4: Reactive Android
- Example: Rxjava with retrofit
Hilt
Practical 5.2
- Retrieve and display a simple users list from web API to Android recycler view using retrofit. Display name, email and city in recyclerView. Store users in database. GET Api Url : http://jsonplaceholder.typicode.com/users
- On user item click display all albums of selected user on next screen. GET Api Url : https://jsonplaceholder.typicode.com/albums?userId=1
- On the Album item click show all photos of the selected album on the next screen.GET Api Url : http://jsonplaceholder.typicode.com/photos?albumId=2
References
Sprint 6
Kotlin coroutines
- Coroutines Overview
- Thread vs. Coroutines
- Kotlin coroutines on Android
- Background processing using coroutines- Udemy section 12: lecture 276
Kotlin Flow
Practicle 6.1
- Make a calculator application. Save calculation history in the database. Users can view history and clear history.
Practicle 6.2
- Implament product application. Retrive product list from api, also show full detail on item click
- API https://fakestoreapi.com/products
References
Practicle 6.3
- Write Unit test of praticle 6.2
References
- Fundamentals of testing Android apps
- Build local unit tests
- Introduction to unit testing ViewModel with Kotlin Coroutine & Flow
