Skip to content

Releases: stephenWanjala/Multiply

Release Build #25

Choose a tag to compare

@github-actions github-actions released this 29 Jun 08:51
3893e03
feat: Add predictive back gesture support across game screens

- Implement PredictiveBackHandler with visual feedback using graphicsLayer
- Add smooth back animation with scaling, translation, and fade effects
- Handle back navigation states including game pause, exit confirmation
- Add exit confirmation dialog for quiz mode to prevent accidental progress loss
- Bump Gradle to 9.6.0 and enable R8 gradual support

Release Build #24

Choose a tag to compare

@github-actions github-actions released this 13 May 07:34
95ccaa9

Release build 24 Notes

Quiz Mode Improvements

Enhanced Question Generation

  • Questions are now deduplicated to prevent repeats within the same quiz session
  • Expanded exponential question variety with new base/exponent combinations (2³ through 12³)
  • Added fallback mechanism to ensure requested question count is always met

Level Progression

  • Players can now advance directly to the next difficulty level after completing a quiz
  • Next level button appears on the recap screen when a higher difficulty is available
  • Dynamic button text shows the upcoming level name (e.g., "Next Level: expert")

UI Refinements

  • Question text now scales responsively based on length (44sp → 26sp for long questions)
  • Fixed layout constraints for answer options in scrollable containers
  • Renamed "Try Again" button to "Play Again" for clearer messaging
  • Recap screen buttons restructured to accommodate new next level action
    Full Changelog: v23...v24

Release Build #23

Choose a tag to compare

@github-actions github-actions released this 09 May 11:47
bc8f2f1

Release Build #23 Release Notes

whats New: Theme Customization & Dedicated App Settings

  • Choose your theme
    Pick from Space, Jungle , Ocean , Candy , and Dynamic (Android 12+) themes..

  • App Settings screen
    A gear icon on the home screen now opens a dedicated App Settings screen for theme and audio preferences, separate from the in-game Bubble settings.

  • Clean up settings


Under the Hood

  • Theme selection persisted via DataStore and restored on relaunch
  • Dynamic color support on Android 12+ devices
  • App-level and game-level settings now live in separate navigation destinations
  • Removed adaptive layout branching and unused audio toggle placeholders from Bubble settings
    Full Changelog: v22...v23

Release Build #22

Choose a tag to compare

@github-actions github-actions released this 22 Apr 19:24
9529cc7

What's new

  • Timed Mode for quizzes — beat the countdown on every question
  • Animated timer ring, low-time alerts, and streak tracking
  • Answers auto-advance and reveal the correct choice instantly
  • New in-quiz settings sheet to toggle Timed Mode on or off
  • Timed-out questions now show up separately in your recap

Full Changelog: v21...v22

Release Build #21

Choose a tag to compare

@github-actions github-actions released this 17 Apr 09:15
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

Release Build #19

Choose a tag to compare

@stephenWanjala stephenWanjala released this 19 Jan 12:03
e896739
build: Upgrade Compose BOM, Koin, and Material3 dependencies

- Update `composeBom` to `2026.01.00`.
- Upgrade `koin-bom` to `4.2.0-beta3`.
- Update `material3` to `1.5.0-alpha12`.

Release Build #18

Choose a tag to compare

@stephenWanjala stephenWanjala released this 13 Jan 10:28
9edb891
v18

design: Shrink application png assets

Release Build #17

Choose a tag to compare

@stephenWanjala stephenWanjala released this 18 Dec 10:58
32c2a28
refactor: Migrate from Hilt to Koin and optimize custom modifiers

- Replace Dagger Hilt with Koin for dependency injection; updated `MultiplyApp` to initialize Koin and converted `AppModule` to use Koin DSL.
- Update ViewModels (`GameViewModel`, `QuestionsViewModel`) to remove Hilt annotations and switch navigation injection to `koinViewModel`.
- Refactor `neumorphicShadow` custom modifier to use the `Modifier.Node` API (via `ModifierNodeElement` and `DrawModifierNode`) instead of `composed` for improved performance.
- Upgrade `kotlin` to `2.3.0` and `agp` to `8.13.2`.
- Bump `composeBom` to `2025.12.01`, `material3` to `1.5.0-alpha11`, and `activityCompose` to `1.12.2`.
- Add `com.github.skydoves.compose.stability.analyzer` plugin to build scripts.

Release Build #16

Choose a tag to compare

@stephenWanjala stephenWanjala released this 05 Dec 14:28
c870426
build: Upgrade Gradle to 9.2.1 and overhaul R8 optimizations

- Upgrade Gradle Wrapper to `9.2.1` and update accompanying shell scripts.
- Enable R8 full mode and optimized resource shrinking in `gradle.properties`.
- Rewrite `proguard-rules.pro` to apply aggressive optimizations, strip `android.util.Log` calls, and remove Kotlin intrinsic null checks.
- Update dependencies: `composeBom` to `2025.12.00`, `material3` to `1.5.0-alpha10`, `activityCompose` to `1.12.1`, and `kotlinxSerialization` to `3.3.3`.
- Remove deprecated `release.sh` and `release-notes.md` files.
- Update application assets, including launcher icons and mascot images.

Release Build #15

Choose a tag to compare

@stephenWanjala stephenWanjala released this 19 Nov 21:53
154dc02
build: Upgrade dependencies and refine Kotlin compiler options

- Bump `lifecycleRuntimeKtx` to `2.10.0` and `activityCompose` to `1.12.0`.
- Update `composeBom` to `2025.11.01` and `material3` to `1.5.0-alpha09`.
- Upgrade `datastorePreferences` to `1.2.0`.
- Migrate `kotlinOptions` to the newer `kotlin.compilerOptions` block in `app/build.gradle.kts` using `JvmTarget`.
- Add `-Xannotation-default-target=param-property` to free compiler args.