12/20/09

My Experience on Palm WebOs as a developer

I had my first Palm OS when I was 13th, I tried to develop some apps for it but Code Warrior was too heavy for my computer so I gave up quickly. I saw the Palm company sinking slowly. Everybody thought palm was just dead… I don't know with which money but at the beginning of the year they released a new Palm phone "Palm Pre" on a brand new platform, WebOs. During October, I learnt how to program on for Blackberry and Android, and I pushed my app VoipBusterSMS on both marketplaces. But I wanted to be one of the first on the Palm app catalog.

I developed an app that use Google translation service. Its name is Worldwide Translator. Then I ported my program VoipBuster SMS for WebOs. It is an app to send SMS around using you 3G connection. It goes throw internet so it is very cheap. You can check the official website on www.smartmobilesoftware.com.

   
  1. The learning curve
    Firstly I bought the official WebOs book on Amazon. Not too bad for an introduction but completely useless after the two first chapters. My advice: don't buy it. Then I downloaded the sdk "mojo" which works without any issues on Windows 7 but only on the previous version of Eclipse (a well known IDE).

    WebOs Programming model : Model View Controller. The View layer (what you see) is separated from the Controller (the app brain) and the Model (data).

    The user interface of palm application is made of a mix of html/css and mojo tags. The drawback is that there is no Designer to help you.

    The controller is written in Javascript. I don't really like it. It's an old language not very object oriented like java, but there is a lot of resources on internet on it.

    The data is stored in cookies and in a tiny SQL database like on the web! But there is only one page in the book about storage and it's not explained at all in tutorials on the palm website.

    As you have understood already, if you master usual web programming, you master already the palm sdk. 
       
         2. What will slow down the development

      I main problem of the palm sdk is that there is no debugger. When you app has a runtime error, you don't have any error on the screen and you don't know where is the error in your code. You can find after many hours of looking at your code asking what's wrong that the error was a variable name misspelled… I tried to use the "Palm Inspector" but it does not work very well.

      Palm forums are not very reactive. There are not enough developers yet. I remember that I asked one day how to make work the contact picker. You can find on blogs copy and pasted code snippets that have not been tested. Today, I still do not have the solution.

      Don't forget that Palm WebOs is still at its beginning. The Sdk will be improved very quickly I think. 

          3. Relationships with the Palm Team

        The only one at first who answer on the palm forum is Chuq. And when he is not there, he is on IRC. But you won't get any answers by sending emails. The palm team seems to be very busy.

            4. Beta App Catalog E-commerce Program

          Alright, at this step, I finished my app and I wanted to publish it on the official catalog. I submitted it by email at catalog.ecommerce.beta@palm.com. I didn't get any automatic or human answers. I have asked on IRC about my app. It was correctly received and was in the waiting line. About two weeks later, I received an email telling an "account manger" was assigned to me. After this step, it goes very fast. You can open of developer account and submit you app on the palm portal. The account manager was very nice and helpful. I can't tell you how many of my apps have been downloaded because there is no report for now… The catalog is still in beta, so I almost sure they are working on it.

             
               4. Palm WebOs vs Blackberry OS vs Android development vs iPhone

          Programming language

          Blackberry : J2ME + Blackberry API. Almost like the normal java for desktop. Very fast to learn if you know already java.

          Android : Java language but very different from the usual Java. It's a pain.

          WebOs : html/javascript/css. I think it is the best (even if it not perfect).

          iPhone : Objective C. An old school language. It's better if you know C++.

          Software Development Kit

          Blackberry : Works on every platform, integrated with eclipse. I don't know why, I had always to reboot the emulator when I compiled. You can use a debugger, you have the auto completion

          Android : Works on eclipse too. Very closed too Blackberry SDK.

          WebOs : No debugger, No auto completion. Only code coloration. The good thing is the emulator that works really well.

          iPhone : Works only on Mac… I don't really like XCode but the sdk is nice.

          App Catalog

          Blackberry App World: 200$ fees at the beginning. You keep 80% of your sales revenues. They ask you some legal documents after you get started. You also have to buy a 20$ key to make your apps work on real devices. They take about 3 weeks to approve your app. There is almost no customer service. There is no way to refund your customers

          Android Marketplace: 25$ fees. You keep 70% of your sales revenues. Very nice marketplace. Your app is published on the marketplace right after you submit it. Very nice process.

          Palm e-commerce catalog: 100$ fees (5$ for me as early adopter). You keep 70%. Straightforward. You app takes 3 days to be reviewed after you get an answer from them contact manager. No purchase and download tracking for now. Customer service very useful.

          iPhone App Store : Never tried. But it seems that there is too much apps.