Course overview

How to Design Mobile Applications

47 modules
190 lessons
—
Part 1

Appendices

  1. Appendix A - Diagram Templates by StepSign in

  2. Appendix B - Mapping Concepts to Platforms and FrameworksSign in

  3. Appendix C - Readiness Checklists for Moving Up the LadderSign in

  4. Appendix D - GlossarySign in

Part 2

Course Setup and the Incremental Ladder

  1. Course Setup and the Incremental LadderSign in

  2. Why Gestures to ScreensSign in

  3. How to Use This CourseSign in

  4. The Incremental Ladder (Step 0 to Step 7)Sign in

  5. The Course LensesSign in

  6. Diagram Legend and Notation TypesSign in

Part 3

What Is a Mobile Application System?

  1. What Is a Mobile Application System?Sign in

  2. Mobile Apps as Client-Side SystemsSign in

  3. App vs Backend vs Store EcosystemSign in

  4. The Little OS-Native Client ModelSign in

Part 4

Mobile Operating Systems and Process Models

  1. Mobile Operating Systems and Process ModelsSign in

  2. OS Lifecycle IntuitionSign in

  3. Processes, Screens, TasksSign in

  4. Sandboxing and App ContainersSign in

Part 5

App Lifecycles and States

  1. App Lifecycles and StatesSign in

  2. Foreground, Background, Suspended, TerminatedSign in

  3. Lifecycle Callbacks and Safe TransitionsSign in

  4. Preserving State Across RecreationSign in

Part 6

Touch Input and Mobile UI Basics

  1. Touch Input and Mobile UI BasicsSign in

  2. Touch Events and GesturesSign in

  3. Controls and Interaction PrimitivesSign in

  4. Layout SystemsSign in

Part 7

Diagramming Mobile Architectures

  1. Diagramming Mobile ArchitecturesSign in

  2. Navigation Graphs and Screen MapsSign in

  3. Layer and Module DiagramsSign in

  4. Data-Flow DiagramsSign in

Part 8

Building a Single-Screen Experience

  1. Building a Single-Screen ExperienceSign in

  2. One Screen, One ResponsibilitySign in

  3. Orientation, Safe Areas, Accessibility BasicsSign in

  4. Emergent Complexity in "Simple" AppsSign in

Part 9

Lifecycle-Aware UI and State

  1. Lifecycle-Aware UI and StateSign in

  2. Rotation and Process DeathSign in

  3. View State vs Model State vs Persisted StateSign in

  4. Keeping State Minimal but RobustSign in

Part 10

Local-Only Data and Simple Preferences

  1. Local-Only Data and Simple PreferencesSign in

  2. Key-Value StorageSign in

  3. Validation and Feedback LoopsSign in

  4. When Not to NetworkSign in

Part 11

Navigation Primitives

  1. Navigation PrimitivesSign in

  2. Navigation StructuresSign in

  3. Back Behavior and ConventionsSign in

  4. Deep Links and Initial RoutingSign in

Part 12

Passing Data Between Screens

  1. Passing Data Between ScreensSign in

  2. Parameter Passing PatternsSign in

  3. Avoiding Global StateSign in

  4. Back vs Up SemanticsSign in

Part 13

Designing User Flows

  1. Designing User FlowsSign in

  2. Onboarding and Progressive DisclosureSign in

  3. Forms and Multi-Step TasksSign in

  4. Error and Edge-Case FlowsSign in

Part 14

Basic Navigation Architecture Patterns

  1. Basic Navigation Architecture PatternsSign in

  2. Coordinators/Routers/Nav Controllers: separating navigation decisions from rendering logicSign in

  3. Structural Choices (Conceptual): single-activity vs multi-activity-style splits and the coupling they createSign in

  4. Early Navigation Boundaries: preventing navigation from becoming an untestable global side effectSign in

Part 15

Architecture Styles for Mobile Apps

  1. Architecture Styles for Mobile AppsSign in

  2. MVC/MVP/MVVM/MVI and Redux-Like Patterns: what each assumes about state and eventsSign in

  3. Trade-offs: testability, clarity, and performance under real UX constraintsSign in

  4. Choosing for Your Team and Product: matching architecture to iteration speed, risk, and staffing realitySign in

Part 16

Layered Architecture

  1. Layered ArchitectureSign in

  2. Presentation, Domain, Data: defining contracts so refactors don't become rewritesSign in

  3. Boundaries and Interfaces: what crosses layers and what must notSign in

  4. Keeping UI "Dumb": pushing logic downward to reduce lifecycle-driven bugsSign in

Part 17

State Management and View Models

  1. State Management and View ModelsSign in

  2. View Models as State Holders: ownership of screen state and lifecycle-aware computationSign in

  3. Unidirectional Data Flow: reactive patterns and why they tame complexitySign in

  4. Events, Side Effects, Navigation: keeping effects explicit so behavior is testableSign in

Part 18

Local Storage and Caching

  1. Local Storage and CachingSign in

  2. Storage Options: key-value, files, databases and choosing based on access patternsSign in

  3. Schemas and Migrations: evolving stored data without breaking usersSign in

  4. Cache Invalidation on Device: freshness, staleness, and device-local truthSign in

Part 19

Testing and Developer Experience at the Architecture Level

  1. Testing and Developer Experience at the Architecture LevelSign in

  2. Unit Testing View Models and Domain Logic: what to test when UI is mostly plumbingSign in

  3. Mocking Data and Network Sources: isolating layers without losing realismSign in

  4. Test Harnesses and Guardrails: keeping the architecture healthy as features accumulateSign in

Part 20

Networking Fundamentals on Mobile

  1. Networking Fundamentals on MobileSign in

  2. HTTP(S) and Serialization: request/response basics and the shape of mobile API clientsSign in

  3. Request Queues and Retry: background fetch, retry logic and where it can harm UXSign in

  4. Timeouts and Error Mapping: turning technical failures into user-safe messagesSign in

Part 21

Authentication and Sessions

  1. Authentication and SessionsSign in

  2. Token-Based Auth (High Level): sessions, refresh flows, and failure handlingSign in

  3. Secure Storage of Secrets: what belongs in secure storage and whySign in

  4. UX for Expiry: re-auth, degraded mode, and preventing data lossSign in

Part 22

Data Synchronization and Caching

  1. Data Synchronization and CachingSign in

  2. Online-Only vs Cache-Then-Network vs Offline-First: selecting a strategy by product requirementsSign in

  3. Freshness and Timestamps: stale/fresh rules and user-visible consistencySign in

  4. Pull-to-Refresh and Background Sync: manual and automatic refresh as complementary controlsSign in

Part 23

Offline-First Design

  1. Offline-First DesignSign in

  2. Screens Under Partial Connectivity: designing UI that remains coherent when the network disappearsSign in

  3. Write Queues and Replay: capturing intent and applying it safely when onlineSign in

  4. Conflicts and Merge Rules: simple, explicit resolution strategies that preserve user trustSign in

Part 24

Error Handling and Resilience

  1. Error Handling and ResilienceSign in

  2. Error Taxonomy: network/server/local validation and the different remedies each needsSign in

  3. Backoff and Circuit Breaking: preventing cascading failure and battery/network wasteSign in

  4. Communicating Without Overwhelming: resilient UX patterns that keep users orientedSign in

Part 25

Permissions and Privacy

  1. Permissions and PrivacySign in

  2. Permission Flows: rationale prompts, timing, and avoiding "permission fatigue"Sign in

  3. Least Privilege in Product Terms: requesting only what you need and preserving optionalitySign in

  4. Denial and Revocation: designing for changing consent and platform behaviorsSign in

Part 26

Location, Motion, and Orientation

  1. Location, Motion, and OrientationSign in

  2. Location Modes: coarse vs fine, and product accuracy requirementsSign in

  3. Motion Sensors: accelerometer/gyroscope patterns and orientation handlingSign in

  4. Power and Privacy Implications: treating sensor use as an operational budget and consent surfaceSign in

Part 27

Camera, Photos, and Media

  1. Camera, Photos, and MediaSign in

  2. Capture and Gallery Integration: working with system media surfaces safelySign in

  3. Codecs and Processing Basics: compression, resizing, and performance constraintsSign in

  4. UX Around Permissions: expectation-setting and trust when accessing personal mediaSign in

Part 28

Notifications and Background Tasks

  1. Notifications and Background TasksSign in

  2. Local vs Push Notifications: channels, scheduling, and product semanticsSign in

  3. Background Processing Limits: platform constraints and reliable work schedulingSign in

  4. Notifications as Product UX: designing alerts that support outcomes rather than spamSign in

Part 29

Platform Integrations and Extensions

  1. Platform Integrations and ExtensionsSign in

  2. Share Sheets and System Sharing: integrating with OS affordances as part of workflow designSign in

  3. Extensions, Intents, and Custom URLs: deep integration surfaces and their security implicationsSign in

  4. Cross-App Integrations (High Level): auth, payments, and system services as boundary-heavy featuresSign in

Part 30

Performance Fundamentals

  1. Performance FundamentalsSign in

  2. Main Thread vs Background: responsiveness as a hard constraintSign in

  3. Common UI Pitfalls: blocking work, layout churn, and event stormsSign in

  4. Performance Budgets: establishing budgets for views and operations before you need themSign in

Part 31

Rendering, Lists, and Smooth Scrolling

  1. Rendering, Lists, and Smooth ScrollingSign in

  2. Efficient Lists and Recycling: stable scrolling as a "must not regress" featureSign in

  3. Images: loading, decoding, caching and avoiding jankSign in

  4. Layout Thrash and Jank: diagnosing and preventing frame dropsSign in

Part 32

Memory Management and Leaks

  1. Memory Management and LeaksSign in

  2. Object Lifecycles: retention as a hidden system behaviorSign in

  3. Leak Detection Tooling: spotting heavy allocations and long-lived referencesSign in

  4. Anti-Leak Patterns: weak references, scopes, and explicit lifetimesSign in

Part 33

Battery and Network Usage Optimization

  1. Battery and Network Usage OptimizationSign in

  2. Radio Cost Models: cellular and Wi-Fi as energy consumers, not free pipesSign in

  3. Scheduling Background Work: batching, throttling, and cooperating with platform schedulersSign in

  4. Practical Network Discipline: retries, polling avoidance, and cost-aware sync strategiesSign in

Part 34

Startup Time, App Size, and Perceived Performance

  1. Startup Time, App Size, and Perceived PerformanceSign in

  2. Cold, Warm, and Hot Starts: what dominates startup in each modeSign in

  3. Lazy Loading and Modules: on-demand resources and architectural prerequisitesSign in

  4. Perceived Speed: skeleton screens, microcopy, and aligning perception with real workSign in

Part 35

Observability and Performance Monitoring

  1. Observability and Performance MonitoringSign in

  2. Logs, Metrics, and Traces on Mobile: what you can measure and how it differs from server observabilitySign in

  3. Quality Dashboards: ANR, jank, crash rates and turning them into engineering prioritiesSign in

  4. Data-driven refactors: using telemetry to justify architectural and performance workSign in

Part 36

Packaging, Signing, and Store Submission

  1. Packaging, Signing, and Store SubmissionSign in

  2. Bundles, Signing, Provisioning: release artifacts as cryptographically controlled productsSign in

  3. Store Metadata: icons, screenshots, descriptions and the operational workflow around themSign in

  4. Reviews and Compliance: policy constraints as part of architecture and feature planningSign in

Part 37

Release Channels and Rollouts

  1. Release Channels and RolloutsSign in

  2. Tracks and Channels: internal, beta, production and controlling blast radiusSign in

  3. Staged Rollouts and Rollback: designing rollback paths that actually workSign in

  4. Feature Flags and Remote Config: decoupling product iteration from store releasesSign in

Part 38

CI/CD Pipelines for Mobile

  1. CI/CD Pipelines for MobileSign in

  2. Automated Builds and Checks: repeatability as the foundation of release confidenceSign in

  3. Artifact and Config Management: environments, secrets, and build determinismSign in

  4. Store Integration: automating submission and deployment without losing controlSign in

Part 39

Crash Reporting and Analytics

  1. Crash Reporting and AnalyticsSign in

  2. Crash Collection and Triage: symbolication, grouping, and prioritizing by user impactSign in

  3. Analytics and Funnels: designing events that answer product questions without noiseSign in

  4. Privacy and Consent: minimization, transparency, and compliance basicsSign in

Part 40

A/B Testing, Experimentation, and Remote Config

  1. A/B Testing, Experimentation, and Remote ConfigSign in

  2. Experimentation Without Releases: running controlled experiments safely on mobileSign in

  3. Guardrails: preventing experiments from degrading performance, privacy, or user trustSign in

  4. Closing the Loop: using results to drive product decisions and engineering roadmapsSign in

Part 41

Modularization and Large-App Architecture

  1. Modularization and Large-App ArchitectureSign in

  2. Multi-Module Structures: feature modules, core libraries, shared UI and why boundaries matterSign in

  3. Domain Boundaries: aligning modules with product domains to reduce couplingSign in

  4. Dependency Management: avoiding cycles and preventing "one change breaks everything"Sign in

Part 42

Cross-Platform Strategy

  1. Cross-Platform StrategySign in

  2. Native vs Cross-Platform vs Hybrid: capability, performance, and staffing trade-offsSign in

  3. Sharing Business Logic vs UI: where reuse helps and where it creates frictionSign in

  4. Consistency and Divergence: managing design consistency while respecting platform differencesSign in

Part 43

Design Systems, Branding, and Accessibility

  1. Design Systems, Branding, and AccessibilitySign in

  2. Design Tokens and Component Libraries: keeping UI consistent without slowing deliverySign in

  3. Accessibility at Scale: inclusive design as an engineering disciplineSign in

  4. Syncing Design and Implementation: workflows that keep system and product alignedSign in

Part 44

Localization, Internationalization, and Regionalization

  1. Localization, Internationalization, and RegionalizationSign in

  2. Strings, Dates, Numbers, Layouts: the practical surface area of i18nSign in

  3. RTL and Multi-Locale Edge Cases: designing layouts and flows that survive language changesSign in

  4. Release and QA Workflows: testing localized builds without multiplying riskSign in

Part 45

Security, Privacy, and Compliance

  1. Security, Privacy, and ComplianceSign in

  2. Data at Rest and in Transit: protecting user data across device and network boundariesSign in

  3. PII and Permissions: minimizing collection and designing consent-aware data flowsSign in

  4. Threat Modeling for Mobile: attacker models tailored to device compromise, network interception, and abuseSign in

Part 46

Long-Term Evolution and Migration

  1. Long-Term Evolution and MigrationSign in

  2. Handling Breaking Changes: data migrations and deprecations as planned operationsSign in

  3. Managing Technical Debt: refactors, rewrites, and re-skins without resetting product valueSign in

  4. Evolving v1 into a Platform: operational playbooks for long-lived mobile productsSign in

Part 47

Putting It All Together: Reference Mobile Architectures

  1. Putting It All Together: Reference Mobile ArchitecturesSign in

  2. Reference App Archetypes: content app, chat app, offline-first app and their dominant constraintsSign in

  3. Mapping Ladder Steps to Roadmaps: planning growth without skipping necessary capabilitiesSign in

  4. Strategy Checklists: planning and executing a mobile platform strategy end-to-endSign in