Compare commits

...

6 commits

Author SHA1 Message Date
Ahmed Essameldin 0fcaed0aab
Merge d135387b0e into 05b355c15e 2024-09-30 12:34:09 +09:00
Jaewoong Eum 05b355c15e
Update README.md 2024-09-21 16:58:53 +09:00
Jaewoong Eum 982dfb828e
Update README.md 2024-09-06 21:00:49 +09:00
Ahmed Essameldin d135387b0e
Move list below the roadmap image 2023-01-30 05:17:11 +02:00
Ahmed Essameldin 025b3997b2
Remove checkboxes 2023-01-30 05:01:41 +02:00
Ahmed Essameldin 2839349117
Add roadmap bullet check-list 2023-01-30 04:51:28 +02:00

262
README.md
View file

@ -4,8 +4,8 @@
<a href="https://opensource.org/licenses/Apache-2.0"><img alt="License" src="https://img.shields.io/badge/License-Apache%202.0-blue.svg"/></a>
<a href="https://github.com/skydoves/android-developer-roadmap/actions/workflows/build.yml"><img alt="Build Status" src="https://github.com/skydoves/android-developer-roadmap/actions/workflows/build.yml/badge.svg"/></a>
<a href="https://mailchi.mp/kotlinweekly/kotlin-weekly-279"><img alt="Kotlin Weekly" src="https://skydoves.github.io/badges/kotlin-weekly2.svg"/></a>
<a href="https://androidweekly.net/issues/issue-495"><img alt="Android Weekly" src="https://skydoves.github.io/badges/android-weekly.svg"/></a>
<a href="https://github.com/skydoves"><img alt="Profile" src="https://skydoves.github.io/badges/skydoves.svg"/></a>
<a href="https://github.com/doveletter"><img alt="Profile" src="https://skydoves.github.io/badges/dove-letter.svg"/></a>
</p>
<p align="center">
<a href="/README_AR.md" target="_blank"> Arabic </a> | <a href="/README.md" target="_blank"> English </a> | <a href="/README_KR.md" target="_blank"> 한국어 </a> | <a href="/README_DE.md" target="_blank"> Deutsch </a>| <a href="/README_ES.md" target="_blank"> Español</a> | <a href="/README_TR.md" target="_blank"> Turkish</a> | <a href="/README_ID.md" target="_blank"> Bahasa Indonesia</a> | <a href="/README_FR.md" target="_blank"> Français</a> | <a href="/README_PT.md" target="_blank"> Portuguese</a> | <a href="/README_KHM.md" target="_blank">ភាសាខ្មែរ</a> | <a href="/README_VI.md" target="_blank">Vietnamese</a> | <a href="/README_CN.md" target="_blank">中文</a> | <a href="/README_JP.md" target="_blank">日本語</a> | <a href="/README_FA.md" target="_blank">فارسی</a> | <a href="/README_TH.md" target="_blank">ภาษาไทย</a> | <a href="/README_IT.md" target="_blank">Italiano</a>| <a href="/README_BD.md" target="_blank">Bengali</a>
@ -24,6 +24,262 @@ In addition, **you don't need to learn everything from this roadmap**. So we rec
<img alt="Roadmap" src="images/android_developer_roadmap.png">
</picture>
## Content list
- - [ ] **Application Fundamentals**
- - [ ] Languages
- - [ ] Kotlin
- - [ ] Java
- - [ ] C++ (JNI)
- - [ ] Android Package
- - [ ] APK
- - [ ] AAB
- - [ ] **Android Operating System**
- - [ ] Multi-User Linux
- - [ ] File Permissions
- - [ ] Resource Isolations
- - [ ] Process Management
- - [ ] **Android Platform Architecture**
- - [ ] The Linux Kernel
- - [ ] Hardware Abstraction Layer
- - [ ] Android Runtime
- - [ ] Native Libraries
- - [ ] Java API Framework
- - [ ] System Apps
- - [ ] **App Manifest**
- - [ ] Package
- - [ ] Application ID
- - [ ] **App Components**
- - [ ] Activity (detailed later)
- - [ ] Service
- - [ ] Broadcast Receiver
- - [ ] Content Provider
- - [ ] Intent
- - [ ] Intent Filters
- - [ ] Explicit Intents
- - [ ] Implicit Intents
- - [ ] **App Architecture**
- - [ ] **App Entry Points**
- - [ ] Activities
- - [ ] Activity Lifecycles
- - [ ] Activity State Changes
- - [ ] Task and Back Stack
- - [ ] Parcelables and Bundles
- - [ ] App Shortcuts
- - [ ] **App Navigation**
- - [ ] Navigation Component
- - [ ] Navigation Graph
- - [ ] Global Actions
- - [ ] Destinations
- - [ ] DeepLink
- - [ ] Fragments
- - [ ] DialogFragment
- - [ ] BottomSheetDialogFragment
- - [ ] Fragment Lifecycles
- - [ ] Fragment State Changes
- - [ ] Fragment Manager
- - [ ] Fragment Transactions
- - [ ] App Links
- - [ ] TabLayout
- - [ ] ViewPager
- - [ ] ViewPager2
- - [ ] Custom Back Navigation
- - [ ] **App Startup**
- - [ ] **Dependency Injection** (detailed later)
- - [ ] **Architecture Components**
- - [ ] UI Layer
- - [ ] ViewBinding
- - [ ] DataBinding
- - [ ] Lifecycle
- - [ ] ViewModel
- - [ ] LiveData
- - [ ] Paging
- - [ ] Data Layer
- - [ ] Data Store
- - [ ] WorkManager
- - [ ] **Design Patterns**
- - [ ] Builder Pattern
- - [ ] Factory Pattern
- - [ ] Dependency Injection
- - [ ] Dagger
- - [ ] Hilt
- - [ ] Koin
- - [ ] Kodein
- - [ ] Repository Pattern
- - [ ] Observer Pattern
- - [ ] Flow
- - [ ] RxJava/RxKotlin
- - [ ] LiveData
- - [ ] **Architecture**
- - [ ] MVVM
- - [ ] MVP
- - [ ] MVI
- - [ ] MVC
- - [ ] Clean Architecture
- - [ ] **Network**
- - [ ] OkHttp
- - [ ] Interceptor
- - [ ] Okio
- - [ ] Retrofit
- - [ ] Ktor
- - [ ] Volley
- - [ ] Apollo-Android
- - [ ] **Image Loading**
- - [ ] Glide
- - [ ] Fresco
- - [ ] Coil
- - [ ] Picasso
- - [ ] **Local Storage**
- - [ ] SQLite
- - [ ] SQLDelight
- - [ ] Room
- - [ ] DataStore
- - [ ] Realm
- - [ ] SharedPreferences
- - [ ] **Asynchronous**
- - [ ] Coroutines
- - [ ] RxJava/RxKotlin
- - [ ] Thread
- - [ ] WorkManager
- - [ ] **User Interface**
- - [ ] Layouts
- - [ ] ConstraintLayout
- - [ ] MotionLayout
- - [ ] LinearLayout
- - [ ] FrameLayout
- - [ ] Material
- - [ ] RecyclerView
- - [ ] Design Guides
- - [ ] Material
- - [ ] Material You
- - [ ] Neumorphism
- - [ ] Styles
- - [ ] Light Theme
- - [ ] Dark Theme
- - [ ] Message
- - [ ] Toast
- - [ ] Snackbar
- - [ ] Notification
- - [ ] Animation
- - [ ] ValueAnimator
- - [ ] ObjectAnimator
- - [ ] Lottie
- - [ ] Material Motion
- - [ ] **Compose UI:**
- - [ ] Recomposition
- - [ ] Snapshot
- - [ ] State:
- - [ ] State Hoisting
- - [ ] MutableState
- - [ ] remember
- - [ ] rememberSaveable
- - [ ] Side-Effects:
- - [ ] LaunchedEffect
- - [ ] DisposableEffect
- - [ ] produceState
- - [ ] derivedStateOf
- - [ ] snapshotFlow
- - [ ] Theming:
- - [ ] Material
- - [ ] Color
- - [ ] Typography
- - [ ] Shape
- - [ ] Custom
- - [ ] Dimens
- - [ ] Factories
- - [ ] Data
- - [ ] Modifier:
- - [ ] Modifier Order
- - [ ] Chaining
- - [ ] Composed Modifier
- - [ ] Layout:
- - [ ] Column
- - [ ] Box
- - [ ] Row
- - [ ] ConstraintLayout
- - [ ] List:
- - [ ] LazyColumn
- - [ ] LazyRow
- - [ ] LazyVerticalGrid
- - [ ] LazyPagingItems
- - [ ] Image:
- - [ ] Icon
- - [ ] Image
- - [ ] coil-compose
- - [ ] Landscapist
- - [ ] Text:
- - [ ] TextField
- - [ ] OutlinedTextField
- - [ ] ClickableText
- - [ ] Graphics:
- - [ ] Surface
- - [ ] Canvas
- - [ ] Gestures:
- - [ ] Scrolling
- - [ ] Dragging
- - [ ] Swiping
- - [ ] Zooming
- - [ ] Animation:
- - [ ] AnimatedVisibility
- - [ ] AnimatedContent
- - [ ] Crossfade
- - [ ] rememberInfiniteTransition
- - [ ] animateContentSize
- - [ ] updateTransition
- - [ ] animate*AsState
- - [ ] AnimationState
- - [ ] animate
- - [ ] Animatable
- - [ ] Animation
- - [ ] CompositionLocal:
- - [ ] CompositionLocalProvider
- - [ ] compositionLocalOf
- - [ ] staticCompositionLocalOf
- - [ ] **Service:**
- - [ ] Google:
- - [ ] Google Play Services
- - [ ] Google Maps
- - [ ] Firebase:
- - [ ] Authentication
- - [ ] Crashlytics
- - [ ] Remote Config
- - [ ] Cloud Messaging
- - [ ] FiresStore
- - [ ] Realtime Database
- - [ ] Advertisements:
- - [ ] Google AdMob
- - [ ] Meta Audience Network
- - [ ] MoPub
- - [ ] **Code Analysis & Testing**:
- - [ ] Linter:
- - [ ] Ktlint
- - [ ] Detekt
- - [ ] Android Lint
- - [ ] Debugging:
- - [ ] Timber
- - [ ] LeakCanary
- - [ ] Stetho
- - [ ] Chucker
- - [ ] Unit Testing:
- - [ ] Unit Test:
- - [ ] JUnit
- - [ ] Kluent
- - [ ] Mockk
- - [ ] Android Test:
- - [ ] Robolectric
- - [ ] Espresso
- - [ ] Kaspresso
- - [ ] Benchmark
- - [ ] **CI/CD**:
- - [ ] GitHub Actions
- - [ ] Jenkins
- - [ ] Travis CI
- - [ ] Circle CI
- - [ ] Bitrise
- - [ ] **QA & App Publishing**:
- - [ ] Firebase App Distribution
- - [ ] Google Play
## ✍️ Articles
<a href="https://getstream.io/blog/android-developer-roadmap/"><img src="images/article.png" /></a><br>
@ -46,7 +302,7 @@ If you'd like to get notified as we release future posts, join the **[watchers](
## 🕊️ Dove Letter
If you're eager to dive deeper into Kotlin and Android, explore [Dove Letter](https://github.com/doveletter/dove-letter), a private subscription repository where you can learn, discuss, and share knowledge. To get more details about this unique opportunity, check out the [Learn Kotlin and Android With Dove Letter](https://medium.com/@skydoves/learn-kotlin-and-android-with-dove-letter-26265da11903) article.
If you're eager to dive deeper into Kotlin and Android, explore [Dove Letter](https://github.com/doveletter), a private subscription repository where you can learn, discuss, and share knowledge. To get more details about this unique opportunity, check out the [Learn Kotlin and Android With Dove Letter](https://medium.com/@skydoves/learn-kotlin-and-android-with-dove-letter-26265da11903) article.
<a href="https://getstream.io/tutorials/android-chat?utm_source=Github&utm_medium=Jaewoong_OSS&utm_content=Developer&utm_campaign=2022AndroidDeveloperRoadmap&utm_term=DevRelOss">
<img src="https://user-images.githubusercontent.com/24237865/138428440-b92e5fb7-89f8-41aa-96b1-71a5486c5849.png" align="right" width="12%"/>
@ -59,7 +315,7 @@ If you're interested in building a robust chat, video/audio calls, or livestream
## 📱 Demo Application
This project includes a demo project which shows the roadmap image. You can download the latest APK on the [Releases](https://github.com/skydoves/android-developer-roadmap/releases).
## 🤝 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](CONTRIBUTING.md) guides.