top of page
droidcon+icon.png

7-9 OCT. 2026

BERLIN

DroidCon_icon_rotatet.png
Anita_Singh_edited.jpg

( SPEAKER )

Anton Sinitsyn

Senior Android Engineer

-

I'm a Senior Android Engineer with 10 years of experience shipping native apps to millions of users. At Reddit, I owned the client-side architecture for Collectible Avatars and designed the Android WebView runtime for Custom Posts, enabling interactive experiences - including games and purchases - to run securely inside the app.

Session

Complex Flows on Android: Explicit State Machines under MVI

MVI with a single immutable state works well for screens that display things, but it creaks on screens that run multi-step processes: payments, uploads with retries, real-time connections, onboarding flows. Boolean flags multiply, illegal state combinations slip into production, and the actual flow logic ends up scattered across callbacks. In this talk, I will show how to model such flows as explicit finite state machines in pure Kotlin — sealed phase types that make illegal states unrepresentable, a single pure transition function that returns both the next phase and side effects as data, and a Channel-based event loop that serializes transitions and eliminates race conditions between network callbacks and timeouts. I then will demonstrate how the machine slots cleanly under existing MVI/MVVM architecture, with view state derived from the machine phase, and how purity unlocks exhaustive phase-by-event testing, production replay debugging, and process-death recovery. The talk closes with concrete criteria for when an FSM pays off and when plain MVI is enough. All examples are framework-free Kotlin built on Coroutines and Flow.
bottom of page