/ React Native / Phase 8 Phase 8 Days 40-47
Native Toolchains, Widgets & Custom Capabilities Android Studio, ADB, Gradle, Xcode, CocoaPods, development builds, widgets, Expo Modules, Swift, and Kotlin
Phase Goal Understand and debug both native build systems before crossing the JavaScript-native boundary or shipping platform extensions.
Day 40: Android Studio, SDK Manager, Emulator & ADB
Android Studio projects, SDK platforms, build tools, JDK, and environment variables Build the mental model for Android Studio projects, SDK platforms, build tools, JDK, and environment variables Implement Android Studio projects, SDK platforms, build tools, JDK, and environment variables in a small typed example Apply Android Studio projects, SDK platforms, build tools, JDK, and environment variables to a realistic mobile product flow Debug the platform-specific failure modes of Android Studio projects, SDK platforms, build tools, JDK, and environment variables
AVD images, hardware profiles, snapshots, networking, and performance Build the mental model for AVD images, hardware profiles, snapshots, networking, and performance Implement AVD images, hardware profiles, snapshots, networking, and performance in a small typed example Apply AVD images, hardware profiles, snapshots, networking, and performance to a realistic mobile product flow Debug the platform-specific failure modes of AVD images, hardware profiles, snapshots, networking, and performance
ADB devices, install/uninstall, shell, reverse, ports, files, permissions, and deep links Build the mental model for ADB devices, install/uninstall, shell, reverse, ports, files, permissions, and deep links Implement ADB devices, install/uninstall, shell, reverse, ports, files, permissions, and deep links in a small typed example Apply ADB devices, install/uninstall, shell, reverse, ports, files, permissions, and deep links to a realistic mobile product flow Debug the platform-specific failure modes of ADB devices, install/uninstall, shell, reverse, ports, files, permissions, and deep links
Logcat filters, process crashes, ANRs, device debugging, and recovery workflow Build the mental model for Logcat filters, process crashes, ANRs, device debugging, and recovery workflow Implement Logcat filters, process crashes, ANRs, device debugging, and recovery workflow in a small typed example Apply Logcat filters, process crashes, ANRs, device debugging, and recovery workflow to a realistic mobile product flow Debug the platform-specific failure modes of Logcat filters, process crashes, ANRs, device debugging, and recovery workflow
Day 41: Gradle & the Android Build from Scratch
Gradle wrapper, settings, root/app build files, plugins, repositories, and dependency resolution Build the mental model for Gradle wrapper, settings, root/app build files, plugins, repositories, and dependency resolution Implement Gradle wrapper, settings, root/app build files, plugins, repositories, and dependency resolution in a small typed example Apply Gradle wrapper, settings, root/app build files, plugins, repositories, and dependency resolution to a realistic mobile product flow Debug the platform-specific failure modes of Gradle wrapper, settings, root/app build files, plugins, repositories, and dependency resolution
Tasks, variants, build types, product flavors, manifests, resources, and generated sources Build the mental model for Tasks, variants, build types, product flavors, manifests, resources, and generated sources Implement Tasks, variants, build types, product flavors, manifests, resources, and generated sources in a small typed example Apply Tasks, variants, build types, product flavors, manifests, resources, and generated sources to a realistic mobile product flow Debug the platform-specific failure modes of Tasks, variants, build types, product flavors, manifests, resources, and generated sources
Application ID, versioning, signing configs, ProGuard/R8, shrinking, and mapping files Build the mental model for Application ID, versioning, signing configs, ProGuard/R8, shrinking, and mapping files Implement Application ID, versioning, signing configs, ProGuard/R8, shrinking, and mapping files in a small typed example Apply Application ID, versioning, signing configs, ProGuard/R8, shrinking, and mapping files to a realistic mobile product flow Debug the platform-specific failure modes of Application ID, versioning, signing configs, ProGuard/R8, shrinking, and mapping files
Build cache, daemon, dependency conflicts, stack traces, APK/AAB inspection, and CI diagnosis Build the mental model for Build cache, daemon, dependency conflicts, stack traces, APK/AAB inspection, and CI diagnosis Implement Build cache, daemon, dependency conflicts, stack traces, APK/AAB inspection, and CI diagnosis in a small typed example Apply Build cache, daemon, dependency conflicts, stack traces, APK/AAB inspection, and CI diagnosis to a realistic mobile product flow Debug the platform-specific failure modes of Build cache, daemon, dependency conflicts, stack traces, APK/AAB inspection, and CI diagnosis
Day 42: Xcode, Simulator, Devices & Native Debugging
Xcode workspace/project, schemes, targets, build settings, and configurations Build the mental model for Xcode workspace/project, schemes, targets, build settings, and configurations Implement Xcode workspace/project, schemes, targets, build settings, and configurations in a small typed example Apply Xcode workspace/project, schemes, targets, build settings, and configurations to a realistic mobile product flow Debug the platform-specific failure modes of Xcode workspace/project, schemes, targets, build settings, and configurations
Simulator runtimes, physical-device pairing, Developer Mode, console, and Instruments Build the mental model for Simulator runtimes, physical-device pairing, Developer Mode, console, and Instruments Implement Simulator runtimes, physical-device pairing, Developer Mode, console, and Instruments in a small typed example Apply Simulator runtimes, physical-device pairing, Developer Mode, console, and Instruments to a realistic mobile product flow Debug the platform-specific failure modes of Simulator runtimes, physical-device pairing, Developer Mode, console, and Instruments
Bundle identifiers, teams, certificates, provisioning profiles, entitlements, and keychain Build the mental model for Bundle identifiers, teams, certificates, provisioning profiles, entitlements, and keychain Implement Bundle identifiers, teams, certificates, provisioning profiles, entitlements, and keychain in a small typed example Apply Bundle identifiers, teams, certificates, provisioning profiles, entitlements, and keychain to a realistic mobile product flow Debug the platform-specific failure modes of Bundle identifiers, teams, certificates, provisioning profiles, entitlements, and keychain
DerivedData, build logs, crash symbols, archive validation, and native failure isolation Build the mental model for DerivedData, build logs, crash symbols, archive validation, and native failure isolation Implement DerivedData, build logs, crash symbols, archive validation, and native failure isolation in a small typed example Apply DerivedData, build logs, crash symbols, archive validation, and native failure isolation to a realistic mobile product flow Debug the platform-specific failure modes of DerivedData, build logs, crash symbols, archive validation, and native failure isolation
Day 43: CocoaPods, Swift Packages & the iOS Build
Podfile, podspec, lockfile, workspace generation, and dependency resolution Build the mental model for Podfile, podspec, lockfile, workspace generation, and dependency resolution Implement Podfile, podspec, lockfile, workspace generation, and dependency resolution in a small typed example Apply Podfile, podspec, lockfile, workspace generation, and dependency resolution to a realistic mobile product flow Debug the platform-specific failure modes of Podfile, podspec, lockfile, workspace generation, and dependency resolution
Static/dynamic frameworks, modular headers, deployment targets, and architecture slices Build the mental model for Static/dynamic frameworks, modular headers, deployment targets, and architecture slices Implement Static/dynamic frameworks, modular headers, deployment targets, and architecture slices in a small typed example Apply Static/dynamic frameworks, modular headers, deployment targets, and architecture slices to a realistic mobile product flow Debug the platform-specific failure modes of Static/dynamic frameworks, modular headers, deployment targets, and architecture slices
Swift Package Manager awareness and choosing one dependency path
pod install/update judgment, cache traps, linker errors, and reproducible CI installs Build the mental model for pod install/update judgment, cache traps, linker errors, and reproducible CI installs Implement pod install/update judgment, cache traps, linker errors, and reproducible CI installs in a small typed example Apply pod install/update judgment, cache traps, linker errors, and reproducible CI installs to a realistic mobile product flow Debug the platform-specific failure modes of pod install/update judgment, cache traps, linker errors, and reproducible CI installs
Day 44: Expo Go, Development Builds, Prebuild & Config Plugins
Expo Go limitations and development-client mental model
Continuous Native Generation, prebuild, generated-project ownership, and clean regeneration Build the mental model for Continuous Native Generation, prebuild, generated-project ownership, and clean regeneration Implement Continuous Native Generation, prebuild, generated-project ownership, and clean regeneration in a small typed example Apply Continuous Native Generation, prebuild, generated-project ownership, and clean regeneration to a realistic mobile product flow Debug the platform-specific failure modes of Continuous Native Generation, prebuild, generated-project ownership, and clean regeneration
app config, identifiers, permissions, plugins, mods, idempotency, and rebuild triggers Build the mental model for app config, identifiers, permissions, plugins, mods, idempotency, and rebuild triggers Implement app config, identifiers, permissions, plugins, mods, idempotency, and rebuild triggers in a small typed example Apply app config, identifiers, permissions, plugins, mods, idempotency, and rebuild triggers to a realistic mobile product flow Debug the platform-specific failure modes of app config, identifiers, permissions, plugins, mods, idempotency, and rebuild triggers
Local Android/iOS builds versus EAS builds and reproducible configuration
Day 45: Home-Screen Widgets, Live Activities & App Extensions
Widget lifecycle, timeline/provider mental model, shared data, refresh budgets, and platform limits Build the mental model for Widget lifecycle, timeline/provider mental model, shared data, refresh budgets, and platform limits Implement Widget lifecycle, timeline/provider mental model, shared data, refresh budgets, and platform limits in a small typed example Apply Widget lifecycle, timeline/provider mental model, shared data, refresh budgets, and platform limits to a realistic mobile product flow Debug the platform-specific failure modes of Widget lifecycle, timeline/provider mental model, shared data, refresh budgets, and platform limits
Android App Widgets with Glance/RemoteViews and iOS WidgetKit with SwiftUI
Deep links, app groups/shared storage, background refresh, and stale-widget UX Build the mental model for Deep links, app groups/shared storage, background refresh, and stale-widget UX Implement Deep links, app groups/shared storage, background refresh, and stale-widget UX in a small typed example Apply Deep links, app groups/shared storage, background refresh, and stale-widget UX to a realistic mobile product flow Debug the platform-specific failure modes of Deep links, app groups/shared storage, background refresh, and stale-widget UX
Live Activities and Dynamic Island awareness, configuration plugins, testing, and store constraints Build the mental model for Live Activities and Dynamic Island awareness, configuration plugins, testing, and store constraints Implement Live Activities and Dynamic Island awareness, configuration plugins, testing, and store constraints in a small typed example Apply Live Activities and Dynamic Island awareness, configuration plugins, testing, and store constraints to a realistic mobile product flow Debug the platform-specific failure modes of Live Activities and Dynamic Island awareness, configuration plugins, testing, and store constraints
Day 46: Expo Modules API, Swift/Kotlin & Brownfield Boundaries
JSI-era native boundary, serialization, threads, Codegen awareness, and lifecycle Build the mental model for JSI-era native boundary, serialization, threads, Codegen awareness, and lifecycle Implement JSI-era native boundary, serialization, threads, Codegen awareness, and lifecycle in a small typed example Apply JSI-era native boundary, serialization, threads, Codegen awareness, and lifecycle to a realistic mobile product flow Debug the platform-specific failure modes of JSI-era native boundary, serialization, threads, Codegen awareness, and lifecycle
Module functions, async functions, events, views, errors, and typed contracts Build the mental model for Module functions, async functions, events, views, errors, and typed contracts Implement Module functions, async functions, events, views, errors, and typed contracts in a small typed example Apply Module functions, async functions, events, views, errors, and typed contracts to a realistic mobile product flow Debug the platform-specific failure modes of Module functions, async functions, events, views, errors, and typed contracts
Matching Swift and Kotlin implementation, native UI composition, and tests
Platform-specific TSX versus module versus brownfield integration decisions
Day 47: Mini Project — Quiet Space Signal
Custom Expo module exposing ambient-level bands and typed events
Android/iOS widget showing a stale-tolerant quiet-period summary
Config plugin, shared storage, Gradle/Xcode integration, and development builds Build the mental model for Config plugin, shared storage, Gradle/Xcode integration, and development builds Implement Config plugin, shared storage, Gradle/Xcode integration, and development builds in a small typed example Apply Config plugin, shared storage, Gradle/Xcode integration, and development builds to a realistic mobile product flow Debug the platform-specific failure modes of Config plugin, shared storage, Gradle/Xcode integration, and development builds
Project requirements, constraints & review Build the mental model for Project constraints, native-debug proof, transfer change, and compatibility contract Implement Project constraints, native-debug proof, transfer change, and compatibility contract in a small typed example Apply Project constraints, native-debug proof, transfer change, and compatibility contract to a realistic mobile product flow Debug the platform-specific failure modes of Project constraints, native-debug proof, transfer change, and compatibility contract
Quiet Space Signal Create a privacy-preserving study-space app that classifies short on-device ambient samples into quiet, moderate, or loud bands without recording or retaining audio. Matching Android and iOS widgets show the last completed sampling window and its age.
Expo module with equivalent Swift/Kotlin contracts, lifecycle cleanup, typed events, errors, and permission-free fixture mode Android App Widget and iOS WidgetKit extension using small shared summaries, deep links, refresh budgets, and stale labels Idempotent config plugin plus ADB, logcat, Gradle, Xcode, CocoaPods, archive, and development-build evidence Transfer: add a native preference that changes band thresholds on both platforms and migrates old shared dataAfter this phase, you'll be able to:
Android Studio projects, SDK platforms, build tools, JDK, and environment variables AVD images, hardware profiles, snapshots, networking, and performance ADB devices, install/uninstall, shell, reverse, ports, files, permissions, and deep links Logcat filters, process crashes, ANRs, device debugging, and recovery workflow Gradle wrapper, settings, root/app build files, plugins, repositories, and dependency resolution Tasks, variants, build types, product flavors, manifests, resources, and generated sources Application ID, versioning, signing configs, ProGuard/R8, shrinking, and mapping files Build cache, daemon, dependency conflicts, stack traces, APK/AAB inspection, and CI diagnosis You can apply Phase 8 skills in a tested mobile project on Android and iOS.