Glimmer DSL for SWT 4.27.0.0 has just been released as the latest quarterly major version release with the following changes:
- Upgrade to Eclipse SWT 4.27
- Upgrade to JRuby 9.3.10.0
Code Mastery Takes Commitment To Bold Coding Adventures
Glimmer DSL for SWT 4.27.0.0 has just been released as the latest quarterly major version release with the following changes:
Apparently, ChatGPT has materialized in our world as a GUI (Graphical User Interface) via Ruby, Glimmer DSL for LibUI, and ruby-openai.
Happy Glimmering (including to ChatGPT)!
My RubyConf 2022 talk video on "Building Native GUI Apps in Ruby" using the Fukuoka Award Winning Glimmer DSL for LibUI has just been released!
I recorded a drum solo to demo Glimmer Metronome (click to see a video demo with audio). Glimmer Metronome is a Ruby-based metronome GUI app that supports different beat counts, click sounds, and tempos, including tap-based tempo calculation. It was built with Glimmer DSL for SWT using JRuby to help me with my drumming practice. Glimmer Metronome just received a new update in version 1.1.4 that adds menus and keyboard shortcuts, thus becoming more user-friendly when used via the keyboard alone.
Here is another direct demo of Glimmer Metronome (click to see a video demo with audio).
Below is full documentation of Glimmer Metronome's features, including the new menus and keyboard shortcuts.Enjoy!
Traditionally, Glimmer GUI gems have been mostly a one-sided effort, with a few 3rd party contributions here and there (like Drag and Drop support for Glimmer DSL for Tk). Well, that changes with Glimte! Glimte is a 3rd party framework built on top of Glimmer (Tk flavor) by Phaengris to facilitate following a certain variation of the MVC pattern (Model-View-Controller) called MVVM (Model-View-ViewModel). It encourages a model of programming for desktop GUI views that is similar to Rails .erb and GTK .glade files, but using the Glimmer GUI DSL in .glimmer.rb files as the view format. As such, it provides a much lighter more programmer-friendly Ruby-native replacement for HTML, ERB, and Glade. Consequently, Glimte ushers in the next era of Glimmer; that is The Glimmer Ecosystem!
The Glimmer Ecosystem enables the democratization of the style of development followed when building Glimmer desktop applications in Ruby, among many other obvious benefits. That in turn facilitates a vision similar to the Rails vision explained by Yahuda Katz in his keynote speech at RailsConf 2014 (at which I presented too), which was borrowed from Steve Jobs. What Yahuda alluded to was that by continuously building more floors for the lower levels of a building in the form of a framework and a community of open-source projects, we enable developers to start development at higher and higher levels than they would have been able to otherwise, thus helping them leapfrog earlier ways of development in ever increasing productivity!
So, what is Glimte?
"MVVM framework based on Glimmer for creating desktop apps in Ruby / Tk"
- Source: https://github.com/Phaengris/Glimte
Glimmer DSL for LibUI 0.6.1 has been released with support for table lazy loading via Enumerator (or Enumerator::Lazy). As a result, the table control can now handle millions of rows and renders instantly without waiting for all data to be loaded given that it is loaded lazily as the user scrolls through the table. That enables applications with a lot of data (or with data that needs to be loaded/generated) to start instantly. A new example, Lazy Table (4 versions), has been included to demonstrate table lazy loading (read on to learn more about it). Of course, from a usability and user experience point of view, it might still not be a good idea to display millions of rows, yet to display only a few via pagination, like by using the Refined Table custom control that was released and blogged about a while ago.
Glimmer DSL for LibUI 0.6.0 was a final release that included many changes implemented as pre versions previously, including a new C libui version (libui-ng Nov 13, 2022), which includes some low-level fixes and new features for the libui GUI toolkit.