https://github.com/mzelzoghbi/android-developer-roadmap
Android Developer Roadmap For All levels
https://github.com/mzelzoghbi/android-developer-roadmap
android android-development android-roadmap
Last synced: about 1 year ago
JSON representation
Android Developer Roadmap For All levels
- Host: GitHub
- URL: https://github.com/mzelzoghbi/android-developer-roadmap
- Owner: mzelzoghbi
- Created: 2022-12-12T21:47:37.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-03-19T18:31:33.000Z (about 3 years ago)
- Last Synced: 2025-03-30T23:51:10.759Z (about 1 year ago)
- Topics: android, android-development, android-roadmap
- Homepage:
- Size: 13.6 MB
- Stars: 164
- Watchers: 4
- Forks: 15
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[](https://github.com/mzelzoghbi/android-developer-roadmap)





Android developer roadmap
Welcome to Android Developer Roadmap 2023.01, The main purpose of this roadmap is to help any one who wants to kick off his android career or to level up his experience and knowledge.
This contains all topics to help you find what you are looking for quickly
### ποΈ Disclaimer
This is from the Author's diligence and experience, so i may be biased to what i like π
### β¨ Contribution
This repo is open to contributions if you found a blog, tutorial that looks useful or even if you are a blogger or instructor feel free to include your material directly by submitting a pull request.
If you have any questions, suggestions let's have it over [Issues](https://github.com/mzelzoghbi/android-developer-roadmap/issues)
Loved the roadmap? Please consider donating πΈ to help it improve!
## πΊοΈ Roadmap
## β How to use it
Up to down, use color coding to know the topic's difficulty of the topic, green are easy/basic, yellow are intermediate and red are for advanced/hard topics. I recommend doing the projects #1 and #2 while learning, personally i feel practicing while learning makes more sense and give you more oppurtionity in understanding how really things work.
Below, you'll find categories for every topic and many helpful links
## New to software engineering?!
If you are new to software engineers, don't have enough experience. I'd recommend kicking off your learning path by checking [CS50 Course from Harvard](https://www.youtube.com/watch?v=IDDmrzzB14M&t=688s&ab_channel=CS50) you'll learn the entry point to Computer Science world
## Table of contents
- [πͺ΅ Fundmentals](#πͺ΅-fundmentals)
* [Data Structures](#data-structures)
* [OOP](#oop)
* [Gradle build system](#gradle-build-system)
- [π― Languages](#languages)
* [
Kotlin](#kotlin)
* [
Java](#java)
* [
C++](#c)
- [βοΈ Tools](#---tools)
* [
Terminal](#terminal)
* [
Android Studio](#android-studio)
* [
Version Control (Git)](#version-control-git)
- [ποΈ Project Structure](#project-structure)
- [
Android](#android)
* [Platform Architecture](#platform-architecture)
* [Services](#services)
* [Entry point / Navigation](#entry-point--navigation)
* [Notifications](#notifications)
* [Content Providers](#content-providers)
* [Lifecycle](#lifecycle)
* [Broadcast Receivers](#broadcast-receivers)
* [Intent filters](#intent-filters)
* [Sensors](#sensors)
* [Permissions](#permissions)
- [π¨ UI](#ui)
* [Design guidelines](#design-guidelines)
* [Activities](#activities)
* [Fragments](#fragments)
* [UI Components](#ui-components)
* [Compose](#compose)
* [Custom Views](#custom-views)
- [π‘ Networking](#networking)
- [πΎ Storage/Caching](#storagecaching)
- [βΎοΈ Threading](#threading)
- [π§© Architecture Patterns](#architecture-patterns)
- [π Performance](#performance)
- [π Security](#security)
- [π€ CI/CD](#cicd)
- [π Release](#release)
+ [Libraries](#libraries)
+ [Products](#products)
- [ποΈ Podcasts](#podcasts)
- [π° Blogs & Newsletters](#blogs--newsletters)
- [π§βπ» Interviews](#interviews)
- [π§ Problem solving](#problem-solving)
- [π Book shelf](#book-shelf)
# πͺ΅ Fundmentals
## Data Structures
* [Intro to Data Structures and Algorithms by **Udacity**](https://www.udacity.com/course/data-structures-and-algorithms-in-python--ud513)
* [Data Structures by **geeksforgeeks**](https://www.geeksforgeeks.org/data-structures/)
## OOP
* [OOP **W3Schools**](https://www.w3schools.com/cpp/cpp_oop.asp)
* [OOP **javatpoint**](https://www.javatpoint.com/java-oops-concepts)
* [Object-oriented Programming in 7 minutes by **Mosh**](https://www.youtube.com/watch?v=pTB0EiLXUC8)
## Gradle build system
* [Gradle for beginners](https://www.youtube.com/watch?v=o0M4f5djJTQ)
# π― Languages
## Kotlin
* [Official kotlin website](https://kotlinlang.org/docs/getting-started.html)
* [Youtube Kotlin course under 3 Hours](https://www.youtube.com/watch?v=F9UC9DY-vIU&ab_channel=freeCodeCamp.org) by **[@freecodecamp](https://github.com/freecodecamp)**
## Java
* [Getting started with W3Schools](https://www.w3schools.com/java/java_getstarted.asp)
* [Youtube Java course](https://www.youtube.com/watch?v=A74TOX803D0&ab_channel=freeCodeCamp.org) by [@freecodecamp](https://github.com/freecodecamp)
## C++
* [Add C & C++ to project By developers.android](https://developer.android.com/studio/projects/add-native-code)
# βοΈ Tools
## Terminal
* [Linux Command Line Tutorial For Beginners](https://www.youtube.com/watch?v=YHFzr-akOas&list=PLS1QulWo1RIb9WVQGJ_vh-RQusbZgO_As)
## Android Studio
* [Introduction to Android Studio](https://www.youtube.com/watch?v=NCoekcDxbrI)
* [Meet Android Studio](https://developer.android.com/studio/intro)
## Version Control (Git)
* [Learn Git and Github](https://www.youtube.com/watch?v=ACOiGZoqC8w&list=PLDoPjvoNmBAw4eOj58MZPakHjaO3frVMF)
* [Git Tutorial for Beginners: Learn Git in 1 Hour](https://www.youtube.com/watch?v=8JJ101D3knE)
* [Git and Github Crash course](https://www.youtube.com/watch?v=RGOj5yH7evk)
# Project Structure
* [Android project directory structure | manifests directory |resource directory | layout directory
](https://www.youtube.com/watch?v=B1fbOrlhXBE)
* [Projects overview](https://developer.android.com/studio/projects)
# Android
## Platform Architecture
* [Platform Architecture](https://developer.android.com/guide/platform)
* [Android Architecture Explained in Detail](https://www.youtube.com/watch?v=WvwQal6WYJ0)
## Services
* [Services Overview](https://developer.android.com/guide/components/services)
## Entry point / Navigation
* [Principles of navigation](https://developer.android.com/guide/navigation/navigation-principles)
## Notifications
* [Notifications Overview](https://developer.android.com/develop/ui/views/notifications)
## Content Providers
* [Content providers](https://developer.android.com/guide/topics/providers/content-providers?hl=en)
## Lifecycle
* [Handling Lifecycles with Lifecycle-Aware Components](https://developer.android.com/topic/libraries/architecture/lifecycle?hl=en)
## Broadcast Receivers
* [Broadcasts overview](https://developer.android.com/guide/components/broadcasts?hl=en)
## Intent filters
* [Intents and Intent Filters](https://developer.android.com/guide/components/intents-filters)
## Sensors
* [Sensors Overview](https://developer.android.com/guide/topics/sensors/sensors_overview)
## Permissions
* [Permissions](https://developer.android.com/guide/topics/permissions/overview)
# π¨ UI
## Design guidelines
* [Android Design Guide lines](https://developer.android.com/design)
## Activities
* [Introduction to activities](https://developer.android.com/guide/components/activities/intro-activities)
## Fragments
* [Fragments](https://developer.android.com/guide/fragments)
## UI Components
* [Build a Responsive UI with ConstraintLayout](https://developer.android.com/develop/ui/views/layout/constraint-layout)
## Compose
* [Get started with Compose](https://developer.android.com/jetpack/compose)
## Custom Views
* [Create a custom view](https://developer.android.com/develop/ui/views/layout/custom-views/create-view)
# Networking
* [Connect to the network](https://developer.android.com/training/basics/network-ops/connecting)
# Storage/Caching
* [App data and files](https://developer.android.com/guide/topics/data)
* [Save data in a local database using Room](https://developer.android.com/training/data-storage/room)
* [Save data using SQLite](https://developer.android.com/training/data-storage/sqlite)
# Threading
* [Looper](https://developer.android.com/reference/android/os/Looper)
* [Processes and threads overview](https://developer.android.com/guide/components/processes-and-threads)
* [Work Manager](https://developer.android.com/topic/libraries/architecture/workmanager)
* [Thread Pool Executor](https://developer.android.com/reference/java/util/concurrent/ThreadPoolExecutor)
* [Better performance through threading](https://developer.android.com/topic/performance/threads)
* [Kotlin Flows](https://developer.android.com/kotlin/flow)
* [Kotlin coroutines on Android](https://developer.android.com/kotlin/coroutines)
# Architecture Patterns
* [Guide to App Architecture](https://developer.android.com/topic/architecture)
* [Design Patterns](https://www.kodeco.com/18409174-common-design-patterns-and-app-architectures-for-android)
* [Dependency Injection in Android](https://developer.android.com/training/dependency-injection)
* [Reactive Programming for Android](https://medium.com/android-news/reactive-programming-for-android-d55bdbb438b4)
# Performance
* [Memory Profiler](https://developer.android.com/studio/profile/memory-profiler)
* [The Android Profiler](https://developer.android.com/studio/profile/android-profiler)
* [Benchmark your app](https://developer.android.com/topic/performance/benchmarking/benchmarking-overview)
# Security
* [Proguard](https://developer.android.com/studio/build/shrink-code)
* [Security Tips](https://developer.android.com/training/articles/security-tips)
* [App security best practices](https://developer.android.com/topic/security/best-practices)
* [Reverse Engineering](https://www.ragingrock.com/AndroidAppRE/)
# CI/CD
* [Building CI/CD for an Android Project](https://proandroiddev.com/building-a-ci-cd-pipeline-for-an-android-project-51c2291a428c)
# Release
* [Publish your app](https://developer.android.com/studio/publish)
### Libraries
* [Creating android library](https://developer.android.com/studio/projects/android-library)
* [Android Arsenal - place to find new libraries](https://android-arsenal.com/)
* [android-library topic on Github](https://github.com/topics/android-library)
* [Awesome Android repo](https://github.com/JStumpp/awesome-android)
## Products
### Application performance monitoring
* [Instabug](https://instabug.com)
* [Firebase Performance](https://firebase.google.com/docs/perf-mon/get-started-android)
* [Embrace](https://embrace.io/)
### Crash Reporting
* [Instabug](https://instabug.com)
* [Firebase Crashlytics](https://firebase.google.com/docs/crashlytics)
* [Sentry](https://sentry.io/)
* [Bugsnag](https://www.bugsnag.com/)
### Debugging
* [AppSpector](https://appspector.com/) remote app debugging
* [Charles](https://www.charlesproxy.com/) for local Network interception
* [Httptoolkit](https://httptoolkit.com/) for local Network interception
* [Stetho by Facebook](https://github.com/facebook/stetho) for local app debugging / inspection
# Podcasts
* [Android developer backstage](https://adbackstage.libsyn.com/)
* [Now in Android](https://nowinandroid.libsyn.com/)
* [Apps, Games & Insights](https://developer.android.com/podcasts/apps-games-insights)
# Blogs & Newsletters
* [Android Weekly](https://androidweekly.net/)
* [Pro Android Dev](https://proandroiddev.com/)
* [Slides about Android by @gabrielbmoro](https://github.com/gabrielbmoro/slides-about-android-development)
### Interviews
* [How to crack any Android Interview](https://zaplatform.com/how-to-crack-any-android-interview-3232569bf76f)
* [Android interview Questions /Topics 2022 - Crack any android interview.](https://www.youtube.com/watch?v=dC-PsgYzruE&ab_channel=CodeWithBalwinder)
### Problem solving
* https://leetcode.com/
## Inspired By
* [Roadmap.sh](https://roadmap.sh/android)
* [Android developer roadmap by @skydoves](https://github.com/skydoves/android-developer-roadmap)
* [Android Developer Roadmap](https://trello.com/templates/engineering/android-developer-roadmap-fsc44tYh)
## Book shelf
* [Head First Android](https://www.amazon.com/dp/1491974052?geniuslink=true)
* [Clean Code](https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882/ref=sr_1_1?crid=24X0B72NBZUZE&keywords=clean+code&qid=1675673566&s=books&sprefix=clean+cod%2Cstripbooks-intl-ship%2C296&sr=1-1)
* [Clean Architecture](https://www.amazon.com/Clean-Architecture-Craftsmans-Software-Structure/dp/0134494164/ref=sr_1_10?crid=24X0B72NBZUZE&keywords=clean+code&qid=1675673594&s=books&sprefix=clean+cod%2Cstripbooks-intl-ship%2C296&sr=1-10)
* [Head first desgin patterns](https://www.amazon.com/Head-First-Design-Patterns-Object-Oriented/dp/149207800X/ref=sr_1_1?crid=3PHKXS7V3P8MB&keywords=head+first+design+patterns&qid=1675673642&s=books&sprefix=head%2Cstripbooks-intl-ship%2C302&sr=1-1)
## Support
If you would like to support the repo, you can optionally buy be me a coffee. Thank you for all the wonderful support β€οΈ
[](https://www.paypal.me/mzelzoghbi/)
# π License
```MIT License
Copyright (c) 2023 mzelzoghbi
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```
