LedgerHQ / LedgerHQ/vanadium

Consider implementing a lower-level UX framework

Open
#71 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement UX
Dominant language
Rust
Stars
44
Forks
7
Avg merge
17h 58m
Merged PRs (30d)
3

Description

In #63, the level of abstraction supported by the SDK is roughly at the Page level. This has the advantage that writing implementations for different device types is easier: the same ECALL can be implemented with different underlying UX code on different devices.

We could consider to extend SHOW_PAGE to accept any Layouts

Pro:

  • we could represent basically any screen with out having to change the ECALL related to screen processing (as the Page-level API could be implemented directly in the V-App SDK)

Con:

  • There is no layout API on NanoS+/NanoX; so it means more code variations for different devices
  • Unclear if performance would be good enough.

It might be inherent to expose low-level screen-management APIs at some point, in order to allow for arbitarily complex applications.
Investigating a general-purpose approach would be an interesting problem.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the linked Page and Layout documentation, then inspect how SHOW_PAGE and ECALL screen processing relate to NanoS+/NanoX capabilities. Compare the benefits of accepting arbitrary layouts with device API availability and performance concerns; done means documenting a viable general-purpose approach or the reasons it is not suitable.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
api, embedded-iot
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.