I am developing a password manager app that requires the user to enter a pin when the app starts. Resuming the app from background either asks for pin or fingerprint. There is also a settings option configuring a grace period that allows the user to skip authentication if the app resumes before a certain amount of time passed since it was sent into background.
The app has three root views (lists): accounts, cards and notes. From each of these views the user can navigate further, into item detail, add/edit, etc. When tapping the system back button, the user navigates back the hierarchy until reaching one of these root views.
I am unsure what to do when the user taps the back button from any of these root views. Technically and by default, the app should exit (and it does, unless I come up with a different implementation). However, I find exiting the app is less than ideal, as this means the user has to reenter the pin the next time the app is accessed (from recent apps, for example). More, it interferes in a confusing way with the option to skip authentication when the app resumes, regular users not making much of a difference between starting an app fresh or resuming it.
So, I thought of some alternatives:
- Ignore the user action
- Display a toast requesting the user to tap a second time to exit the app
- Minimize the app instead of exiting
I am mostly inclined towards the third option.
What are your thoughts from a UX perspective?