QR code scanning UX
@jcalderone has asked for clarification regarding QR code scanning UX.
In general, modern Android applications typically provide QR code scanning functionality within each application -- i.e., by packaging/linking an existing library (like zxing
) which encapsulates a camera view and automatically decodes/returns the contents of whatever QR code it scans to the host application. Firefox on Android, for example, has a "scan" button embedded in the address bar which, when pressed, presents a camera view that can be used to scan QR codes. If the user points this camera viewfinder at a QR code, Firefox -- or, rather, the library that provides this functionality -- decodes the contents and, if the result is a valid URL, the URL is loaded into the application bar.
Importantly, this all works without the requiring the user to install a separate third-party application and/or juggle between separate applications; users don't need to install or use standalone "QR scanner" app in order to launch a QR-code-encoded URL with Firefox. Other applications/functionality work similarly (see, for example, Signal's "safety number" scanner, various cryptocurrency wallets' address scanners, Syncthing's device scanner, etc.).
In the case of the PrivateStorage mobile application in particular, it would be preferable (arguably) if our application worked similarly -- partly because this pattern is already common and familiar to users, partly because Security (since standalone/third-party QR scanner applications will often do things or require permissions beyond what is strictly required), and partly because this pattern presents the least amount of friction (since users don't have to install, launch, or switch between multiple/other applications in order to use our software).
From the user's perspective, the overall steps for this might look something like as follows (for a first-time user):
- The user launches the application and navigates through the onboarding/welcome screen (by clicking "I'm ready!").
- The user presses the floating action button ("FAB") in order to "add a folder".
- The user is [prompted for the requisite permissions].(/uploads/b68c19873c3a64cd71cc683ffa5f2521/only-this-time.png)
- If the requisite permissions are accepted, a camera view loads, allowing the user to scan a QR code.
- The user aims the camera viewfinder at the QR code displayed by the desktop application.
- The application uses the decoded wormhole code to perform the "Magic" necessary to join the folder.
- The contents of the newly-joined folder are presented to the user.
(Some of these steps may need to be expanded upon; let's use this ticket to raise and resolve questions about how we think QR code scanning should work for PrivateStorage mobile.)