Android Master to Architect — complete roadmap
This is the curriculum for the entire book. It is arranged in learning order: language foundations first, Android internals next, then UI, architecture, data, device capabilities, production engineering, and architect-level decision-making.
Status: ✅ Written and clickable ◐ Rewrite in progress ○ Planned
Do not try to memorize everything in one pass. Learn a topic, run its examples, answer its interview questions, complete its practical exercise, and revisit it while building a real feature. A topic is marked complete only after it meets that standard.
Part I — Kotlin and Java foundations
Chapter 1: Why Kotlin for Android
- ✅ Why Kotlin instead of Java?
- Kotlin-first Android ecosystem
- Null safety and safer type modelling
- Concise code versus unreadable cleverness
- Coroutines and structured concurrency
- Java coexistence, migration cost, and trade-offs
Chapter 2: Types, variables, and program flow
- ✅ Types and control-flow overview
- ✅ Types,
val,var, inference, and conversions - ✅ Expressions and control flow
- ✅ Equality, identity, and comparison
- ✅ Type checks, casts, and smart casts
- ✅ Null safety
- Nullable types, safe calls, and Elvis operator
let, safe transformations, and nullable collections!!, platform types, and production failure scenarios
- ✅ Kotlin string manipulation - complete PDF reference
- String operations,
StringBuilder, regex, and interview algorithms
- String operations,
Chapter 3: Functions and functional Kotlin
- ✅ Functions overview
- ✅ Functions, parameters, return types,
Unit, andNothing - ✅ Lambdas and higher-order functions
- ✅ Inline,
noinline, andcrossinline - ✅ Reified type parameters
- ✅ Practical Android functional patterns
- ✅ Function interview questions and exercises
Chapter 4: Classes and Kotlin type modelling
- ✅ Classes overview
- ✅ Constructors,
init, properties, backing fields, andlateinit - ✅ Inheritance and interfaces
- ✅ Objects, companion objects, and object expressions
- ✅ Data classes, copying, enums, and sealed hierarchies
- ✅ Value classes
- ✅ Class design for Android and interview questions
Chapter 5: Collections, generics, and advanced language tools
- ✅ Collections chapter overview
- ✅ Collection hierarchy: Iterable, Collection, List, Set, Map, mutable interfaces, and implementations
- ✅ Collections and transformations
- ✅ Access, search, filtering, safe access, and
filterIsInstance - ✅ List-specific indexes, slicing/views, binary search, adjacent pairing, and indexed mutation
- ✅ Map-specific lookup, defaults, transformations, and mutation
- ✅ Set algebra, synchronization differences, and hash stability
- ✅ Sorting, comparators, aggregation, and domain folds
- ✅ Advanced aggregation, running results, right folds, and grouped folds
- ✅ Grouping, association, duplicate keys, and map lookup
- ✅ Mutation, references, aliases, shallow copying, and ownership
- ✅ Destination operations and collection builders
- ✅ Collection operations: transformations, grouping, complete slicing families, uniqueness, chunking, and windows
- ✅ Sequences, execution tracing, lazy evaluation, and performance
- ✅ Collections in Android and interview questions
Kotlin type system
Advanced Kotlin
Chapter 6: Coroutines and reactive streams
- ✅ Coroutines and Flow overview
- ✅ Coroutine fundamentals
- ✅ Coroutine execution trace: suspension, threads, dispatchers, Jobs, and real concurrency
- ✅ Structured concurrency and cancellation
- ✅ Cancellation cooperation, exception propagation, supervision, cleanup, and timeout ambiguity
- ✅ Dispatchers, context, and thread confinement
- ✅ Cold Flow, operators, exceptions, and completion
- ✅ Flow pipeline execution, context boundaries, transformation choice, and cancellable search
- ✅ Backpressure, buffering, conflation, callbackFlow cleanup, and retry safety
- ✅ StateFlow, SharedFlow, and channels
- ✅ State/event delivery guarantees, atomic updates, sharing lifetimes, and process death
- ✅ Coroutine and Flow interview scenarios
Chapter 7: Java interoperability and migration
- ✅ Java interoperability overview
- ✅ Calling Java from Kotlin
- ✅ Designing Kotlin APIs for Java callers
- ✅ Gradual Java-to-Kotlin migration
- ✅ Interop interview questions
Part II — Android platform and build system
Chapter 8: How Android works
- ✅ Android architecture — the big picture
- ✅ Framework APIs and system services
- ✅ Linux processes, UIDs, and the application sandbox
- ✅ Execution trace: posting a notification
- ✅ Binder and Android IPC
Chapter 9: Process startup, ART, and runtime behaviour
Chapter 10: Components and lifecycle
- ✅ Application components and lifecycle
- Application, Activity, Service, Receiver, Provider, and work selection
- Manifest registration, exported components, and lifecycle versus process lifetime
- ✅ Activities, tasks, back stack, lifecycle, and launch modes
- ✅ Fragments and the separate Fragment view lifecycle
- ✅ Intents, intent filters, Activity Result APIs, and secure handling
- ✅ Application, Activity, Service, and themed Context lifetimes
- ✅ Component/lifecycle interview scenarios
Chapter 11: Resources and device configuration
Chapter 12: Gradle and the Android build pipeline
- ✅ Gradle, AGP, variants, R8, and build performance
- ✅ Gradle lifecycle, task graph, Providers, and caches
- ✅ Build types, product flavors, source sets, and variants
- ✅ Dependency configurations, API exposure, and version catalogs
- ✅ R8, keep rules, resource shrinking, and retrace
- ✅ Signing, secrets, APK/AAB, and release identity
- ✅ Build performance, CI, and interview scenarios
- ◐ Platform interview scenarios
Part III — UI engineering: Views and Jetpack Compose
Chapter 13: Rendering and the traditional View system
- ✅ Android UI thread, Looper, frames, measurement, layout, and drawing
- ✅ XML, ConstraintLayout, ViewBinding, insets, and adaptive Views
- ✅ Custom Views, Canvas, touch dispatch, gestures, and accessibility
- ✅ RecyclerView adapters, ViewHolders, recycling, DiffUtil, and ListAdapter
- ✅ Multiple types, payloads, nested lists, selection, and performance
- ✅ View system and RecyclerView interview scenarios
Chapter 14: Jetpack Compose foundations
- ✅ Why Compose, declarative UI, composables, and state modeling
- ✅ Composition, recomposition, identity, keys, skipping, and stability
- ✅ Modifiers, layout constraints, alignment, drawing, and order
- ✅ Material 3, design systems, theming, typography, shapes, and dark mode
- ✅ Lazy lists, grids, stable keys, sticky headers, scrolling, and performance
- ✅ User input, forms, focus, keyboard, gestures, and View interoperability
- ✅ Compose foundations interview scenarios, mistakes, and exercises
Chapter 15: Compose state and side effects
- ✅ State, events, state hoisting, ownership, and unidirectional data flow
- ✅
remember,rememberSaveable,SavedStateHandle, and restoration - ✅ Snapshot state,
derivedStateOf, immutability, and stability - ✅
LaunchedEffect,DisposableEffect,SideEffect,produceState, keys, and cancellation - ✅
snapshotFlow, lifecycle-aware Flow collection, and transient events - ✅ Compose state and side-effects interview scenarios
Chapter 16: Advanced Compose
- ✅ Custom layouts,
Layout,SubcomposeLayout, constraints, and intrinsics - ✅ Animation APIs, state transitions, gestures, interruption, and motion design
- ✅ Semantics trees, custom controls, accessibility, and screen-reader testing
- ✅ Compose performance, tracing, stability reports, and benchmarks
- ✅ Design systems, semantic tokens, reusable component APIs, and slot patterns
- ✅ Typed navigation, deep links, adaptive navigation, and list-detail structures
- ✅ Compose UI, screenshot, accessibility, and performance testing interview lab
Chapter 17: Inclusive and adaptive UI
- ✅ Accessibility: semantics, contrast, touch targets, focus, and TalkBack
- ✅ Localization, plurals, formatting, RTL, and pseudolocales
- ✅ Window size classes, canonical patterns, adaptive layouts, and resize state
- ✅ Tablets, foldables, posture, multi-window, and resizable activities
- ✅ Large screens, keyboard, mouse, stylus, and secure drag-and-drop
- ✅ Inclusive and adaptive UI interview scenarios and architecture lab
Part IV — Application architecture and modularization
Chapter 18: Architecture foundations
- ✅ Separation of concerns, coupling, cohesion, volatility, and enforceable boundaries
- ✅ SOLID principles, Android scenarios, contract risks, and interface inflation
- ✅ MVC, MVP, MVVM, and MVI: ownership, flow, strengths, failures, and migration
- ✅ Unidirectional data flow, valid state modeling, reducers, effects, and state machines
- ✅ Clean Architecture, dependency rule, mapping, failures, and avoiding ceremony
- ✅ Architecture foundations interview lab and offline-order case study
Chapter 19: Android architecture components
- ✅ ViewModel lifecycle, owner scopes, factories, cleanup, and memory rules
- ✅
SavedStateHandle, process reconstruction, route inputs, and saved-state limits - ✅ LifecycleOwner,
repeatOnLifecycle, Compose collection, cancellation, and work ownership - ✅ Typed navigation, nested graphs, multiple back stacks, auth, results, and deep links
- ✅ Repository and use-case patterns, source-of-truth policy, and immutable UI state
- ✅ Android architecture components interview scenarios and commerce case study
Chapter 20: Dependency injection
- ✅ Dependency inversion, constructor injection, manual DI, composition roots, and service-locator failures
- ✅ Dagger graph, constructor bindings, modules, components, subcomponents, qualifiers, and scopes
- ✅ Hilt application, Activity, Fragment, ViewModel, Service, and Worker integration
- ✅ Assisted injection, runtime parameters, factories, validation, and Worker inputs
- ✅ Set/map multibinding, plugin architectures, ordering, isolation, and dynamic features
- ✅ DI testing, graph validation, startup/build cost, variant safety, and scope leaks
- ✅ Dependency injection interview scenarios and white-label commerce case study
Chapter 21: Design patterns for Android
- ✅ Factory and Builder: creation policy, configuration, Kotlin alternatives, and valid construction
- ✅ Adapter, Decorator, Facade, and Proxy: boundary translation, wrapping, and access control
- ✅ Strategy, Observer, State, and Command: algorithm, stream, transition, and action identity
- ✅ Chain of Responsibility and Mediator: ordering, coordination, event-bus failures, and isolation
- ✅ Repository, Use Case, Mapper, Result, Circuit Breaker, retries, and resilience interactions
- ✅ Pattern-selection interview lab and resilient photo-upload case study
Chapter 22: Modularization and enterprise-scale codebases
- ✅ Layer, feature, hybrid, core, data, domain, and design-system module strategy
- ✅ API/implementation splits, model ownership, visibility, compatibility, resources, and manifests
- ✅ Dependency graphs, cycles, convention plugins, ABI exposure, cache correctness, and build performance
- ✅ Play dynamic feature delivery, absent/install/failure states, base direction, security, and testing
- ✅ Navigation and DI across module boundaries, typed routes, composition, scope, and dynamic features
- ✅ Ownership, team topology, internal platform APIs, fitness functions, and monorepo tradeoffs
- ✅ Scalable contract/integration/assembly testing, CI selection, interview lab, and extraction case study
Part V — Data, networking, and offline-first systems
Chapter 23: Local persistence
- ✅ SQLite schema design, constraints, indexes, joins, transactions, query plans, and keyset pagination
- ✅ Room entities, DAOs, relations, embedded objects, converters, projections, and N+1 risks
- ✅ Room automatic/manual migrations, destructive risks, schema export, testing, and upgrade performance
- ✅ Transactions, concurrency, lost updates, invalidation, Flow sharing, and database performance
- ✅ Preferences and Proto DataStore, atomic updates, schema evolution, migration, corruption, and multi-process
- ✅ Choosing Room, DataStore, files, cache, or Keystore with backup, cleanup, and security tradeoffs
- ✅ Local persistence interview scenarios and offline task-manager architecture case study
Chapter 24: Repository and data-layer design
- ✅ Repository responsibilities, cohesive ownership, behavioral contracts, scope, and boundary failures
- ✅ Local/remote source coordination, read strategies, refresh races, partial failure, and connectivity
- ✅ DTO, entity, domain, and UI mapping: units, nullability, evolution, corruption, and diagnostics
- ✅ Error models, retry eligibility, freshness, stale-while-revalidate, cache keys, and invalidation
- ✅ Use cases, business-rule orchestration, atomicity limits, concurrency, and avoiding ceremony
- ✅ Single source of truth, reactive read streams, interview scenarios, and optimistic favorites case study
Chapter 25: Networking
- ✅ HTTP methods, statuses, headers, validators, caching, concurrency, and idempotency
- ✅ Retrofit suspend contracts, response/error mapping, URL safety, empty bodies, and cancellation
- ✅ OkHttp interceptors, authenticators, single-flight refresh, pooling, timeouts, and logging
- ✅ Kotlin serialization, Moshi/Gson tradeoffs, missing/null/unknown fields, DTO evolution, and polymorphism
- ✅ Multipart uploads, downloads, streaming, progress, resumability, cancellation, and resource security
- ✅ WebSockets, server-sent events, reconnect state, cursors, deduplication, and backpressure
- ✅ Network Security Config, cleartext, trust anchors, release variants, and certificate pinning tradeoffs
- ✅ Networking interview scenarios and reliable messaging system-design case study
Chapter 26: Offline-first architecture and synchronization
- ✅ Local observable readable truth, pull/push/hybrid refresh, bootstrap, stale states, and account safety
- ✅ Online-only, queued, and lazy writes, optimistic persistence, rollback, coalescing, and undo
- ✅ Transactional outbox, queue leases, ordering, retries, exponential backoff, WorkManager, and idempotency
- ✅ Conflict detection, ETags/versions, server/client/LWW/merge policies, three-way merge, and version vectors
- ✅ Tombstones, delete conflicts, incremental and pagination cursors, full resync, and clock hazards
- ✅ Connectivity uncertainty, trigger coalescing, account/auth changes, battery policy, and multi-device convergence
- ✅ Offline-first interview scenarios and collaborative-notes distributed-system case study
Chapter 27: Paging 3
- ✅
PagingSource,Pager,PagingData, key protocols, refresh keys, invalidation, and query switching - ✅
RemoteMediator, Room source of truth, load types, scoped remote keys, and atomic page writes - ✅ Transformations, filtering, separators, stable keys, deterministic order, and
cachedIn - ✅ Source/mediator load states, retry versus refresh, empty/error UI, and process recreation
- ✅ PagingSource/RemoteMediator/UI testing, duplicate-request scenarios, and offline product-search lab
Part VI — Background work, notifications, and device capabilities
Chapter 28: Background execution
- ✅ Choosing coroutines, WorkManager, services, foreground services, and alarms
- ✅ WorkManager requests, constraints, input/output, progress, and cancellation
- ✅ Unique work, chaining, retries, backoff, and idempotency
- ✅ CoroutineWorker, dependency injection, and testing
- ✅ Started and bound services
- ✅ Foreground-service types, user visibility, and platform restrictions
- ✅ Exact and inexact alarms, Doze, App Standby, and battery optimizations
- ✅ Boot, process death, reboot, and durable scheduling
Chapter 29: Notifications and external entry points
- ✅ Notification channels, importance, permission, grouping, and actions
- ✅ PendingIntent identity, mutability, and security
- ✅ Deep links, custom schemes, verified App Links, and intent validation
- ✅ Cold-start navigation and authentication gates
- ✅ Firebase Cloud Messaging, token lifecycle, topics, data messages, and delivery limits
- ✅ System-design interview, failure injection, review checklist, and exercises
Chapter 30: Permissions, storage, files, and media
- ✅ Runtime permissions, denial, rationale, “don’t ask again,” and Settings recovery
- ✅ Internal, external, cache, no-backup, backup, and scoped-storage ownership
- ✅ MediaStore, Storage Access Framework, and FileProvider
- ✅ File I/O, streaming, large files, integrity, partial writes, and cleanup
- ✅ Audio/video playback and Media3 architecture
- ✅ Media capture, background playback, audio focus, and media sessions
- ✅ System-design interview, failure injection, review checklist, and exercises
Chapter 31: Location and maps
- ✅ Location permissions, precision, foreground/background access
- ✅ Fused location concepts, current versus continuous location
- ✅ Geofencing, battery/accuracy trade-offs, and mock locations
- ✅ Maps architecture, markers, camera state, clustering, and offline considerations
- ✅ Privacy, retention, and location security
- ✅ Courier-tracking system design, interview questions, checklist, and exercises
Chapter 32: BLE, NFC, sensors, and camera
- ✅ Bluetooth permission evolution, BLE roles, discovery, advertising, and GATT concepts
- ✅ BLE scanning, advertising, GATT services, characteristics, and notifications
- ✅ BLE connection state, retries, MTU, concurrency, and device quirks
- ✅ NFC tags, NDEF, reader mode, and Host Card Emulation overview
- ✅ Sensor types, sampling, coordinate systems, batching, and battery
- ✅ CameraX lifecycle, preview, image capture, analysis, rotation, and backpressure
- ✅ Device capability detection, graceful degradation, and hardware testing
- ✅ Connected-device system design, interview questions, checklist, and exercises
Part VII — Security and privacy
Chapter 33: Android application security
- ✅ Threat modelling, assets, trust boundaries, attackers, and mitigations
- ✅ Sandbox, exported components, intent injection, and PendingIntent risks
- ✅ Secure storage and Android Keystore
- ✅ Encryption at rest, keys, IVs, authenticated encryption, and rotation
- ✅ TLS, Network Security Config, cleartext policy, and pinning trade-offs
- ✅ WebView security, JavaScript bridges, and untrusted content
- ✅ SQL injection, path traversal, unsafe deserialization, and logging leaks
- ✅ Rooted devices, tamper resistance, integrity APIs, and realistic guarantees
- ✅ Banking security review, abuse tests, interview questions, and exercises
Chapter 34: Authentication and authorization
- ✅ OAuth 2.0 and OpenID Connect concepts for mobile clients
- ✅ Authorization Code with PKCE, state, nonce, and redirects
- ✅ Access tokens, refresh tokens, expiry, rotation, and revocation
- ✅ OkHttp authentication refresh without retry storms
- ✅ Biometrics, device credentials, Keystore binding, and transaction confirmation
- ✅ Session logout, multi-account handling, and sensitive-screen protection
- ✅ Authentication versus server-side object/action authorization
- ✅ Finance-app system design, failure injection, interview questions, and exercises
Chapter 35: Privacy engineering
- ✅ Data minimization, purpose limitation, consent, and retention
- ✅ Runtime permission UX, privacy indicators, and data-access auditing
- ✅ Analytics identifiers, SDK governance, and sensitive-data redaction
- ✅ Screenshot, clipboard, notification, backup, and log exposure
- ✅ Export, account deletion, retention operations, processors, and backup restoration
- ✅ Privacy review, release checklist, case study, interview questions, and exercises
Part VIII — Performance, reliability, and quality
Chapter 36: Performance and memory
- ✅ CPU, memory, network, disk, GPU, and battery measurement
- ✅ Android Studio Profiler, Perfetto, system tracing, Macrobenchmark, and Microbenchmark
- ✅ Memory model, GC pressure, leaks, retained objects, caches, and LeakCanary
- ✅ Bitmap memory, target-sized decoding, image lists, and large-object handling
- ✅ Cold/warm/hot startup, TTID/TTFD, App Startup, lazy initialization, and Baseline Profiles
- ✅ ANRs, main-thread blocking, locks, StrictMode, and watchdog behaviour
- ✅ Jank, frame deadlines, Compose phases, recomposition, overdraw, and list performance
- ✅ Battery, wake locks, radios, sensors, background limits, and power-aware scheduling
- ✅ Commerce performance case study, failure injection, interview questions, and exercises
Chapter 37: Testing strategy
- ✅ Test pyramid versus risk-based test portfolio
- ✅ Unit, integration, component, UI, end-to-end, and contract tests
- ✅ Testable architecture and deterministic concurrency
- ✅ Fakes, stubs, mocks, spies, and when each is appropriate
- ✅ JUnit, coroutine test APIs, Flow testing, hot flows, and virtual time
- ✅ Room, Retrofit/MockWebServer, WorkManager, and migration testing
- ✅ Espresso, UI Automator, Robolectric, and instrumented-test trade-offs
- ✅ Compose UI tests, semantics, screenshots, and accessibility checks
- ✅ Flaky-test diagnosis, reports, CI tiers, coverage, and mutation testing
- ✅ Offline-checkout test architecture, interview questions, checklist, and exercises
Chapter 38: Observability and operational reliability
- ✅ Structured logging, correlation, sensitive-data redaction, and diagnostic exports
- ✅ Crash reporting, R8/native symbols, grouping, and release correlation
- ✅ Analytics event contracts, deduplication, versioning, and data quality
- ✅ Traces, metrics, startup monitoring, cardinality, and custom performance signals
- ✅ Offline telemetry buffering, prioritization, consent, sampling, and delivery
- ✅ SLIs, SLOs, error budgets, alerting, incidents, and postmortems
- ✅ Firebase Crashlytics, Performance, Analytics, and Remote Config boundaries
- ✅ Checkout incident case study, failure injection, interview questions, and exercises
Chapter 39: Feature flags and experimentation
- ✅ Release flags, operational flags, experiments, configuration, and permission boundaries
- ✅ Safe defaults, deterministic evaluation, caching, targeting, and offline behaviour
- ✅ Kill switches, degraded modes, and validated server-driven configuration
- ✅ Flag ownership, expiry, combination testing, and technical-debt cleanup
- ✅ Experiment assignment, exposure, metrics, bias, and rollout guardrails
- ✅ Checkout rollout case study, interview questions, checklist, and exercises
Part IX — Delivery, compatibility, and platform expansion
Chapter 40: CI/CD and release engineering
- ✅ CI stages, immutable promotion, security gates, and publishing boundaries
- ✅ Gradle caching, parallelization, managed devices, and test sharding
- ✅ Build types, flavors, environments, variant control, and secret management
- ✅ Signing keys, Play App Signing, key recovery/rotation, and secure CI
- ✅ Version identity, artifacts, mappings, provenance, and Play testing tracks
- ✅ Staged rollout, monitoring, halt/forward-fix recovery, AAB delivery, and Play policy
- ✅ Checkout release case study, interview questions, checklist, and exercises
Chapter 41: API and Android-version compatibility
- ✅
minSdk,targetSdk,compileSdk, support decisions, and the compatibility matrix - ✅ Runtime API checks, capability checks, wrappers, and graceful degradation
- ✅ All-app changes, target-gated changes, compatibility toggles, and two-phase migration
- ✅ AndroidX, desugaring, toolchain matrices, and dependency compatibility
- ✅ Device/OEM differences, physical-device strategy, and capability-based testing
- ✅ Backward-compatible storage, notifications, permissions, and background work
- ✅ Reminder migration case study, interview questions, checklist, and exercises
Chapter 42: Migration and refactoring
- ✅ Migration invariants, baselines, vertical slices, ledgers, and deletion conditions
- ✅ Java-to-Kotlin interop, nullability, API stability, and gradual conversion
- ✅ Views-to-Compose interoperability, lifecycle, state, testing, and staged migration
- ✅ LiveData-to-Flow semantics and Dagger-to-Hilt graph coexistence
- ✅ Monolith-to-modular seams, dependency direction, metrics, and extraction order
- ✅ Database/network expand-migrate-contract, compatibility, reconciliation, and repair
- ✅ Strangler checkout case study, rollback limits, interview questions, and exercises
Chapter 43: Beyond the standard phone application
- ✅ Android Auto, Android Automotive OS, Car App Library, UX restrictions, and distraction safety
- ✅ NDK/JNI boundaries, handles, marshalling, references, threading, and error safety
- ✅ Native ABIs, library packaging, memory/concurrency safety, profiling, and debugging
- ✅ Kotlin Multiplatform architecture, shared domain/data, platform capabilities, and ownership
- ✅ Compose Multiplatform sharing strategies, native escape hatches, and target-specific quality
- ✅ Cross-platform audio case study, interview questions, checklist, and exercises
Part X — Android architect mastery
Chapter 44: Engineering standards and technical leadership
- ✅ Coding standards, naming, KDoc, semantic contracts, and consistent APIs
- ✅ Risk-based code review for correctness, architecture, security, performance, and teaching
- ✅ Formatting, Android Lint, Detekt, baselines, custom rules, and quality gates
- ✅ Technical-debt evidence, economics, prioritization, communication, and rewrite limits
- ✅ Mentoring ladders, design reviews, decision rights, and cross-team alignment
- ✅ Build-versus-buy scorecards, library/vendor proof of concept, boundaries, and exit plans
- ✅ Delivery-quality case study, interview questions, checklist, and leadership exercises
Chapter 45: Architecture decisions and trade-offs
- ✅ Functional requirements, measurable quality attributes, constraints, assumptions, and invariants
- ✅ Architecture Decision Records: context, options, rationale, consequences, confidence, and superseding
- ✅ Reversibility spectrum, data/client/trust commitments, timing, and recovery plans
- ✅ Coupling, abstraction complexity, team capacity, delivery speed, and lifecycle cost
- ✅ Risk registers, bounded proofs of concept, evolutionary architecture, and fitness functions
- ✅ Architecture-by-fashion warning signs, evidence questions, trials, and stop conditions
- ✅ Offline-ordering decision case study, interview questions, checklist, and exercises
Chapter 46: Scalable mobile architecture
- ✅ Multi-team domain/module ownership, federated governance, and platform teams as products
- ✅ Stable APIs/events, dependency direction, implementation isolation, compatibility, and versioning
- ✅ Design-system layers, accessibility, shared infrastructure, adoption, and governance
- ✅ Large-scale navigation contracts, identity/session ownership, and configuration precedence
- ✅ Cross-feature offline scheduling, fairness, account isolation, conflict, storage, and diagnostics
- ✅ Performance, binary, build, and release budgets with risk-tiered governance
- ✅ White-label/multi-brand identity, capabilities, flavor/runtime boundaries, and release matrix
- ✅ Enterprise security, managed profiles/configuration, compliance evidence, and auditability
- ✅ Commerce super-app case study, interview questions, checklist, and exercises
Chapter 47: System-design case studies
- ✅ A repeatable mobile system-design interview method and estimation framework
- ✅ Offline-first commerce: catalog, cart, paging, checkout idempotency, payment reconciliation, and conflicts
- ✅ Real-time chat/presence: outbox, ordering, gap recovery, push, attachments, fan-out, and abuse
- ✅ Secure banking: authentication, step-up transfer, Keystore, audit, reconciliation, and threat trade-offs
- ✅ Ride tracking: trip state, location ingest, ETA, offline batching, privacy, battery, and scale
- ✅ Media streaming/downloads: MediaSession, adaptive playback, DRM, durable download, storage, and quality
- ✅ Large news feed: Paging/RemoteMediator, cursors, cache, bookmarks, exposure, ranking, and jank
- ✅ BLE health device: protocol state, validation, measurement sync, firmware, lifecycle, safety, and privacy
- ✅ Multi-module super-app: ownership, contracts, platform products, navigation, identity, budgets, and governance
Chapter 48: Interview preparation
- ✅ Concept, design, and debugging answer frameworks with communication practice
- ✅ Kotlin language, coroutine/Flow questions, coding drills, and follow-up traps
- ✅ Android lifecycle, process death, components, background work, Binder/AIDL, and IPC scenarios
- ✅ Compose recomposition/state/effects and View lifecycle/recycling/rendering interview drills
- ✅ Architecture-pattern comparisons, repositories, Room/DataStore/Paging, networking, caching, and sync
- ✅ Security, performance/ANR/jank/memory, testing strategy, signing, and release questions
- ✅ Senior duplicate-order, battery, ANR, stale-account, BLE, and migration debugging scenarios
- ✅ Architect system-design pacing, prompt bank, constraint follow-ups, and trade-off language
- ✅ Resume/project CRAFT walkthroughs, STAR-L leadership stories, metrics, and follow-ups
- ✅ Technical, coding, design, and leadership mock scorecards with a four-week revision plan
Definition of a completed lesson
A topic becomes ✅ only when it contains:
- A plain-English explanation of what it is and why it exists
- A small example followed by a realistic production scenario
- Step-by-step execution and expected behaviour
- Practical ✅ Prefer and ❌ Avoid comparisons
- Lifecycle, process-death, concurrency, security, and performance implications where relevant
- Corner cases and failure handling
- Runnable Playground links for every independent Kotlin/JVM example
- Clear Android-only labels for framework examples
- Interview-ready answers, follow-up questions, and exercises
- Useful diagrams, decision tables, or checklists
Mastery is not remembering every API. An Android architect can explain how the platform behaves, choose an appropriate design under real constraints, predict failure modes, measure results, communicate trade-offs, and guide a team toward a maintainable system.