From zero to webOS developer in one month | webOS Nation
 
 

From zero to webOS developer in one month 51

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 w3schools.com. 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 developer.palm.com 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 developer.palm.com 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.”

51 Comments

This is perfect. I have been a "developer" since the days of the first Pre, know java and html, but not much about javascript. This article is such a good idea to get people like me "over the hump" and get apps in the catalog.

Although I don't plan on becoming a WebOS developer, I do need to set up my first web site and I just bought an Adobe suite of software. Just last night I signed up for a month of Lynda.com tutorials. Therefore, thanks so much for the head up on w3schools.com--should be a welcome addition for my STEEP learning curve over the next few months (years?!).

Thanks, Derek!

Good luck Derek. I like you. You are trying stuff out and are real positive influence here. Thank you for your post and everything else you do.

I'm not sure I'm comfortable with this concept...people being positive, trying to encourage others...it seems so alien around here...

Just kidding, although there are those who derive their satisfaction by being Debbie-Downers (no offense to any Debbie's out there), there are many more who are helpful and encouraging at PreCentral, so thanks for being one of those Derek!

Great article! Thanks.

One question: The story is told in the first person. Who is that person, Derek or jbg7474?

Sorry, neglected to change the author name - it's jbg7474 speaking here.

Great dev experience and advice there jbg7474. Keep on learning. I am really impressed with your drive and progress.

Great job getting started on your first project! We all have to start somewhere, and it's good to know that more people are getting started with their own development projects now (I just submitted my first app to the catalog recently, too!)

Great article. I'm looking forward to the release of your app.

Really great read. I am zero, but am pretty tech savvy and I have been wanting to start getting into development for a while. I think this might get me started. Now all i have to do is find some spare time.

I swear I wrote this! I started developing in the exact same way, with barely any coding knowledge, however I learned what I needed on the Palm Development forums, where they're a great help! And now about a month later, my app (Nave360) has just been released on the App Catalog, and of course feel free to download it ;)

Thanks for this story.

After recommending w3schools to someone in our company our JS developers got really mad at me because apperantly W3Schools frequently publishes inaccurate or misleading content.

They told me that I should never ever recommend W3Schools again. See why: http://w3fools.com/

Interesting read, but should be taken with a grain of salt. This site is the product of people with an arguable conflict of interest. w3schools is providing a free (although imperfect) product that cuts into their bottom line. OF COURSE they're going to attack them.

From reading most of the information, it seems like their argument is "w3schools gets a ton of traffic and a lot of people use it but it's not perfect so... (wait for it)... nobody should use it and instead they should use our (not free) reference sites.

And THAT! is a blatant lie! All of the sites pointed to on w3fools are freely available.
I must stay I found w3schools and started on it, and now that w3fools is pointed out here, thank you very much shoe, I'm more inclined to follow those resources now, especially as they are wiki based.
That said, it seems as though the article writer was able to pick up a lot from w3schools indeed.

To jump into the fray here -- I think that w3fools.com is really nitpicking, for whatever reason. W3schools, like any site will sometimes post inaccurate information, but it doesn't invalidate them as a learning source. Even major networks, newspapers, and even wikis (which w3fools advocates) will have incorrect information.

One should never rely on a single source as their only reference for learning anyway.

Ares is a fantastic tool and so simple to use!

When I first started writing webOS apps I had to do it all by hand and I only ever finished one app. Once Ares came out things became so much easier and since then I've released 8 apps to the Catalog. Without Ares I could never have done that.

If any new programmers need help with Ares, post your questions in the "Developing with the Ares IDE" forum on the HP developer site. There are a bunch of people there that have helped me in the past and I try and answer any questions I can there too (qurghHoD).

I found eclipse easier to use and code. Also you can do more in eclipse than you can do with ARES.

There isn't anything you can do in Eclipse that you can't do in Ares. I've imported apps that I started coding in Eclipse directly into Ares and continues editing them there, without using any of the Ares components (no ares.js in the IPK).

Ares is basically a UI editor, all the Mojo code behind it is the same and any function/method/etc that is available in Mojo is available when you code in Ares.

ARES must have been updated from when I started using it. The code it generated was different that how I would do it in Eclipse.

I remember having issues getting the value from a textfield and I switched over to Eclipse and it worked just fine.

I found that once I had to pull some files from Ares **** chrome.js) so that I could directly edit a few fields that were not accepting my changes. There are still a couple of bugs in Ares here and there.

But yeah, in general, I prefer Ares, and the debugging is better, which is huge.

I like eclipse + standalone https://ares.palm.com/AresLog and https://ares.palm.com/AresDebug

I didn't find the standalone debug and logger for almost a year!

I had a go with Ares last year and gave up. I think starting from scratch and trying to learn HMTL/JAVASCRIPT/CSS and MOJO together is a pretty daunting task.

ENYO looks a lot simpler and I might give that a go when it's out of beta.

I found the PDK a lot easier to get to grips with, but I already know C++ so it was just a case of learning SDL and some Palm specific APIs.

Thanks a lot for this post! I've been trying to decide where to get started with WebOS development and this is perfect. I am not developer in the true sense (at least not in a full-time sense), more of a home-brew kind of guy. Anyhow, this gives me a good starting point to get started. I'll probably wait until Enyo arrives, which is good because I'm really busy right now.

Wow, thanks for all the great comments!

Great write-up indeed.

If anyone is interested in learning how to develop for webOS outside of Ares, I've written some tutorials: http://net-tech-group.com/pre/

Hey, thank you! Will definitely be checking it out. And if I benefit, which I'm sure I will, I'm sure you won't mind me clicking that button of yours at the bottom of the page.

No, I certainly won't mind! Regardless, I do hope it helps get you started with webOS development. We really do need more developers on this platform.

Rick's tutorials are useful for Ares development quite frequently too!

That's always good to hear! While I don't spend a lot of time with Ares, it's nice to know that it also helps Ares users.

Great app, works great!

I really like your article :) It encourages me to start developing soon

I have to say that I am glad to see that I am not the only one that is having the same problems.

I was a C.S. major in college, but didn't get to finish due to funding issues. I didn't get too terribly far. I can do some basics with HTML and Javascript, but it's all very, very basic.

Thanks for the directions to the extra resources. I have been reading the Palm Developers info and been getting lost left and right. (Basically, I can get through the beginning, but get so terribly lost when everythign begins to get to passing paraments and the like.) Hopefully something there will make it click for me. LOL

Thanks again. This gives me the confidence I need to be able to tackle this project.

I really want to be able to make apps for WebOS. Not necessarily for the world, but at least for me to use for my own specific needs. Here's hoping I can get there. :-D

Keep at it! I found it quite motivating to be working on something that others were interested in as well. Post something in P|C forums, let folks know what you're working on. It's easy to share your ipk with them if they've got Preware. Good luck!

Two problems of TRYING to become an Ares developer

1) Signing in to the Developer Membership requires a US tax code. It insists ! I tried and tried, but it won't allow me passed that page. So, only US citizens, --- I see. So, what other development environment does non US citizens use ?

2) IE8 not support.

:-o

Actually you are wrong.

I'm from the UK and I managed to register as a full developer.
Once you use the drop down box to say you are from the UK, it then changes the screen and asks for a UK Tax Code.
I entered the long number off my last tax return and it accepted it.
I'm in :-)

In any case, you can get started as a "community member" without providing the sales info. And, just a thought, have you considered Firefox instead of IE8? :)

Great motiviational article. I'm at the same stage you were at but its just been time and certainly motiviation thats stopped me getting starting but being a dad and working full time I didnt want to start anything that 'might' have been wasted efforts.

I've just bought the javascript book in your article as I was eyeing it up weeks ago. Will start looking at Ares again cos who knows when Enyo will be in full swing!!

Thank you for an excellent article and ignore the nay sayers that circle this site. They can't help themselves...

Good luck! I too have a full time job and two kids. It's easier for me to code after they've gone to bed. :)

Your article is really good. I will go back and try those resources you have mentioned.

I want to know hot build an app for webos. I don't know anything about JavaScript, HTML, C/C++ or anything beyond a little bit of MS Access which am sure is quite different. I really want to learn how to develop for webos or how to build a website. Does anyone know where to start or what I should do first? I have presently downloaded the webos SDK on my laptop and played with it a little bit and get discouraged and quit from it because I don't know what it is for.

Try the html tutorial in w3schools.com first. Then do the Javascript tutorial. Then you will have the tools to start to make sense of Ares and the Flickr app tutorial. You'll also need to spend a lot of time at developer.palm.com to learn the framework. Good luck!

I started Java for Dummies last night, since Android and WebOS are based on Java. Thanks for the encouragement.

FWIW, webOS is based on Javascript, which is different than Java. But your coding skills will be useful in any language.

Great Article, plus great alternative sources to learn "how to...". My buddy and I are taking that step to become webOs deves and I am glad that us, beginners, have a lot of support and guidance available... this is what I call a "Community".

i sware i am taking every step you wrote in this article.. it was almost spooky reading it .. all the way down to watching to much tv and everything .. haha see you in the app catalog

I know right! I'm on a very similar journey myself and I'm so excited about this process. Currently learning XHTML/CSS & JavaScript. Just downloaded the SDK 2.1 and early access 3.0.

Excellent post, thank you. I know a lot of us are in the exact same boat and wondering the best first steps to take.

A great follow-up to this would be moving on to learning Enyo. But of course, we can't talk about that due to NDA...

Easily one of my favorite articles and I am in the process of following these steps and teaching myself the same. Good luck to you.

Great article - I'm currently on the same path. I've done the HTML training through w3schools, and I've discovered that HP offers free classes as well, with activities and quizzes at the end of each section. I'm trying their Programming 101 course right now - similar to the layout of w3schools.

Thanks for the info, and good luck!

This is a great start guys! You know, video tutorials are the fastest way to hit the ground running and learn new technologies or give overviews in my opinion. Though books are great at delving further and getting more information. Sites like Lynda.com and VTC.com aren't on the map for no reason. The thing is they have 0 titles on WebOS dev. There is a market to be had there folks. I think PreCentral could corner that market and encourage the community to participate, create and upload video tutorials, walk throughs, etc. There could be a whole section of the videos directly on this site.

I am not trying to plug their software (and I am not affiliated in any way) but Techsmith's Camtasia Studio 7 is one of the best out there for screen capture and creating tutorials. It is SUPER SIMPLE to use. It is kind of expensive to buy, but if you're serious about helping spread the word and growing WebOS, and you're going to make some money off of it, BUY IT! 30 day demo is available too.

Seriously, if we all helped out and contributed, we'd turn a lot of heads...

I am a bit old, but I spent a good part of my career writing machine language code for the PIC processors. It's quite different from Javascript. I have a Palm Pre, 2 years old that will no longer receive email from my 2 accounts, and a different software is in order.
Android? Webos 2.0? A new email application? I need something that works.