mirror of
https://github.com/samsonjs/samhuri.net.git
synced 2026-04-27 14:57:40 +00:00
89 lines
4.2 KiB
Markdown
89 lines
4.2 KiB
Markdown
---
|
|
Title: Using Emacs to Develop Mojo Apps for WebOS
|
|
Author: Sami Samhuri
|
|
Date: 21st November, 2009
|
|
Timestamp: 1258790400
|
|
Tags: emacs, mojo, webos, lisp, javascript
|
|
---
|
|
|
|
The latest technology I've been learning is Palm's SDK for webOS,
|
|
Mojo. My first impression is that it's a great platform and
|
|
Palm could do a great job of 2.0 if they cut down on some of the
|
|
verbosity of gluing together the UI. I have learned to like
|
|
JavaScript over the years as I learned that despite its
|
|
warts [there are good parts](http://ca.video.yahoo.com/watch/630959/2974197)
|
|
too. If you squint just right you can see that it's scheme with
|
|
Algol syntax. HTML and CSS are what they are, but with WebKit running
|
|
the show and only a single engine to target it's not that bad. I've
|
|
gone from Eclipse to Emacs for the coding itself and highly recommend
|
|
Emacs for Mojo development. There is nothing that I miss from the
|
|
Eclipse or Komodo Edit thanks to the fact that Mojo uses open
|
|
languages and standards.
|
|
|
|
|
|
As far as actual development goes the Mojo documentation steers you
|
|
towards a combination of Eclipse, Palm's Mojo plugin for Eclipse,
|
|
and the Aptana Studio plugin. My editor of choice is Emacs but
|
|
I decided to give it a spin just to get started quickly, how bad
|
|
could it be? I'm not going to get into details but I will say that I
|
|
don't think I'll ever use Eclipse for anything; it's far too
|
|
sluggish and provides no compelling features for the languages
|
|
that I use. I tried Komodo Edit and it was significantly
|
|
better but still not for me. Emacs is great for editing HTML,
|
|
JavaScript, and CSS so all I really missed from the IDEs were the
|
|
shortcuts to package, install, and launch apps in the
|
|
emulator. I headed over to
|
|
the [Emacs Wiki](http://www.emacswiki.org/) and
|
|
downloaded Jonathan
|
|
Arkell's [Mojo
|
|
support for Emacs](http://www.emacswiki.org/emacs/MojoSdk)
|
|
which provided a great base to get
|
|
started with. There are wrappers around (all?) of the Palm SDK
|
|
commands but it needed a bit of work to make it just do what I
|
|
wanted with as little input and thought as possible.
|
|
|
|
A couple of of Lisp hacking sessions later and I'm happy enough with
|
|
mojo.el to bump the version to v0.9. I've checked off what I
|
|
feel are the most important checkpoints on
|
|
the [webOS
|
|
Internals comparison of editors](http://www.webos-internals.org/wiki/Comparison_of_Editors)
|
|
and the framework is in place to make implementing most of the
|
|
remaining commands very trivial. I might take a bit of time today
|
|
to flesh things out just to check more points off so people feel
|
|
more confident that it's a fully featured environment, because it
|
|
certainly is.
|
|
|
|
It now requires json.el in order to parse appinfo.json. json.el
|
|
might be included with Emacs if you have a very recent version,
|
|
otherwise you can google for it or get it from
|
|
my [config file repo on github](https://github.com/samsonjs/config/tree/master/emacs.d)
|
|
where you can also find my latest version of mojo.el. You still
|
|
just `(require 'mojo)` in your .emacs file.
|
|
|
|
The wrappers around Palm SDK commands now search upwards for the
|
|
Mojo project root directory (from the default-directory for
|
|
current-buffer) and parse appinfo.json to give you sane defaults for
|
|
mojo-package, mojo-install, mojo-launch, mojo-delete, and
|
|
mojo-inspect. You can list installed apps and when entering app
|
|
ids there is completion and history, as you have come to expect in
|
|
Emacs. The most useful command for development is
|
|
mojo-package-install-and-inspect which does exactly what it says:
|
|
packages, installs, and launches the application for
|
|
inspection. No interaction is required as long as you are
|
|
editing a buffer inside your Mojo project.
|
|
|
|
If you read the install instructions in mojo.el and decide to setup
|
|
some keybindings then you will have single-task commands for
|
|
packaging, installing, launching, or all three steps at once.
|
|
|
|
Please give me some feedback if you try this out. I've
|
|
developed it on Mac OS X and Jonathan on Windows so please try it on
|
|
Linux and send me a patch or even better a pull request on github if
|
|
it needs some work. There is room for improvement. The next feature
|
|
on my radar before I would consider it worthy of a v1.0 tag is
|
|
intelligent switching to corresponding buffers,
|
|
e.g. mojo-switch-to-view, mojo-switch-to-assistant, things like
|
|
that. Basically things I miss from the Rails package for Emacs.
|
|
|
|
Happy hacking!
|
|
|