Engineering topic / Jeffrey Monica
Android internals, Kotlin, and integrity signals
On Android, lifecycle cancellation, authentication state, and integrity evidence intersect in ways that are easy to miss in happy-path tests. These are practical reference notes rather than claims about specific shipped apps.
Key engineering considerations
Integrity verdicts
Validate request details, package identity, freshness and the server's policy, rather than blindly trusting a boolean.
Structured concurrency
Tie work to the appropriate scope, preserve cancellation and avoid orphaned operations during navigation.
Platform credential UX
Handle passkeys and recovery without converting success on the UI into an implicit authorization decision.
Articles and reference guides
Android Play Integrity request binding and backend verdict policyWhat requestHash protects, what the server must verify, and why an integrity verdict is not a substitute for authorization.Device integrity is not authorization: an App Attest and Play Integrity decision modelHow to separate mobile attestation evidence from identity, request authorization, and server-side replay controls.Kotlin coroutine cancellation and lifecycle boundaries on AndroidAvoid orphaned jobs and stale UI state by understanding cooperative cancellation, scopes, and background work.Mobile session recovery as an explicit state machineModel sign-in, refresh rotation, expiry, step-up recovery, and revocation without creating a hidden authentication bypass.
Try it yourself
Device trust & replay labChange challenge age, replay state, signature verification, request binding, and assertion counters to see which server-side checks fail.Authentication state machineTrigger sign-in, expiry, refresh, revocation, and recovery. See permitted transitions and why recovery must not silently bypass step-up.