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.

  1. 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.

  2. 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.

  3. Slice 3

    Compose & the Config Screen

    Workout config screen with number inputs for rounds, round length, rest length. Composables, modifiers, state hoisting, and previews.

  4. Slice 4

    ViewModel & StateFlowComing soon

    Move config state into a ViewModel. Drill list editor.

  5. Slice 5

    Timers Done RightComing soon

    Round countdown screen. Bell at start and end. CountDownTimer vs coroutines.

  6. Slice 6

    Text-to-Speech for Voice CalloutsComing soon

    Hook up Android TTS. Drill callouts during a round.

  7. Slice 7

    Foreground ServicesComing soon

    Workout keeps running when the screen is off or the app backgrounds.

  8. Slice 8

    Persisting with RoomComing soon

    Save workout templates locally. Room vs Prisma comparison.

  9. Slice 9

    Polish: Haptics, Audio Focus, Wake LockComing soon

    Buzz on bell, behave when Spotify is playing, keep the screen on during a workout.

  10. Slice 10

    Publishing to the Play StoreComing soon

    Signing, ProGuard / R8, Play Console basics, security checklist.