From zero to webOS developer in one month | webOS Nation

From zero to webOS developer in one month

by Derek Kessler Mon, 04 Apr 2011 4:34 pm EDT

Join PreCentral member jbg7474 as he dives head first into webOS app development...

Ever thought about how cool it would be to write apps for your phone? I have. You would hardly be human if you didn’t look towards the fantastic developers we have hanging around here at PreCentral with a little bit of envy. We may not have the quantity of apps that are available on some other platforms, but we definitely have some very high quality apps available. Carbon is an onyx beauty. Neato! quickly binds your phone and computer into a working whole. Preware opens the gateway to a wide world of extra apps, patches, and more. You’ve seen them, you know what I’m talking about. There are some really great apps available for webOS. And behind each of those is a great developer, or several.

I wanted to be one of those dudes.

First of all, I needed a hobby. I was watching far too many movies and TV shows. It was time to spend some of that leisure bettering myself, rather than just being a consumer. Second, I see that there is an opportunity with webOS residing on HP PCs in the near future. Even a very small portion of one hundred million is a pretty big number. I may never get rich being a webOS developer, but with that kind of scale, it’s easy to imagine a few thousand dollars per year could be had without radical effort. Finally, even if developing for webOS pays nothing, the skills required are the same as the skills required for web development. And the web isn’t going away any time soon.

So webOS development is a good thing to do. Now what? I knew absolutely zero JavaScript. I knew HTML uses tags, and that’s about it. How does one go about learning these languages? All I had to do was ask. Not only are many webOS developers incredibly talented, but they are also real people who are happy to dispense advice. I posted a question on Twitter about how to learn JavaScript and got several good suggestions.

A few people suggested checking out They have free tutorials that will lead you through the basics of HTML, JavaScript, CSS, and more. The really nice thing about their site is that you can try out what you’ve learned. They have a button you can push that will bring up two new windows: one with code, the other with the results. You modify the code, and see the results right away. It’s an excellent tool for learning, as you can experiment right there. I went through all the HTML and JavaScript sections in about a week.

Another recommendation I got from more than one person is JavaScript: The Good Parts, by Douglas Crockford. It’s a book that leads you through the basics of JavaScript and points out the best practices to use. JavaScript is a very flexible language, some would say perhaps too flexible. This book helps you avoid some bad habits. I’m still working my way through it.

After getting through the w3schools tutorials, I was ready to start looking into webOS. I already had an account at and had the SDK installed on my computer. Anyone can get an account and download the SDK for free. Understanding what’s going on, that’s another matter entirely.

I decided to start with Ares, HP’s website for development of webOS programs. You can do all of your programming for a webOS app right on the Ares website. Ares also has a graphical layout ability that makes it easier to get the view just how you want it, and it handles some things automatically for you so you don’t have to worry about them. The great thing about having your development environment online is it’s always just a web browser away. I can sneak in a few minutes of development at work on my lunch break without having to install any software on my work computer. That’s huge.

Ares links to a couple of tutorials that are helpful. One leads you through the process of building a Flickr app, and the other shows you how to build a simple map application. The tutorials are good, but they leave out a TON of information about how to build an app for real. The Flickr app is actually pretty capable, but the guts of it are in code that you just copy and paste, without much explanation. Working your way through code that someone else has written without many comments, well, painful doesn’t quite begin to describe it.

Fortunately, all this stuff does begin to make sense after a while. You have to live with it, try a few things out, just to see what will happen. Ares can connect with the emulator, which will allow you to debug right from Ares. This is actually the best way to do debugging in webOS development. The console allows you to issue JavaScript commands directly to the emulator while it’s stopped in your program. This allows you to explore variables and see what is really going on. It is very powerful, and a great learning device.

But there are some downsides to Ares as well. As I said, there is a whole lot of stuff that you can do in webOS development that is not very easily exposed in Ares. For example, you know the floating buttons that you see at the bottom of most webOS apps? You can’t do these directly from the Ares GUI builder. There’s a good reason for that: those buttons aren’t instantiated the same way as buttons that are on the page. But if you don’t know that already, you wouldn’t figure it out from within Ares. You would just develop an app without them. Ares supports these buttons, so once you know what you’re doing, it’s easy to get them into your app.

And that’s really the crux of the matter. Developing a webOS app means more than just learning how JavaScript and HTML work together. You also have to know how webOS apps work. They exist in a framework called Mojo, and now also Enyo, a different framework that will be available soon. For example, to get a new screen to come up in your application, you have to know the Mojo command to “push” the “scene.” And for that you need documentation. 

There is a lot of documentation available. The new improvements to the website have made some of that documentation easier to discover. So that is very good. Between Ares, the plugins available for Eclipse (a more standard development environment), and the emulator, Palm has really done a good job of providing tools for developers. It’s not always tied together like you might want it to be, but it’s pretty rare to come to a dead end and not be able to do what you need to do.

After getting my feet wet with the tutorials and doing a couple of silly things like building a button that counts, I was ready to try for something a little more complicated. I had one or two ideas, but they required support from websites that don’t readily provide it. I turned to the great community at PreCentral. And I got a great idea right away. There are loads of people who have a niche app that they would like to see implemented. This is the positive side to a less than totally full app catalog: there is opportunity for new developers. So there is no shortage of good ideas. It has taken me a few weeks, but I now have a fairly substantial application that I’m almost ready to release. When I thought I had something pretty good, I again turned to the community and asked for some testers. Within a day or so I had ten people willing to test my app. And they each found some things that needed improvement. They helped tremendously. Now my app is a lot more robust, and should be able to handle the needs of a pretty decent slice of users.

I’m still learning. I’m not a webOS black belt developer yet. Just today one of my testers asked me for a feature that I have no idea how to build. But I’m excited about figuring it out. To me that is one of the main attractions of development: every little piece of your program is a puzzle to solve. Making it work, and then figuring out how to make it work elegantly, are challenges that are new almost every day. And just when you think you have it all figured out, new technology, like Enyo, will come out and cause you to rethink everything.

Not everyone can do this, and a lot fewer can be great at it, but I’m pretty sure you can do it. If you’ve ever been interested in developing for webOS, there will never be a better time than right now. You don’t have to get a degree in Computer Science. You just need some persistence and a web browser. In the immortal words of Nike, “Just do it.”