• v3.0.1 f6c11ad2e1

    Release 3.0.1 Stable

    admslader released this 2026-10-23 18:10:12 -04:00 | 0 commits to main since this release

    What's New in v3.0.1

    Fixes the app hanging on its loading screen after installing v3.0.0.

    🐛 Fixes

    • Fix the app staying on the loading spinner after a fresh install
    • Fix the release build stripping classes the storage plugin needs at startup

    🛠️ Technical Improvements

    • Upgrade shared_preferences_android to 2.5.3 for its consumer R8 rules
    • Add an app-boot smoke test so the loading state is covered
    Downloads
  • v3.0.0 1c9c40f6bf

    Release 3.0.0 Stable

    admslader released this 2026-10-23 15:45:51 -04:00 | 2 commits to main since this release

    What's New in v3.0.0

    Nyra arrives with a new name, a new launcher icon, and a one-time migration to a new Android identity.

    📦 One-Time Reinstall Required

    • This release moves the app to the cloud.keyworks.nyra identity, so it cannot update in place
    • Export a backup first: Settings → Data Management → Export Backup
    • Uninstall the old app, then install nyra.apk from this release
    • Import the backup: Settings → Data Management → Import Backup
    • Your lists, history and preferences restore cleanly, and later releases update in place as usual

    🎨 A New Name and Icon

    • Welcome Nyra, the app's new name and part of Keyworks Technology
    • Meet the new adaptive launcher icon on Android 8+, with matching legacy and round icons
    • Match the icon on iOS, macOS, web and Windows with the same artwork
    • See the new name in the app title, About screen, update messages and backup labels

    🔐 Security Hardening

    • Updates now fail closed: a missing or invalid signature aborts the install
    • Download every update over HTTPS from the release host only, with redirects re-validated
    • Reject oversized downloads and metadata before anything is written to disk
    • Refuse to build a release without the app's signing keystore

    🧹 Cleanup

    • Cap imported list files at 1 MiB and backup files at 10 MiB, and require backup values to be strings
    • Remove the unused url_launcher and cupertino_icons dependencies
    • Rename storage keys, the update channel and the release artifact to the Nyra name

    🛠️ Technical Improvements

    • Migrate the Android applicationId and namespace to cloud.keyworks.nyra
    • Rename the Dart package to nyra and the root widget to NyraApp
    • Move the Forgejo repo to admslader/nyra and the release artifact to nyra.apk
    • Add tests for backup key mapping and the release signature verifier
    Downloads
  • v2.0.1 c151d62ecc

    Release 2.0.1 Stable

    admslader released this 2026-10-16 16:14:01 -04:00 | 14 commits to main since this release

    What's New in v2.0.1

    A smaller, snappier release — faster updates, a couple of fixes, and a much
    lighter download.

    ✨ Polish

    • Tap the app version in Settings → About to read the latest release notes
    • Bigger ⋮ overflow menus, easier to hit

    🐛 Fixes

    • The delete “Undo” bar now disappears on its own instead of staying on screen
    • The “Clear all history” confirmation reads properly instead of repeating itself

    ⚡ Performance & Size

    • Updates no longer rebuild the app theme on every change, and state is written
      to disk in one debounced write instead of on every keystroke
    • The release APK is now arm64-only — about 20 MB instead of 56 MB

    🛠️ Technical Improvements

    • The updater detects a signing-key change and asks for a manual reinstall
      instead of launching an installer that would fail
    • Documented the SnackBar persist gotcha and the release-build conventions
    Downloads
  • v2.0.0 f22e259e3d

    Release 2.0.0 Stable

    admslader released this 2026-10-16 11:47:24 -04:00 | 25 commits to main since this release

    What's New in v2.0.0

    This release hardens the app's security and tidies the home screen — and it
    changes the app's identity, so it has to be installed fresh.

    ⚠️ One-time reinstall required

    This build is signed with a new key and uses a new Android package name
    (cloud.sladertech.shopping_list), so Android treats it as a different app and
    it cannot update in place. To move over without losing your lists:

    1. In the current app: Settings → Data Management → Export Backup
    2. Uninstall the app
    3. Install shopping_list.apk from this release
    4. Open it: Settings → Data Management → Import Backup

    Your lists are only kept if you export a backup first — uninstalling clears the
    app's data. The in-app updater cannot apply this release.

    🔒 Safer Updates

    • Update downloads are pinned to the release host over HTTPS, size-capped, and
      time-bounded
    • The app now checks the downloaded APK's version, so an older signed build
      can't be served as an update
    • Releases are signed with the app's own keystore instead of the shared debug key

    🧹 Tidier Home Screen

    • The six app-bar buttons are now a single overflow menu

    🛠️ Technical Improvements

    • New Android package name and a dedicated release signing config
    • Backup import only restores known settings
    • Cleartext traffic is blocked and app data is excluded from device backups
    • Release builds are minified and resource-shrunk
    • Removed stray Gradle build logs from the repository
    Downloads
  • v1.2.0 3206e79822

    Release 1.2.0 Stable

    admslader released this 2026-10-15 16:14:35 -04:00 | 29 commits to main since this release

    What's New in v1.2.0

    This release gives the app a fresh, modern look shared with the other Sladertech
    apps, and makes sideloaded updates safer by verifying every download.

    🎨 A Fresh Look

    • A new palette — cool slate with a sage-green accent — in both light and dark
    • A new typeface — Inter — with even-width digits so prices and totals line up
    • Rounder, more consistent cards, dialogs, and inputs
    • Clearer status colours: over-budget reads red, under-budget reads green

    🔒 Safer Updates

    • The app now verifies each update's signature before installing it
    • A tampered or unsigned update is refused instead of installed

    🛠️ Technical Improvements

    • Adopted the shared Slate + Sage design system (colours, spacing, and typography tokens)
    • Bundled the Inter font with the app so it looks right on every device
    • Wired the app into the Command Center release pipeline with signed APK releases
    • Added a unit test for release-signature verification
    Downloads
  • v1.1.3 7f7dd64235

    admslader released this 2026-08-25 11:25:45 -04:00 | 35 commits to main since this release

    What's New in v1.1.3

    This release focuses on reliability and polish, fixing a backup/restore issue and making the app more robust day-to-day.

    🛡️ Safer Data Loading

    • The app now handles corrupted or unreadable saved data gracefully instead of crashing on startup
    • If something goes wrong, it falls back to a fresh default list so you're never locked out

    💾 Backup & Restore Fix

    • Fixed a bug where restoring a backup didn't actually restore your data
    • Backups now correctly restore all lists, history, frequent items, theme, and language preferences

    📥 More Robust List Import

    • Importing shared lists is now more tolerant of different formats
    • Decimal quantities (like 2.5) are supported
    • Purchased status is now preserved when importing a shared list

    ⭐ Frequent Items Stay Saved

    • Frequent items now persist even after you clear your shopping history
    • Your regularly-purchased products remain available for quick-add

    🏷️ App Renamed

    • The app is now titled "Shopping List" on your device

    🛠️ Technical Improvements

    • Safer startup data loading
    • Unique IDs for products and lists (no more collision risk)
    • Cleaned up analyzer warnings
    • Improved shopping history and product list performance
    Downloads
  • v1.1.2 d225e2c0b0

    admslader released this 2026-08-24 20:58:14 -04:00 | 39 commits to main since this release

    What's new

    • Upgraded to the latest Flutter (3.47) and updated all plugins for better stability, security, and performance.
    • Fixed a crash that could occur when editing a product whose quantity was larger than the slider's range (e.g. imported items).
    • Improved performance in the shopping history screen and product list, especially with many items.

    Bug fixes

    • Fixed a crash when editing products with large quantities.
    • Fixed a potential crash when switching a manually-entered quantity back to the slider.
    • Resolved a dependency conflict between package_info_plus and share_plus (the shared win32 transitive dependency).

    Improvements

    • Faster shopping history and product list rendering.
    • Updated Android build toolchain (AGP 9.1.0, Gradle 9.3.1, Kotlin 2.3.20).

    Notes

    • This is a maintenance/upgrade release — no changes to how the app is used
    Downloads
  • v1.1.1 dfc9cd79c5

    admslader released this 2026-07-14 16:16:55 -04:00 | 45 commits to main since this release

    What's New in v1.1.1

    This release adds several practical features to make the app more useful for daily shopping and collaboration.

    📤 Share & Import Shopping Lists

    • Tap the Share button in the app bar to send the current shopping list as a text file
    • Recipients can open the file on their device
    • Tap the Import button to add products from a shared list file into your current list
    • Includes product names, quantities, prices, purchased status, subtotals, tax, and budget info
    • Works seamlessly between users for collaborative shopping

    📋 Patch Notes Screen

    • After updating the app, a patch notes screen automatically shows what's changed
    • View release notes from version.json to see all new features and fixes
    • Accessible anytime from Settings → View release notes

    💾 Backup & Restore

    • Settings → Data Management → Export Backup saves all your data to a JSON file
    • Settings → Data Management → Import Backup restores from a previous backup
    • Includes all lists, history, theme, and language preferences

    ✨ Input Validation Improvements

    • You can now toggle between a slider and a text field for product quantities
    • The text field accepts decimal values like 2.5 for weighted items
    • Better validation messages when entering products

    🛠️ Technical Improvements

    • Upgraded Kotlin Gradle plugin to version 2.1.20
    • Upgraded compile options to Java 21
    • Upgraded androidx.core:core-ktx to 1.15.0
    • Fixed localization issues in English and Spanish

    📲 Install / Update

    Download shopping_list.apk from this release and install it on your Android device.

    The app can also detect this version through the built-in update checker.

    Downloads
  • v1.1.0 bb1c8df513

    admslader released this 2026-07-14 12:31:57 -04:00 | 48 commits to main since this release

    What's New in v1.1.0

    This release adds several practical features to make the app more useful for daily shopping.

    Share / Export Lists

    • Tap the Share button in the app bar to send the current shopping list as formatted text
    • Includes product names, quantities, prices, purchased status, subtotals, tax, and budget info
    • Works with any app on Android's share sheet (messages, email, notes, etc.)

    Input Validation Improvements

    • You can now toggle between a slider and a text field for product quantities
    • The text field accepts decimal values like 2.5 for weighted items (produce, bulk items)
    • Better validation messages when entering products

    Backup / Restore

    • Settings → Data Management → Export Backup saves all your data to a JSON file
    • Settings → Data Management → Import Backup restores from a previous backup
    • Includes all lists, history, theme, and language preferences

    Android Kotlin Upgrades

    • Upgraded Kotlin Gradle plugin to version 2.1.20
    • Upgraded compile options to Java 21
    • Upgraded androidx.core:core-ktx to 1.15.0

    Install / Update

    Download shopping_list.apk from this release and install it on your Android device.

    Downloads
  • v1.0.9 ebda8e0e4b

    admslader released this 2026-06-29 12:09:55 -04:00 | 51 commits to main since this release

    What's New in v1.0.9

    This release adds shopping history tracking and a frequent items quick-add feature, plus important infrastructure updates.

    🛒 Shopping History

    • Save completed shopping lists to history with one tap
    • View past shopping trips with date, total, and item details
    • Delete individual entries or clear all history
    • Tracks tax and budget information per trip

    ⭐ Frequent Items

    • Automatically identifies your most-purchased products
    • Quick-add any frequent item with one tap
    • Calculated from both shopping history and active lists
    • No configuration needed — it learns as you shop

    🔄 Repository Migration

    • Moved from GitHub to self-hosted Forgejo instance
    • All update URLs updated accordingly

    🔧 Fixes & Improvements

    • Fixed app localization issues
    • Upgraded Android Kotlin Gradle dependencies for future compatibility
    • Enhanced data persistence for shopping data

    📲 Install / Update

    Download shopping_list.apk from this release and install it on your Android device. The app's built-in update checker will also prompt you when this version is available.

    Note: When upgrading from v1.0.8 or earlier, the app may need to be uninstalled first if there are persistent data migration issues.

    Downloads