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.


0 Comments

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *