🗺 Android Developer Roadmap 2022 suggests learning paths to understanding Android development.

Overview

Android Developer Roadmap 2022


License Build Status

English | 한국어

Android Developer Roadmap 2022 suggests learning paths to understanding Android development. You can read the roadmap following the line path in the middle of the map.

Each node indicates concepts of Android systems, Android SDK, and generally used libraries. It would be helpful to refer to the Android Developers Reference or GitHub for the specific terminologies.

In addition, this roadmap doesn't cover everything about Android development, and you don't need to learn everything from it. So we recommend only reading the sections that would be helpful to you.

Roadmap

Roadmap

Demo Application

This project includes a demo project which shows the roadmap image. You can download the latest APK on the Releases.

Articles

New articles for the Android Developer Roadmap are coming soon on the Stream Blog. If you have any interests, you can get notifications by joining watchers.

Contribution

This project doesn't cover everything, so if something is missing or should be fixed, anyone can contribute to this project by following the CONTRIBUTING guides.

Inspiration

This project is inspired by Android Developer Roadmap 2020. So thank you for the authors providing the roadmap ideas. Also, you can learn a lot of knowledge from the repository.

Find this project useful? ❤️

Support it by joining stargazers for this repository.

License

Copyright 2021 Stream.IO, Inc. All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Comments
  • Fix Crash for low end devices.

    Fix Crash for low end devices.

    Guidelines

    Used Coil instead of Glide to load the Image. Glide is causing java.lang.RuntimeException: Canvas: trying to draw too large.

    Types of changes

    What types of changes does your code introduce?

    • [x] Bugfix (non-breaking change which fixes an issue)
    • [ ] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
    opened by yogeshpaliyal 3
  • Feature request: More testing

    Feature request: More testing

    Hey, I would like to suggest adding few libraries related to testing.

    Regarding mocking, I think it's better to use Mockk instead of Mockito - better Kotlin support.

    Regarding assertions, there is also assertk. We can choose assertion tool based on our personal preferences.

    I think it's also important to mention Kaspresso for UI Testing. It's based on Espresso and UI Automator but has a lot better Kotlin support :)

    What do you think?

    opened by mateuszteteruk 2
  • Hi, I found typing mistake!!

    Hi, I found typing mistake!!

    I'm looking at your roadmap well. But In App Navigation Part, Fragments (Fragmetn Transcations) -> (Fragment Transactions), i think it is collect typing. Thanks for watch my issues👍 (P.S, I really really helpful for watch your project & opensources. So I always rooting for you. Thanks for your tect skills...??❤)

    opened by SSong-develop 2
  • Create README_JP.md

    Create README_JP.md

    Guidelines

    Added the Japanese language support for README files. Ref: https://github.com/skydoves/android-developer-roadmap/issues/40

    Types of changes

    What types of changes does your code introduce?

    • [ ] Bugfix (non-breaking change which fixes an issue)
    • [X] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

    Preparing a pull request for review

    Ensure your change is properly formatted by running:

    $ ./gradlew spotlessApply
    

    Please correct any failures before requesting a review.

    opened by masah517 0
  • minor improvement for ID translation

    minor improvement for ID translation

    Guidelines

    improve translate and fix spacing in ID translation

    Types of changes

    What types of changes does your code introduce?

    • [ ] Bugfix (non-breaking change which fixes an issue)
    • [x] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

    Preparing a pull request for review

    Ensure your change is properly formatted by running:

    $ ./gradlew spotlessApply
    

    Please correct any failures before requesting a review.

    opened by wiryadev 0
  • Add French translation of README.md

    Add French translation of README.md

    Guidelines

    Add French translation of README.md

    Types of changes

    What types of changes does your code introduce?

    • [ ] Bugfix (non-breaking change which fixes an issue)
    • [x] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

    Preparing a pull request for review

    Ensure your change is properly formatted by running:

    $ ./gradlew spotlessApply
    

    Please correct any failures before requesting a review.

    opened by yveskalume 0
  • Compose Animation node updated

    Compose Animation node updated

    Guidelines

    Describe the big picture of your changes here to communicate to the maintainers why we should accept this pull request. If it fixes a bug or resolves a feature request, be sure to link to that issue.

    Compose Animation node updated

    Screen Shot 2022-06-06 at 11 07 28 AM

    Types of changes

    What types of changes does your code introduce?

    • [ ] Bugfix (non-breaking change which fixes an issue)
    • [x] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

    Preparing a pull request for review

    Ensure your change is properly formatted by running:

    $ ./gradlew spotlessApply
    

    Please correct any failures before requesting a review.

    opened by pollux- 0
  • Add Indonesian translation of README.md

    Add Indonesian translation of README.md

    Guidelines

    Add Indonesian translation of README.mdand add missing README links in each language.

    Types of changes

    What types of changes does your code introduce?

    • [ ] Bugfix (non-breaking change which fixes an issue)
    • [x] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

    Preparing a pull request for review

    Ensure your change is properly formatted by running:

    $ ./gradlew spotlessApply
    

    Please correct any failures before requesting a review.

    opened by kharismarizqii 0
  • Update README_TR.md

    Update README_TR.md

    Guidelines

    Describe the big picture of your changes here to communicate to the maintainers why we should accept this pull request. If it fixes a bug or resolves a feature request, be sure to link to that issue.

    Types of changes

    What types of changes does your code introduce?

    • [ ] Bugfix (non-breaking change which fixes an issue)
    • [ ] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

    Preparing a pull request for review

    Ensure your change is properly formatted by running:

    $ ./gradlew spotlessApply
    

    Please correct any failures before requesting a review.

    opened by serkanalc 0
  • Add Turkish translation of README.md

    Add Turkish translation of README.md

    Guidelines

    Describe the big picture of your changes here to communicate to the maintainers why we should accept this pull request. If it fixes a bug or resolves a feature request, be sure to link to that issue.

    Types of changes

    What types of changes does your code introduce?

    • [ ] Bugfix (non-breaking change which fixes an issue)
    • [x] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

    Preparing a pull request for review

    Ensure your change is properly formatted by running:

    $ ./gradlew spotlessApply
    

    Please correct any failures before requesting a review.

    opened by serkanalc 0
  • Create README_TR.md

    Create README_TR.md

    Guidelines

    Describe the big picture of your changes here to communicate to the maintainers why we should accept this pull request. If it fixes a bug or resolves a feature request, be sure to link to that issue.

    Types of changes

    What types of changes does your code introduce?

    • [ ] Bugfix (non-breaking change which fixes an issue)
    • [x] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

    Preparing a pull request for review

    Ensure your change is properly formatted by running:

    $ ./gradlew spotlessApply
    

    Please correct any failures before requesting a review.

    opened by serkanalc 0
  • Add corresponding Ressources to each part and estimate how much time that takes to learn this

    Add corresponding Ressources to each part and estimate how much time that takes to learn this

    Add corresponding resources to each part and estimate how much time that takes to learn this from zero to hero.

    For instance to learn kotlin :

    • https://hyperskill.org/tracks/18
    • https://kotlinlang.org/docs/home.html
    • https://developer.android.com/kotlin
    • https://www.udacity.com/course/kotlin-bootcamp-for-programmers--ud9011
    opened by kasali 0
  • Create README_SWA.md

    Create README_SWA.md

    Added a Swahili Language Translation

    Guidelines

    The Idea behind adding the Swahili Language Translation is to be able to allow understanding of the android roadmap especially for the developers from Tanzania and several east African regions.

    Types of changes

    What types of changes does your code introduce?

    • [ ] Language (Swahili Translation)

    Preparing a pull request for review

    Ensure your change is properly formatted by running:

    $ ./gradlew spotlessApply
    

    Please correct any failures before requesting a review.

    opened by mkaomwakuni 0
  • [Suggestion] It would be great if we can add domain layer discussion

    [Suggestion] It would be great if we can add domain layer discussion

    Great initiative.

    Not sure if it is already included somewhere. I think It would be great if we can add domain layer discussion as well. In my opinion, it is useful when working in a mobile app which has more features and multiple use cases.

    opened by vsay01 0
  • Debugging and qa & app publishing nodes updated

    Debugging and qa & app publishing nodes updated

    Guidelines

    Describe the big picture of your changes here to communicate to the maintainers why we should accept this pull request. If it fixes a bug or resolves a feature request, be sure to link to that issue.

    Debugging node updated Screenshot 2022-08-11 at 03 35 43

    ===============================================================================

    QA & App publishing node updated Screenshot 2022-08-11 at 03 35 31

    Types of changes

    What types of changes does your code introduce?

    • [ ] Bugfix (non-breaking change which fixes an issue)
    • [X] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

    Preparing a pull request for review

    Ensure your change is properly formatted by running:

    $ ./gradlew spotlessApply
    

    Please correct any failures before requesting a review.

    opened by UrielTovar 1
  • Add Accessibility

    Add Accessibility

    Could be separate or in different categories

    Maybe part of Design Guides branch: https://material.io/design/usability/accessibility.html#understanding-accessibility

    Semantics in Compose branch: https://developer.android.com/jetpack/compose/semantics

    Accessibility Scanner could go in Testing branch: https://play.google.com/store/apps/details?id=com.google.android.apps.accessibility.auditor

    opened by lsurvila 0
Releases(1.0.6)
  • 1.0.6(Oct 9, 2022)

    The 2022 Android Developer Roadmap supports 11 different world languages in README! 🌍

    English, Korean, Arabic, German, Spanish, Turkish, Bahasa Indonesia, French, Portuguese, Khmer, and Vietnamese.

    What's Changed

    • Add README_AR : Arabic by @mohamedtamer0 in https://github.com/skydoves/android-developer-roadmap/pull/34
    • Add README_PT : Portuguese by @BinaryLeo in https://github.com/skydoves/android-developer-roadmap/pull/35
    • Add README_KHM For Khmer language by @vsay01 in https://github.com/skydoves/android-developer-roadmap/pull/36
    • Add README_VI.md for Vietnamese by @tsnAnh in https://github.com/skydoves/android-developer-roadmap/pull/38
    • minor improvement for ID translation by @wiryadev in https://github.com/skydoves/android-developer-roadmap/pull/39

    New Contributors

    • @mohamedtamer0 made their first contribution in https://github.com/skydoves/android-developer-roadmap/pull/34
    • @BinaryLeo made their first contribution in https://github.com/skydoves/android-developer-roadmap/pull/35
    • @vsay01 made their first contribution in https://github.com/skydoves/android-developer-roadmap/pull/36
    • @tsnAnh made their first contribution in https://github.com/skydoves/android-developer-roadmap/pull/38
    • @wiryadev made their first contribution in https://github.com/skydoves/android-developer-roadmap/pull/39

    Full Changelog: https://github.com/skydoves/android-developer-roadmap/compare/1.0.5...1.0.6

    Source code(tar.gz)
    Source code(zip)
  • 1.0.5(Sep 19, 2022)

  • 1.0.4(May 18, 2022)

  • 1.0.3(Mar 1, 2022)

  • 1.0.2(Jan 28, 2022)

    New Articles

    New Translations

    • Add Spanish translation of README.md by @SamGarciaDev in https://github.com/skydoves/android-developer-roadmap/pull/20
    • Add Turkish translation of README.md by @serkanalc in https://github.com/skydoves/android-developer-roadmap/pull/23

    New Contributors

    • @SamGarciaDev made their first contribution in https://github.com/skydoves/android-developer-roadmap/pull/20
    • @serkanalc made their first contribution in https://github.com/skydoves/android-developer-roadmap/pull/22

    Full Changelog: https://github.com/skydoves/android-developer-roadmap/compare/1.0.1...1.0.2

    Source code(tar.gz)
    Source code(zip)
  • 1.0.1(Dec 8, 2021)

    What's Changed

    • Added CI/CI section by @skydoves in #7, #9
    • Fix typo on the Fragment, Theming, Resource isolations by @skydoves in #3, #5, #17
    • Fix Crash for low-end devices. by @yogeshpaliyal in https://github.com/skydoves/android-developer-roadmap/pull/8
    • Korean translation for README by @skydoves in https://github.com/skydoves/android-developer-roadmap/pull/2
    • German translation for README by @marcauberer in https://github.com/skydoves/android-developer-roadmap/pull/15

    New Contributors

    • @skydoves made their first contribution in https://github.com/skydoves/android-developer-roadmap/pull/2
    • @yogeshpaliyal made their first contribution in https://github.com/skydoves/android-developer-roadmap/pull/8
    • @marcauberer made their first contribution in https://github.com/skydoves/android-developer-roadmap/pull/15

    Full Changelog: https://github.com/skydoves/android-developer-roadmap/compare/1.0.0...1.0.1

    Source code(tar.gz)
    Source code(zip)
  • 1.0.0(Dec 1, 2021)

Owner
Jaewoong Eum
Android and open source software engineer.❤️ Digital Nomad. Love coffee, music, magic tricks, and writing poems. Coffee Driven Development
Jaewoong Eum
🔥 A curated list of awesome Android articles sorted by topic.

See also: Jetpack Compose Awesome Java Java Core SDK Collections Reflection API Concurrency Java Memory Model JVM Garbage Collector Kotlin Basics Exte

Mahach Imangazaliev 318 Dec 19, 2022
To show how to use preloading in exoplayer android using simple MVVM

Instagram Preloading Tech Stack Kotlin ViewBinding ExoPlayer ViewModel Coroutine Glide for image Demo Please take a look at videos folder How to run C

Andri Ginting 19 Sep 25, 2022
🗺 Android Developer Roadmap 2022 suggests learning paths to understanding Android development.

?? Android Developer Roadmap 2022 suggests learning paths to understanding Android development.

Jaewoong Eum 5.2k Jan 2, 2023
Google Developer Student Clubs 2022 Solution Challenge - Team East River's Android Application

Solution-Challenge-2022-VEGATHER Google Developer Student Clubs 2022 Solution Challenge - Team East River's Android Application VEGATHER is an app ser

GDSC HUFS 5 Jun 19, 2022
Understanding Gradle – Video Series

Understanding Gradle – Video Series This repository contains sample projects and further information on my Understanding Gradle video series. The seri

Jendrik Johannes 137 Jan 1, 2023
Android fillable progress view working with SVG paths. This is a nice option too if you want to create an interesting branding logo for your app. Based on the iOS project: https://github.com/poolqf/FillableLoaders

Android FillableLoaders Android Open Source library providing an interesting fillable progress view working with SVG paths. This is a nice option too

Jorge Castillo 2k Jan 1, 2023
Android Library to handle multiple Uri's(paths) received through Intents.

?? Handle Path Oz Android library written in Kotlin, but can be used in Java too. Built to handle a single or multiple Uri (paths) received through In

Murillo Comino 57 Dec 14, 2022
A set of APIs to manipulate graphics paths on Android

Pathway Pathway is an Android library that provides new functionalities around the graphics Path API. Pathway is compatible with API 21+. Maven reposi

Romain Guy 147 Dec 17, 2022
PaintableVectorView enables to change color of paths/groups in Vector Drawable (SVG)

PaintableVectorView PaintableVectorView enables to change color of paths/groups in Vector Drawable (SVG) Demo Car icon made by Prosymbols from www.fla

Jakub Anioła 164 Dec 16, 2022
🎨 Jetpack Compose canvas library that helps you draw paths, images on canvas with color pickers and palettes

?? Jetpack Compose canvas library that helps you draw paths and images on canvas with color pickers and palettes. Sketchbook also provides useful components and functions that can easily interact with canvas.

Stream 342 Dec 30, 2022
UTBotJava generates test cases by code, trying to cover maximum statements and execution paths.

UTBotJava generates test cases by code, trying to cover maximum statements and execution paths. We treat source code as source of truth assuming that behavior is correct and corresponds to initial user demand. Generated tests are placed in so-called regression suite

null 60 Jan 3, 2023
PenPath class is designed to be used to draw paths with variable thickness

PenPath class is designed to be used to draw paths with variable thickness. It creates an object of android.graphics.Path and should be drawn with Paint.Style.FILL type paint.

null 2 Jun 5, 2022
Taskify - An app to manage your daily tasks and boost your productivity. Taskify is built using kotlin and follows all modern android Development practices and hence is a good learning resource for beginners

Taskify Taskify is an app to manage your daily tasks and boost your productivity Video Introduction ?? This is a small introduction video about Taskif

Vaibhav Jaiswal 101 Jan 4, 2023
Vaibhav Jaiswal 57 Jan 3, 2023
An under development minecraft plugin (1.8.8) to learning Kotlin language

CorePlus CorePlus is a minecraft plugin coded with Kotlin language. Still under development CorePlus will be an essential for each minecraft servers !

Gonz 3 Jun 16, 2021
Android Study Jams - These are applications built for Android Study Jams 2022 at Chitkara University

Project Description These are applications built for Android Study Jams 2022 at

Armaan Jain 3 Sep 16, 2022
Android + Kotlin Project for the 2022 edition of the Open Source Contribution competition, JGEC Winter of Code aka JWoC.

QuotesApp-JWoC Android + Kotlin Project for the 2022 edition of the Open Source Contribution competition, JGEC Winter of Code aka JWoC. ?? Project Obj

null 4 Feb 16, 2022
Movie Time Android App (Winter 2022)

Movie Time Android App (Winter 2022) Overview Movie time is an app for Android written in Kotlin for tracking movies that the user has watched and for

Alima Roman 2 May 13, 2022
Clean Android multi-module offline-first scalable app in 2022. Including Jetpack Compose, MVI, Kotlin coroutines/Flow, Kotlin serialization, Hilt and Room.

Android Kotlin starter project - 2022 edition Android starter project, described precisely in this article. Purpose To show good practices using Kotli

Krzysztof Dąbrowski 176 Jan 3, 2023