Napp

an ultra lightweight gui notes app

Nobody Knows Shoes

In 2020, I was experimenting with Ruby and making small apps to practice learning the language. I did some research on GUI toolkits, and found Shoes[1], a gem[2] that was lightweight & easy to get started with, but flexible and easily extensible. I also particularly liked that its widgets rendered in the native UI of wherever it was run.

My first "real" app that I made with it was a notes app, which I termed napp. The idea of it was to record short notes that were start and end timestamped whenever I had a quick thought to jot down, which I could then refer back to and know when I'd had that thought. It had a text field to enter the note, and a prompt for a specific file to save the note to. There were buttons to save, clear, and quit the app.

Before attempting the GUI, I built CLI versions of the program, which ran in a loop prompting the user for input until they chose to exit the program. It had different saving options: there was a default file to save to, basenotes.txt, or the user could input a name for a file to create a new .txt with that name or append the note to an existing one. In this way, collections of notes could be created.

The repo can be viewed here!

I had a lot of fun in the process of making napp, as it was one of my first experiences with using a GUI toolkit and Shoes was very approachable. Sadly, Shoes is deprecated, and the last OS that napp.rb could render on was MacOS High Sierra. However, both notes.rb and nt.rb are fully functional, if not optimized. I've since rewritten both of those programs, as well as napp.rb using Glimmer[3], and Ruby remains one of my favorite languages to use!


  1. website here! ↩︎

  2. term for a Ruby package ↩︎

  3. a DSL wrapper for SWT – link ↩︎