Giter Site home page Giter Site logo

amitshekhariitbhu / android-developer-roadmap Goto Github PK

View Code? Open in Web Editor NEW
2.7K 115.0 495.0 505 KB

Android Developer Roadmap - A complete roadmap to learn Android App Development

Home Page: https://amitshekhar.me

License: Apache License 2.0

Java 55.34% Kotlin 44.66%
android roadmap learning android-app developement developer android-developer java kotlin jetpack

android-developer-roadmap's Introduction

Android Developer Roadmap

Android Developer Roadmap

A complete roadmap to learn Android App Development. This roadmap will help you in becoming a complete Android Developer.

Note: All the resources to learn all of the concepts in the roadmap will be provided on:

About me

Hi, I am Amit Shekhar, I have mentored many developers, and their efforts landed them high-paying tech jobs, helped many tech companies in solving their unique problems, and created many open-source libraries being used by top companies. I am passionate about sharing knowledge through open-source, blogs, and videos.

You can connect with me on:

Roadmap to learn Android App Development

  • Programming
    • Java
    • Kotlin
  • Android Studio
    • Android Studio IDE Overview
    • Project Structure
      • Java/Kotlin
      • XML
      • .gradle files
  • Android Component
    • 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
  • CustomView
    • Canvas
    • Bitmap
    • Paint
  • UI Resources
    • Drawables
    • String
    • Styles
  • Fragments
    • Fragment Lifecycle
    • Fragment Manager
  • Support User Interface
    • ProgressBar
    • Dialogs
    • Toast & Snackbar
  • Storage
    • Shared Preferences
    • 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 Leak
    • Detecting and Fixing Memory Leaks
    • Context
  • 3rd Party Library
    • Image Loading
      • Glide
      • Picasso
    • Dependency Injection
      • Dagger
    • Networking
      • Fast Android Networking Library
      • Retrofit
    • MultiThreading
      • RxJava
      • Coroutines
      • Kotlin Flow API
  • Coroutines - You can learn these topics here: Master Kotlin Coroutines
    • coroutines
    • suspend
    • launch, async-await, withContext
    • dispatchers
    • scope, context, job
    • lifecycleScope, viewModelScope, GlobalScope
    • suspendCoroutine, suspendCancellableCoroutine
    • coroutineScope, supervisorScope
  • Kotlin Flow API - You can learn these topics here: Kotlin Flow API
    • Flow Builder, Operator, Collector
    • flowOn, dispatchers
    • Operators such as filter, map, zip, flatMapConcat, retry, debounce, distinctUntilChanged, flatMapLatest
    • Terminal operators
    • Cold Flow vs Hot Flow: Cold Flow vs Hot Flow
    • StateFlow, SharedFlow, callbackFlow, channelFlow
  • Data Format
    • 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
      • Work Manager
      • Navigation
    • Behaviour Components
      • Download Manager
      • Media Playback
      • Notification
      • Permissions
      • Preference
      • Sharing
      • Slice
    • UI Component
      • 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
  • Common 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 Link
  • Security
    • Encrypt / Decrypt
    • Proguard
    • R8
  • App Release
    • .keystore file
    • App Bundle
    • Playstore
  • Keep Learning and Improving

Get High Paying Tech Job: amitshekhar.me

Found this project useful ❤️

  • Support by clicking the ⭐ button on the upper right of this page. ✌️

License

   Copyright (C) 2022 Amit Shekhar

   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.

Contributing to Android Developer Roadmap

Just make a pull request. You are in!

android-developer-roadmap's People

Contributors

amitshekhariitbhu avatar isfaaghyth avatar shahidcodes avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

android-developer-roadmap's Issues

Design Pattern (scope: android-dev)

why is there no "Design Pattern" section here? such as:

  • Builder Pattern
  • Starter Pattern
  • etc.

I think it is a good thing and should to introduce to everyone who getting started on android development :)

Considering Compose

this roadmap before 3 years
can you update it with the emerge of jetpack compose ?

Adding data communication protocols

Hello,

This is I guess a nice road map for complete android development, Though there are some suggestions by me for adding some sections.

1.)Communication protocols

    • BLE
    • Wi-fi
    • Nfc

2.)Socket programming

  1. Xmpp
  2. Mqtt
  3. Web Socket programming

3.) IOT

  1. Android Things
    2.Arduino

-Thanks

Suggestions

I have 2 suggestions

First:- I think "Static User Interface" should come before "Intents" as in order to implement intents you need knowledge of views and ViewGroups.

Second:- Can you also include sample project ideas that can be implemented after certain levels. Like for eg- after learning till "Static User interface" one can make a "TicTacToe".

few notes

here are just a few thoughts:

  • Security // how does proguard/r8 increase security? (obfuscation is not security) i'd put it under build

instead i'd put oauth / keystore here (arguably could be also under storage)

  • Unit testing -> robolectric / mokk

  • Data format -> json -> kotlin serialisation, parcable

  • 3rd party libs -> rather aim for where to find them: github, android arsenal or android lib hunt and potentially how to create one yourself or fork one (maven, bintray, jitpack)

  • Memory leaks -> leakcanary

  • Logging -> monitoring vs crash reporting vs tracking

  • Threading -> rx vs coroutines vs java threads vs flow

  • Build -> CI, merge strategy of resource folder and manifest

  • Viewbinding / data binding is missing

  • Dynamic user interface : Motionlayout / jetpack compose, bottom navigation bar

Developer

adb shell pm grant com.arumcomm.androiddevinfo android.permission.PACKAGE_USAGE_STATS
adb shell pm grant com.arumcomm.androiddevinfo android.permission.READ_LOGS

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.