This release introduces significant architectural improvements alongside new security features. While much of the work happens under the hood, users will notice a snappier interface and new options for protecting their accounts.
Signals for Reactive State
EQUOS9 has always used Riverpod for state management, and it continues to power app-wide and async state. However, for UI-local state—things like form field values, toggle states, and temporary selections—we’ve introduced Signals as a lightweight alternative.
Signals provide fine-grained reactivity without the overhead of full provider infrastructure. When a signal value changes, only the widgets that depend on it rebuild. This means:
- Faster response to user input
- Reduced unnecessary rebuilds
- Cleaner code for simple state scenarios
The app bar is a good example: business selection, location filters, and theme toggles now update instantly because they’re backed by signals rather than providers that need to propagate through the widget tree.
Two-Factor Authentication
Security-conscious teams can now enable 2FA on their accounts. After entering their password, users with 2FA enabled will be prompted for a time-based code from their authenticator app (Google Authenticator, Authy, 1Password, etc.).
Setup is straightforward:
- Navigate to Profile → Security
- Enable two-factor authentication
- Scan the QR code with your authenticator app
- Enter the verification code to confirm
Once enabled, 2FA applies to all future logins. Recovery codes are provided during setup for account recovery if the authenticator is lost.
User Preferences
A new preferences system gives users control over their EQUOS9 experience. Preferences are stored per-user and sync across devices, so customisations follow users wherever they log in.
Initial preferences include:
- Default location selection
- Theme preference (light, dark, system)
- Notification settings
- Display density options
The preferences architecture is extensible, so expect more options as we learn what customisations matter most to different user types.
Technical Foundation
These changes lay groundwork for future improvements:
- Signals pattern established for all UI-local state going forward
- Preferences service provides a consistent API for user settings
- Security infrastructure ready to support additional auth methods (biometrics, hardware keys)
The codebase is now more maintainable, with clear separation between global state (Riverpod), local state (Signals), and persistent preferences (User Defaults).