I am having fun taking my Web skillz and applying them to mobile with webOS. It is obviously important that I learn about the platform. I want to understand the limitations, and get a feel for the SDK so I have opinions on where to take it (Fortunately, the community gives us great feedback, keep it coming!).
As I develop applications I quickly see repetitive tasks that fit into my workflow. You can quickly iterate when you are developing your application and when I am testing in either the device or the emulator I find myself repeating the following cycle:
This maps to the command line tools that come with the SDK.
palm-package
The application packager palm-package prepares an application for installation by converting the files in the application directory to an .ipkg file that can be consumed by the emulator or device.
palm-run takes the given directory to package up, or “.”.
palm-install
The palm-install tool installs a packaged application on the device or emulator.
palm-run uses the -d
option to specific device or emulator. The default is “tcp” which means emulator. Use -d usb
to send to the device.
palm-launch
The palm-launch tool launches (or closes) an application on the emulator or device.
palm-log
palm-log displays log messages from an application on the emulator or USB-connected webOS device. The log output is simpler and easier to read than the output in /var/log/messages, and the timestamp is the local time instead of GMT. You can also use palm-log to display the installed applications, which is useful for getting the ID of the application to log.
So, palm-run is on GitHub. Fork away and share what you do in your cycle.
Usage
palm-run [-d DEVICE] [-L] [-o DIRECTORY] [directory] -d DEVICE: Defaults to installing to the emulator. Use 'usb' for device -L : By default the palm-log command is run. This suppresses that -o OUTPUT: By default the ipk is generated to /tmp Examples palm-run ~/myproject # deploy from /tmp to emulator palm-run -d usb -L -o /packages ~/myproject palm-run # use the current directory and all the defaults
December 24th, 2009 at 9:35 am
I haven’t used the command line tools much since the recent Ares release. I do still `tail -f /var/log/messages`, so thanks for the palm-log tip. Guess I missed that in the docs.
It would be interesting to hear more of your thoughts on where Ares is now and how it fits into your workflow.
Also related to Ares: expanded/customizable keyboard shortcut keys would be useful.
Keep up the great innovative work!
January 5th, 2010 at 1:39 am
Great job,
but i think the -i option for palm-launch is kinda missing, i use it quite often with the inspector, makes testing a lot easier!
January 6th, 2010 at 10:02 am
Frederic,
Good point. Would you like to default to having it always part of palm-launch?
Cheers,
Dion
January 25th, 2010 at 6:22 pm
For what it’s worth, I’ve been doing something like this, but using GNU make:
http://github.com/lmorchard/blockchalk-webos/blob/master/Makefile
With that fairly project-generic Makefile I can do the following (on OS X):
* switch between emulator (TCP) and device (USB)
* package, install, run, and tail log
* run main app or start up a Mojo.Test runner
* either use palm-log or tail -f via novaterm, since palm-log has a bug with long lines.
* build docs with JSDoc
* run jslint
* account for little bugs in Luna that prevented the inspector from properly attaching (though those may be fixed by now)