Use to flush out intermittent crashes and ANRs ("it crashes sometimes," "fails on slow devices," "happens after rotation a few times") by…
Persistence and offline behaviour: where a value lives, what survives, transactions, migrations, and what happens when the network does…
The object graph: what lives how long, what may depend on what, and when a wiring mistake is discovered.
Bring up an Android app in a headless emulator on Linux/WSL and drive it for automated integration testing, the Android analog of…
Images that arrive at runtime, fetched or picked or decoded: caching, sizing, cancellation, and what a picker actually hands back.
Java on Android without the language features Kotlin has: threading, equality, resource handling, and interoperating with Kotlin.
Use when building Android UIs with Jetpack Compose, managing state with remember/mutableStateOf, or implementing declarative UI patterns.
Use when implementing async operations with Kotlin coroutines, Flow, StateFlow, or managing concurrency in Android apps.
The shape of the layer graph: which layers exist, which way dependencies point, and what each one may touch.
Talking to a server: client configuration, what comes back, what happens when it does not, and how a request is authorised.
Use this skill when capturing or analyzing Android Perfetto traces for app startup, UI jank, freezes, memory, CPU scheduling, binder IPC…
Runtime permissions: whether to ask at all, how to ask, and what the app does with every answer including the silent ones.
Material Design 3 and Android platform guidelines.
Keeping a secret on a device you do not control: key storage, backup, intents, and client-side checks that are signals rather than controls.
What makes a test able to fail for the right reason: the shape of the seam, the scheduler it runs on, and what an assertion is allowed to…
Use Android/Kotlin code as the source of truth and implement the equivalent feature in iOS/Swift.
The View system: layouts, adapters, RecyclerView, ViewBinding, and the seam where a ComposeView sits inside a View hierarchy.
Generates Angular code and provides architectural guidance.
Use when handling async operations in Angular applications with observables, operators, and subjects.
Use when building Angular 16+ applications requiring fine-grained reactive state management and zone-less change detection.
Master modern Angular state management with Signals, NgRx, and RxJS.