SafeKey v2.1.0 - Premium Polish & UX Update 🚀
Welcome to SafeKey v2.1.0! This release focuses on delivering a highly-polished, premium user experience while keeping the app fast, lightweight, and offline-first. We've introduced major UI improvements, a new secure vault for recovery codes, and account tagging!
What's New ✨
1. Premium Home Screen & UI Overhaul
- Sleeker Account Cards: Redesigned account cards with tighter padding and refined typography for a more compact, balanced look.
- Improved Empty State: A gorgeous new full-screen empty state with clear calls to action for scanning QRs or adding accounts manually.
- Premium Onboarding: The onboarding flow now features large, beautiful circular icon containers, smooth animations, and a convenient Skip button.
2. Recovery Codes Vault 🛡️
- SafeKey now includes a dedicated, on-device encrypted vault for your backup/recovery codes.
- Access it by tapping the three dots (⋮) menu on any account card.
- Easily add, copy, and strike through codes once you've used them.
3. Account Tags 🏷️
- You can now categorize your accounts!
- Added a new Tags field when adding an account. Tags are beautifully displayed on your account cards, making it easy to distinguish between Work, Personal, or Social accounts.
4. Settings Dashboard & DB Backup ⚙️
- New Settings UI: The Settings screen has been completely overhauled using modern Material 3 cards.
- Statistics Dashboard: Quickly view your total, pinned, and hidden accounts at a glance.
- Database Backup & Restore: Fully restored
.sqlitedatabase export and import!- Fix: Exporting now uses Android's native share sheet and properly preserves the
.sqliteextension. - Fix: Restoring a database now safely cleans up temporary cache files to prevent syncing bugs.
- Fix: Exporting now uses Android's native share sheet and properly preserves the
Technical Improvements 🛠️
- Updated Riverpod state management and Drift SQLite database schema (v4).
- Reduced app size with aggressive font tree-shaking.
- Improved animations across the app using
flutter_animate.