Android Learning Path with XML

Dilip PatelDilip Patel
4 min read

Basics

  1. Android Layouts, Views, Chains, and Guidelines

    • Different types of layouts (LinearLayout, RelativeLayout, ConstraintLayout, etc.)

    • Use Views and ViewGroups

    • Chains and Guidelines in ConstraintLayout for complex UI designs

  2. Activity and Data Passing

    • Activity lifecycle

    • Pass data between activities using Intents and Bundles

  3. Fragment and Data Passing

    • Fragment lifecycle

    • Pass data between fragments and activities

  4. Intent

    • Differentiate between explicit and implicit intents

    • Use intents to start activities and services

  5. RecyclerView

    • RecyclerView component for displaying lists of data

    • ViewHolders, Adapters, and LayoutManagers

  6. Notification

    • Create and manage notifications

    • Notification channels and importance levels

  7. Alert Dialogs

    • Create and display alert dialogs

    • Different types of dialogs (e.g., AlertDialog, DatePickerDialog)

  8. Spinner (Drop-down Menu)

    • Use Spinner for drop-down menus

    • Populate Spinner with data

  9. Toolbar Menu

    • Add and manage items in the Toolbar menu

    • Handle menu item clicks

  10. Swipeable Tab Bar

    • Implement swipeable tabs using ViewPager and TabLayout
  11. Bottom Navigation

    • Implement bottom navigation using BottomNavigationView
  12. Navigation Drawer

    • Create a navigation drawer for app navigation
  13. Drag and Drop

    • Implement drag and drop functionality in your app
  14. Runtime Permission

    • Request and handle runtime permissions

Android MultiThreading

  1. Thread, Runnables, and Callables

    • Basics of threading and how to use Runnables and Callables
  2. Handlers and Loopers

    • Use Handlers and Loopers for message handling
  3. Executors and ThreadPool

    • Manage threads using Executors and ThreadPools
  4. AsyncTask

    • Use AsyncTask for background operations (Note: Deprecated in API level 30)
  5. RxJava

    • Use RxJava for reactive programming
  6. WorkManager

    • Use WorkManager for background tasks
  7. AlarmManager

    • Schedule tasks using AlarmManager
  8. Coroutines

    • Use Kotlin Coroutines for asynchronous programming

Services

  1. Background Service / Started Service

    • Create and manage background services
  2. Foreground Service

    • Create and manage foreground services
  3. Bound Service

    • Create and manage bound services
  4. Android Interface Definition Language (AIDL)

    • Use AIDL for inter-process communication
  5. IntentService / JobIntentService

    • Use IntentService and JobIntentService for background tasks

JobScheduler

  • Use JobScheduler for scheduling background tasks

Broadcast Receivers

  1. Normal Broadcast Receiver

    • Use sendBroadcast()

    • Implicit and explicit broadcasts

    • Dynamic and static registration

  2. Ordered Broadcast Receiver

    • Use sendOrderedBroadcast()

    • Implicit and explicit broadcasts

    • Dynamic and static registration

  3. Sticky Broadcast

    • Note: Deprecated in API 21
  4. Local Broadcast

    • Use LocalBroadcastManager

    • Implicit and explicit broadcasts

    • Dynamic registration

Content Provider

  • Use Content Providers for data sharing between applications

Data Persistence

  1. SharedPreferences

    • Store and retrieve simple data using SharedPreferences
  2. Room Database

    • Use Room for database management

    • Entities, DAOs, and database migrations

  3. SQLite

    • Basics of SQLite database management
  4. DataStore

    • Use DataStore for data persistence

Android Networking

  1. Volley

    • Use Volley for network operations
  2. OkHttp

    • Use OkHttp for HTTP requests
  3. Retrofit

    • Use Retrofit for network operations and API calls
  4. Ktor

    • Use Ktor for asynchronous network operations

Architecture Patterns

  1. MVC (Model — View — Controller)

    • Basics of the MVC architecture pattern
  2. MVP (Model — View — Presenter)

    • MVP architecture pattern
  3. MVVM (Model — View — ViewModel)

    • Implement the MVVM architecture pattern using ViewModel and LiveData
  4. Seign Pattern

    • Seign pattern and its use cases in software architecture

Dependency Injection

  1. Basics of Dependency Injection

    • Principles of Dependency Injection (DI) and its benefits
  2. Dagger

    • Use Dagger for dependency injection in Android
  3. Hilt

    • Use Hilt, a dependency injection library built on top of Dagger, for simpler DI in Android applications
  4. Koin

    • Use Koin, a lightweight dependency injection framework for Kotlin

Design Patterns

  1. Singleton Pattern

    • Implement the Singleton pattern to ensure a class has only one instance
  2. Factory Pattern

    • Factory pattern for creating objects without specifying the exact class
  3. Observer Pattern

    • Use the Observer pattern to allow objects to be notified of changes in other objects
  4. Builder Pattern

    • Builder pattern for constructing complex objects step by step
  5. Adapter Pattern

    • Use the Adapter pattern to allow incompatible interfaces to work together
0
Subscribe to my newsletter

Read articles from Dilip Patel directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Dilip Patel
Dilip Patel

Software Developer