This week brings two big updates:
- One for everyone — the Holochain Launcher
- One for developers — a scheduler in Holochain v0.0.108
Holochain Launcher preview: user-friendly hApps
I hinted at the Holochain Launcher in the last two Dev Pulses, but didn’t go deep into it. So what is it?
Simply: the Launcher finally makes it easy for non-developers to install and use hApps. On their own devices. Without a computer science degree. Now, all you need to do is download an installer for your OS (Windows, macOS, and Linux are all supported), and it’ll install the Holochain conductor and a basic but user-friendly admin UI. Once you’ve got the Launcher installed, running a new hApp should be as simple as downloading a package and installing it in the Launcher.
This means that, as a developer, there’s a way to get your hApps into your users’ hands without much fuss. That’s pretty big news! It’s still very new, not yet production-ready, so the devs are asking for feedback — you can report an issue on GitHub or directly from the Launcher’s menu.
The Dev Camp participants are beginning to battle-test the Launcher, which has already resulted in a few bug fixes and improvements.
For an alternative approach, I’ve shared before that the folks at Sprillow have created tools that let you embed Holochain into a Rust or Electron application. These tools are being used in the desktop version of their Acorn goal-planning app.
Try a peer-to-peer application now!
- Find a few friends to test the app with.
- Download the Launcher.
- Install the Launcher.
- Download a web hApp, either Elemental Chess or Elemental Chat (look for the
.webhapp
file in the downloads section). - Open the launcher and look for the big blue ‘Install new app’ button.
- Select the web hApp you just downloaded.
- A dialog will pop up. Leave the app ID field unchanged, leave the membrane proof field blank, and choose a word or a string of random characters for the UID field. You and your friends should all enter the same UID — this ‘clones’ the hApp’s DNAs, giving your group its own private DHT.
- After clicking the ‘Install app’ button, you should see your new hApp listed in the main admin window. Click the ‘Open’ button and the hApp’s UI will open in your web browser!
Make your hApp compatible with the Launcher
If you’re a hApp developer, it’s pretty simple to build a Launcher-ready hApp. It consists of a hApp (a collection of DNA files) and an archive of static web assets that you bundle together with the hc
dev tool. The Launcher has an internal web server listening on localhost that serves those static web assets to your user’s browser. Read the readme for full instructions.
Holochain v0.0.108 introduces a scheduler
Sometimes a hApp will want to do something in the background without user interaction. You can always do this behind the scenes in your UI’s code, but what if the UI is closed and this background task is important to how the hApp works?
The most recent Holochain release brings a host function called schedule
. I’ve written a page on the community wiki that explains how it works; check it out if you need something like this in your hApp.
Holochain In Action: Introducing the Launcher
This week’s Holochain In Action session gives a demo of the Holochain Launcher with two hApps: Elemental Chat and Elemental Chess. It also gets into Holochain networking, particularly what the bootstrap and proxy services are for, and finishes with some of the technologies the Launcher was built with.