Skip to content

Latest commit

 

History

History
201 lines (173 loc) · 4.04 KB

AndroidDevelopmentRoadmap.md

File metadata and controls

201 lines (173 loc) · 4.04 KB

Roadmap to Learn Android App Development

Programming

  • Java
  • Kotlin

Android Studio

  • Android Studio IDE Overview
  • Project Structure
    • Java/Kotlin
    • XML
    • .gradle files

Android Components

  • Activity
    • Activity Lifecycle
    • Tasks & Back Stack
  • Service
  • Broadcast Receiver
  • Content Provider

Intents

  • Types of Intent
    • Implicit
    • Explicit
  • Intent Filter

Static User Interface

  • View
    • Button, ImageView, TextView, EditText, etc.
  • ViewGroup
    • LinearLayout, RelativeLayout, FrameLayout, ConstraintLayout

Dynamic User Interface

  • RecyclerView
  • ViewPager
  • Spinner

Custom View

  • Canvas
  • Bitmap
  • Paint

UI Resources

  • Drawables
  • Strings
  • Styles

Fragments

  • Fragment Lifecycle
  • Fragment Manager

Supporting User Interface

  • ProgressBar
  • Dialogs
  • Toast & Snackbar

Storage

  • Shared Preferences
  • DataStore
  • File Systems
  • Database
    • RoomDB

Build

  • Gradle
  • Debug / Release Configuration

Threading

  • Thread
  • Handler/Looper
  • ThreadPoolExecutor
  • RxJava
  • Coroutines/Flow
  • WorkManager

Debugging

  • Memory Profiling
  • Logging
  • Systrace
  • Exceptions & Error Handling

Memory Leaks

  • Detecting and Fixing Memory Leaks
  • Context Management

3rd Party Libraries

  • Image Loading
    • Glide
    • Picasso
  • Dependency Injection
    • Dagger
  • Networking
    • Fast Android Networking Library
    • Retrofit
  • Multithreading
    • RxJava
    • Coroutines
    • Kotlin Flow API

Coroutines

  • Learn here: Master Kotlin Coroutines
  • coroutines
  • suspend, launch, async-await, withContext
  • dispatchers, scope, context, job
  • lifecycleScope, viewModelScope, GlobalScope
  • suspendCoroutine, suspendCancellableCoroutine
  • coroutineScope, supervisorScope

Kotlin Flow API

  • Learn here: Kotlin Flow API
  • Flow Builder, Operator, Collector
  • flowOn, dispatchers
  • Operators: filter, map, zip, flatMapConcat, retry, debounce, distinctUntilChanged, flatMapLatest
  • Terminal operators
  • Cold Flow vs Hot Flow: Cold vs Hot Flow
  • StateFlow, SharedFlow, callbackFlow, channelFlow

Data Formats

  • JSON
    • GSON
  • Flat Buffer
  • Protocol Buffer

Networking

  • GET/POST/DELETE/PUT/PATCH
  • OkHttp, Interceptor
  • Caching
  • Retrofit with Coroutines/Flow
  • Multipart request
  • Read, Write Timeout
  • OAuth 2.0 - Refresh and Access Token
  • HTTP Status Codes

Android Jetpack

  • Foundation Components
    • AppCompat
    • Android KTX
    • Multidex
  • Architecture Components
    • LiveData
    • ViewModel
    • DataBinding
    • Paging
    • WorkManager
    • Navigation
  • Behavior Components
    • Download Manager
    • Media Playback
    • Notifications
    • Permissions
    • Preferences
    • Sharing
    • Slice
  • UI Components
    • Animation & Transition
    • Android Auto
    • Emoji
    • Palette
    • Android TV
    • Android Wear

Compose

  • State: remember, rememberSaveable, MutableState
  • Recomposition, State Hoisting, Side-effects
  • Modifier, Theme, Layout, List
  • Gestures, Animation
  • CompositionLocal

Design Patterns and Architecture

  • Builder Pattern
  • Singleton
  • Dependency Injection
  • Factory
  • Observer
  • Repository
  • MVVM, MVP, MVI
  • Clean Architecture

Unit Testing

  • Local Unit Testing
  • Instrumentation Testing

Firebase

  • FCM
  • Crashlytics
  • Analytics
  • Remote Config
  • App Indexing
  • Dynamic Links

Security

  • Encrypt / Decrypt
  • Proguard, R8

App Release

  • .keystore file
  • App Bundle
  • Playstore

Keep Learning and Improving!