Last week we announced the release of Rodeo v1.0. The big deal was that we'd taken Rodeo from a command line, python app built using Flask, to a more legitimate looking desktop app.
To put it simply, you can build great looking windows and osx applications without mastering C# or Objective-C...with a single codebase. Sounds pretty nice, right? Want to learn more about how we did it? Keep reading!
Taking Rodeo to the desktop
The first version of Rodeo ran as a Flask web app with a command line client. This worked well enough, but we found that by requiring Rodeo to be used via the command line, we were instantly decreasing our addressable user-base. Not so surprising.
As a result, we decided that we needed a desktop version of Rodeo.
Say "Hello" to Electron
We really didn't want to get into the business of building a native app-- especially since our users are split fairly evenly between Mac and Windows. This led us to Electron. Electron really fit the bill:
- ✓ ships with windows and mac installers
- ✓ runs on the desktop
- ✓ no OS specific code required
But the real kicker is that you can write your entire application using node.js! For Rodeo, this meant that 80% of the code from the Flask app was reusable.
What Electron does
In addition to native UI components, Electron acts as your "server". In actuality
it's a Chromium window with some magic fairy dust
sprinkled on top of it. It has built in support for websocket-esque
so it feels a lot like building a "regular" app.
Lastly, and possibly most importantly, you can use node modules from within
your "front-end". So for example, if you're adding an DOM event that will
create a file, you can just use
fs.writeFile instead of having to make an AJAX
request to your server. In other words, you're going to write a lot less code,
and accomplish just as much!
Great, easy to use packages
Another great part about Electron, without a doubt, is the packages that come with it. Even though it's a relatively new project, there are already some very helpful 3rd party libraries. For instance, we're using electron-packager to distribute OS specific executables, electron-builder to build OS specific installers, and Nuts for distribution/download management.
There are tons of other great resources for getting started.
Interested in Rodeo? Click on the link below to learn more about it and to download it for free. You can checkout the code on github. If you're interested in working on products like Rodeo, checkout our jobs page. We're hiring!
Want to read more about Electron? Check out these resources: