Infos and settings
Provide helpful information to your users in the informations section. And for advanced use cases, provide app settings that unlock additional functionality or change the default behavior of your app.
Your app must provide at least its version number and the developer name or organization. These informations are part of the app’s resources and will be used automatically to build a default version of the app’s infos.
More informations can be provided with the same format: rows of key-value pairs.
App settings are reset to their default values each time the app is updated or reinstalled. This is a consequence of the architecture of Ledger’s secure OS.
Your app can have settings that unlock new capabilities or alter its behavior. As soon as your app contains a setting, the icon on the app’s home must change to a setting wheel, instead of the informational “i”.
Here’s the example of the Ethereum app, developed by Ledger. It provides three user-adjustable settings on the first page. App informations move to page 2. Note that navigation arrows appear as soon as there are two pages.
The settings can use the following elements for interaction:
- toggle switches;
- radio buttons;
- tappable rows for navigation.
Don’t mix interactor types on the same page. Look at how the Monero app is consistent with the types of its settings:
This is not how the Ethereum app functions today, but it could be a great UX practice to put in place.
The “blind signing” setting of the Ethereum app allows users to review and sign transaction payloads outside of the safety of clear signing. It’s off by default in order to protect users, and it’s reset whenever the Ethereum app is updated or reinstalled.
When a signing operation requires the “blind signing” setting to be on, it’s recommended to invite users to activate the setting, instead of the wallet returning an error, or worse, doing nothing. That way, users have a natural continuation to their action, while still being warned about the safety of their operation.
- - Rely on your app’s resources to create a default inforamtion screen.
- - Avoid app settings when possible. When you need them, provide default settings that will suit the majority of your users.
- - Allow users to dynamically enable settings when required and gracefully continue their task.
nbgl_useCaseSettings()to make settings/info pages.
More info here.