Learning Android
Picking up native Android by building 1-1-2, a boxercise drill timer with voice callouts written in Kotlin and Jetpack Compose. Each slice breaks off a chunk of the work.
- Slice 1
Kotlin for JS Devs
Pure Kotlin, no Android. The language pieces a JavaScript developer needs to read and write Android code, with a translation exercise at the end.
- Slice 2
Android Studio, Gradle & First Screen
Scaffold the app, render a hardcoded "Start Workout" button, see the activity lifecycle log on launch and rotation.
- Slice 3
Compose & the Config Screen
Workout config screen with number inputs for rounds, round length, rest length. Composables, modifiers, state hoisting, and previews.
- Slice 4
ViewModel & StateFlowComing soon
Move config state into a ViewModel. Drill list editor.
- Slice 5
Timers Done RightComing soon
Round countdown screen. Bell at start and end. CountDownTimer vs coroutines.
- Slice 6
Text-to-Speech for Voice CalloutsComing soon
Hook up Android TTS. Drill callouts during a round.
- Slice 7
Foreground ServicesComing soon
Workout keeps running when the screen is off or the app backgrounds.
- Slice 8
Persisting with RoomComing soon
Save workout templates locally. Room vs Prisma comparison.
- Slice 9
Polish: Haptics, Audio Focus, Wake LockComing soon
Buzz on bell, behave when Spotify is playing, keep the screen on during a workout.
- Slice 10
Publishing to the Play StoreComing soon
Signing, ProGuard / R8, Play Console basics, security checklist.