bitcoin-core / gui-qml

Bitcoin GUI (experimental QML-based fork)
MIT License
110 stars 40 forks source link

Extracting components into a reusable Bitcoin App UI library #86

Open jarolrod opened 2 years ago

jarolrod commented 2 years ago

We have decided that:

  1. we will make our own components and style them how we want. We are not going to be relying on any built-in qt style for consistency across platforms.

  2. components will be independent from the underlying core state

Because we are putting in the work to build out our own components and style, it would be a disservice to the community not to have this available for others to use.

I propose a goal of this project should be the creation of a Bitcoin App UI library consisting of our components. This library could live on its own repo or included as part of the BDK. This library would be similar to KDE's kirigami

Practical usability of this library

From my understanding, This library would be accessible across different frameworks and languages. It would not be limited to people who are building a bitcoin app with c++ and qml.

Here is a list of qml bindings that are available: https://wiki.qt.io/Language_Bindings

To show the extent of compatibility, there exist community built QML binding for other languages like Rust (qml-rust, qmlrs), OCaml and Python. QML components are also accessible to javascript UI frameworks like react reactqml

Bosch-0 commented 2 years ago

Great idea, having it part of or at least recommended by BDK would be awesome :)

GBKS commented 2 years ago

I like it. We just need to make sure we allot the time it takes to publish this as a library and document it appropriately. The easier it is to learn about it and work with it, the more likely it is others will adopt it.

I cannot speak to the compatibility, but might be worth the time for someone to do initial tests to validate that those work (the reactqml repo, for example, has not been updated for 2 years).