Description
Problem Statement
In my previous PR, I designed the feature such that new users are automatically placed in the Connectivity-Free mode (Capacitor solution), while existing users remain in the Online-Only mode (legacy solution).
However, existing users can only upgrade to the Connectivity-Free mode by uninstalling and reinstalling the app. This approach is not user-friendly and poses a risk of losing user data.
It would be more convenient to allow users to switch between these modes within the app, without requiring reinstallation.
❔ Possible Solution
I propose adding a new tab and button in the settings, specifically for Android users.
- If a user is currently in the Online-Only mode, they would see an option labeled “Upgrade to Connectivity-Free mode (recommended).” This section would include a brief description of the mode and its benefits. When the user clicks on the button, a confirmation dialog would appear, warning them that switching modes may result in data loss and recommending that they sync or back up their data.
- Note: To minimize complexity and avoid potential bugs, this design will not include auto-sync or backup functionalities at this stage. If the user confirms, the app will restart and switch to the Connectivity-Free mode.
- Similarly, if a user is already in Connectivity-Free mode and encounters issues, they will see the option to “Revert to Online-Only mode.” This option will follow the same interaction pattern with a confirmation dialog and restart process.
This dual-mode switching will improve the flexibility of the app without forcing users to reinstall the app.
⤴️ Describe alternatives you’ve considered
One alternative would be to automatically sync or back up data during the switching process, but this adds complexity and might introduce errors. For this minimum viable solution, we prioritize simplicity by advising users to manually sync or back up their data before switching modes.
➕ Additional context
This new tab and option should only be displayed in the Android app settings.
I would appreciate feedback on whether this design is appropriate, particularly from a UX perspective. Should this be implemented as a separate settings tab, or should we integrate it into an existing tab? Additionally, how can we ensure a smooth interaction without overwhelming the user with too many options?