Tag: iOS
All the articles with the tag "iOS".
-
Pit Board Reading: Accessibility in Compose Multiplatform
A driver reads the pit board once per lap, at 300 km/h, in under a second. If the board is cluttered, the message is lost. Semantics work the same way: your UI is read by a screen reader, and what it hears depends on what you put on the board.
-
Box, Box: Deep Links in Kotlin Multiplatform
A deep link is the radio call that sends a user straight to one screen, skipping the whole navigation flow. Here's how I handle the parsing in commonMain and keep the platform glue thin on Android and iOS.
-
Torque Spec: Shared Form State and Validation in KMP
The spec says 120 Nm and you already knew that. Knowing the number was never the hard part. My validation rules were already shared. The sixty lines of state around them were not.
-
Fuel Strategy: Paging in Compose Multiplatform
Nobody starts a two-hour race with enough fuel for two hours. You run stints. Paging works the same way, and since 3.3 you can run the whole strategy from commonMain.
-
Change the Map: Feature Flags and Remote Config in Kotlin Multiplatform
A driver changes the engine map from the wheel, mid-race, no pit stop required. Feature flags do the same for your app: change behaviour without shipping a build. Here's how I structure flags and remote config once, in commonMain, for both platforms.
-
The Same System: Advanced expect/actual in KMP
expect/actual is easy until you leave the trivial expect fun behind. Here's what bites with expect classes, constructors, actual typealiases, and the compiler rules nobody warns you about.
-
Safety Car: Coroutine Exception Handling in KMP
An uncaught coroutine exception crashes your KMP app on both platforms, and the platform safety nets don't extend to iOS. Here's how I build crash boundaries in commonMain.
-
Through the Lens: Barcode Scanning in Compose Multiplatform
expect/actual isn't just for business logic. Here's how to build a shared barcode scanner Composable that reads through any platform's lens.
-
KMP Splash: How I Stopped Opening Xcode for Splash Screens
The pit crew was always there. I just had to build it: a Gradle plugin that automates iOS and Android splash screen setup from a single config block.
-
Drop the Clutch: Three Metro DI Patterns Every KMP Developer Should Know
Metro drops the clutch on runtime DI errors. Three patterns in a real KMP app: binding contributions, platform graphs, and child scopes.