Week 22: docsets downloader and homebrew!

26 March 2023

Hey friends, It’s Stanislav!

I’m building POSH TUI , a glamorous TUI documentation browser for Ruby developers, and writing bi-weekly updates along the way.

Two weeks ago, I set out on a mission to share the initial development build with the community. While I successfully achieved this objective, the process of packaging and distributing the build proved to be time-consuming. As web developer, I strive for a seamless delivery experience, ideally as effortless as simply pushing code to GitHub.

I want to release often, so it’s important to make this simple and fast.  This was my main theme for these two weeks.

Docsets downloader

Project adopts XDG user directories standard. You can find all docsets in the “posh” folder.

     
Unix MacOS  
XDG_DATA_HOME ~/.local/share ~/Library/Application Support

_posh docsets_ will download all the required documentation. Implementation is really minimal.

Homebrew

This command will install latest version of POSH. Make sure to run brew upgrade  from time to time.

brew tap skatkov/tap && brew install skatkov/tap/poshtui

Homebrew works perfectly as a software distribution solution for our project. Simple and can be private(with my own tap). But it doesn’t work with windows, but POSH TUI doesn’t either.

If you are really curious, I have all my releases and brew tap available publicly on GitHub. Source code is still closed, but free build will be permanent from now on. Premium feature will be offering a way to download documentation for gems beyond rubies or RoR.

Debounced

All operations in a class browser are properly debounced now. Viewer doesn’t get overloaded anymore and doesn’t hang (at least in my tests).

It does create an issue, that some content gets loaded with delay. But at least, app doesn’t hang. Further refinements are needed, but this at least makes app slightly more usable.

Plans for next 2 weeks

Next two weeks I’ll be focusing on improvements for app itself. My main priorities are:

  • Working search
  • Pick proper ruby documentation depending on a folder that app is being launched at
  • Further improvements to UI - flexbox, tabs for browser section, better content section loading and etc.
  • Configuration file support, it should help with theme support.

Development updates