Skip to content

Release Build #21

Choose a tag to compare

@github-actions github-actions released this 17 Apr 09:15
· 8 commits to master since this release
1402746

Multiply v21 — Release Notes

A big refresh focused on a cleaner, more consistent look across the entire game — plus a major build tooling upgrade and a tidier architecture underneath.

✨ What's new

A refreshed look and feel

Every screen has been rebuilt with a cleaner, more playful design system.

  • Welcome screen — new hero card with an animated mascot, a dedicated high score banner, and a pulsating Play button that reacts to your latest stats.
  • Game mode selection — replaced the heavy neumorphic cards with a bright hero header and a step-by-step mode → difficulty flow.
  • How to Play — bullet lists are out; clear, icon-led step cards are in.
  • Settings — reorganized into tidy sections with tile-based difficulty and theme pickers, plus cleaner audio toggles.
  • Bubble Mode gameplay — a new HUD bar with stat chips, a redesigned spherical math bubble with a countdown progress ring, a simpler pause overlay, and a friendlier game-over dialog with animated score counting.
  • Quiz Mode — polished question cards, new answer tiles with a satisfying selection stripe, a circular score indicator, and streamlined question-by-question recap rows.

Redesigned recap and celebrations

  • New star rating system (up to 3 stars) based on your accuracy.
  • Animated score counter and circular progress ring.
  • Stat cards showing correct, wrong, and accuracy at a glance.
  • Confetti effects when you do well. 🎉
  • Haptic feedback on score milestones.

Typography and color refresh

  • Comic Sans has been retired in favor of the Nunito font family across the whole app.
  • New vibrant Material 3 color scheme with improved light and dark theme support.
  • A new MultiplyColors semantic palette (success, warning, star, etc.) for consistent meaning across screens.

A proper design system

Introduced a reusable set of building blocks:

  • AnimatedFloatingSymbolsBackground
  • MultiplyButton, MultiplyCard, MultiplyStaticCard, MultiplyDialog
  • A shared Spacing system so everything lines up the way it should.

🔧 Under the hood

New architecture

  • New GamePreferencesRepository centralizes all high score and difficulty settings via DataStore.
  • Both GameViewModel (Bubble Mode) and QuestionsViewModel (Quiz Mode) now use this repository.
  • Migrated from the older onAction pattern to an MVI-style onEvent + effects (Channel) approach — cleaner state handling and better separation of one-shot side effects.
  • Navigation renamed from MutiplyNav → MultiplyNav and updated for the new event-based ViewModels.
  • Utility classes (Particle, BitmapFromDrawable, RandomOffset) moved from utlis → util.

Build tooling upgrade

  • AGP 8.13.2 → 9.1.1
  • Kotlin 2.3.0 → 2.3.20
  • Gradle 9.2.1 → 9.4.1
  • kotlinx.serialization → 3.4.0
  • Koin BOM → 4.2.0-beta4
  • Also bumped: Compose BOM, Material3, Navigation Compose, and other dependencies.
  • Migrated to the new Android DSL: compileSdk { version = release(37) }, targetSdk 37, android.builtInKotlin, android.newDsl.
  • Dropped the standalone kotlin-android plugin (now built in via android.builtInKotlin).
  • Added foojay-resolver-convention for automatic JDK toolchain provisioning.

CI improvements

  • The release workflow in .github/workflows/build-signed-apk.yml now uses job-level contents: write permissions instead of an explicit GITHUB_TOKEN.

Full Changelog: v19...v21