BlogForbes' shared Kotlin layer learns to play a game
Forbes' shared Kotlin layer learns to play a game

Frase, Forbes' daily word puzzle, has been on the web for a while. This week it comes to the mobile app, and for signed-in readers, progress now syncs between web and mobile instead of living separately on each.
The mobile side is built the same way the rest of the app is built: shared Kotlin underneath, native UI on top (Jetpack Compose on Android, SwiftUI on iOS). The game itself, scoring, puzzle state, streaks, the archive of past days, lives once in that shared layer instead of twice, so iOS and Android show the same score for the same guess because they're running the same code.
Frase also plays offline. You can solve the puzzle with no signal, and the result syncs quietly once you're back online: to the server, and from there across whichever device or platform you pick up next.
It's a small proof point for the architecture: once behavior lives in one shared place, extending an existing web feature to two more platforms, with state that now follows the reader instead of the device, is an extension of the existing pattern, not a new one.