Starting in 2009, I’ve developed nubus|desktop in C++, a news client for Windows, as a technology carrier, primarily to explore fluid UI experiences in OpenGL, resulting in a UI framework with animated controls and beautiful rendering.
nubus|desktop, a news client for Windows
nubus|desktop supports RSS, Twitter, and several now discontinued social networks like Google+, identi.ca, and App.net. It features a full Twitter client with largely complete functionality up until ca. 2017, when I stopped most development efforts on it, because Twitter’s policies made 3rd party clients effectively obsolete and the business case non-viable.
Main controls and use of nubus|desktop
The more important part is what it can do and the controls and animations it contains, which are quite elegant and useful for modern user interface development and user interaction design.
ControlCloud
ControlCloud – animated cloud of controls that allows quick selection of an item
In trying to create a main selector UI without using a tile pattern or a list, and with the goal in mind to be able to reach any item with minimal mouse movement, I came up with a cloud of controls that rotates towards the mouse pointer. When the pointer is in the center, the control barely moves, when it’s farther out it rotates faster, moving the desired item in the direction of the mouse pointer. ControlCloud can handle any number of controls, from 2 to 50 or much more.
Twitter
nubus|desktop contains a feature-rich Twitter client, displaying a user’s Home/Personal timeline, mentions, DMs, History, Lists, Favorites, and Trends. It can display other user’s timelines and threads or conversations.
Home timeline
New messages are highlighted, with the highlight slowly fading out when hovering over the item. Transitions and scrolling are very smooth, refresh speed can be set from several minutes to near instantly.
Tweeting about something
As you can see, the tweet size limit is still 140 characters as opposed to the 280 that Twitter allows these days; I mostly stopped developing the Twitter part of nubus|desktop for reasons mentioned above.
Themes
There’s also many different themes available, some more fancy and reminiscent of the time when coding on it began around 2009, with their glass effects and gloss; some more modernist and somewhat flat. Others sport beautiful background images.
Modern theme
‘Sky’ theme with background image
Technology
nubus|desktop is written in C/C++. It uses OpenGL for rendering the user interface, FreeType for font rendering and some other libraries like TinyXML, cJSON, zlib and stb_image for data and image processing.
Outlook
nubus|desktop is a technology carrier – a testbed for my OpenGL UI framework where I can try out different controls and animations and play with transitions and effects. I especially love the status bar effect when refreshing timelines, it’s pretty neat (Note that you can cancel ongoing actions in the status bar, too).
Refresh effect in status bar: A light streaks across the status bar while loading new messages
Because of Twitter’s restrictions I won’t release it with the Twitter client inside, and since most other social networks it used to support are defunct by now, there’s really only the RSS client left – which, alongside Twitter, I still use a lot. So I may release the RSS portion of it, but I work on other projects too, so there’s more exciting stuff to come.
After almost 3 years living with Covid-19, we have now extended the Covid Invasion game with new virus variants, just like we know it from real life. This makes the game more difficult and thrilling Read more
When you deploy a software product, you’ll want to have the opportunity to update the instances of the product installed on the computers of your customers or users. There are a myriad of ways and Read more
In this article, the prototype of a SMILES-based portfolio screening tool completely written in Python using the libraries pandas, rdkit and tkinter is presented. This tool supports regulatory group entry screenings of chemical substances based Read more
0 Comments