What the resulting project does is give the ability to build and debug GNOME applications in a visual way with the Flowhub user interface. You can interact with large parts of the GNOME API using either automatically generated components, or hand-built ones. And while your software is running, you can see all the data passing through the connections in the Flowhub UI.
The way this works is the following:
- You install and run the noflo-gnome runtime
- The runtime loads all installed NoFlo components and dynamically registers additional ones based on GObject Introspection
- The runtime pings Flowhub’s runtime registry to notify the user that it is available
- Based on the registry, the runtime becomes available in the UI
- After this, the UI can start communicating the with runtime. This includes loading and registering components, and creating and running NoFlo graphs
- The graphs are run inside Gjs
While there is still quite a bit of work to be done in exposing more of the GNOME API as flow-based components, you can already do quite a bit with this. In addition to building simple UIs with GTK+, working with Clutter animations was especially fun. With NoFlo, every running graph is “live”, and so you can easily modify the various parameters and add new functionality while the software is running, and see those changes take effect immediately.
There are still bugs to squish, documentation to write, and more APIs to wrap as components. All help in those is more than welcome.