For a while now, the Palm Pre and its webOS have been out and about, but the accompanying App Catalog remained remarkably empty, because Palm had not yet opened its software development kit for everyone. The SKD was leaked not too long ago, and today Palm has announced the official release of the Mojo SDK for everyone who wants to get their hands on it. It includes a webOS emulator.
The news was announced on the official Palm weblog. The Mojo Software Development Kit, as it’s called, is completely free and open to anyone with a valid email address. It includes documentation and the new Mojo developer forums. You can get the SDK from the newly launched Palm webOSdev site. Palm has high hopes for the Mojo SDK and the webOS App Catalog.
The initial response to Palm webOS apps — from both developers and customers — has been enthusiastic. Even in its initial beta stage, over 1.8 million apps have been downloaded from the beta App Catalog since Palm Pre was released less than six weeks ago. Thousands of developers have participated in the Mojo SDK early access program since it began in early April. New applications are in the pipeline for the Palm App Catalog, and the App Catalog submission process will be opened to all developers beginning this fall.
Also of interest are the user interface guidelines for the webOS, which detail how to design the UI (and its behaviour) of your application. Let’s hope Palm’s submission process isn’t a total unpredictable arbitrary mess like Apple’s. Happy coding!
This should encourage more developers to participate in the app development. Palm seems to be doing everything right so far, hopefully they won’t screw up the approval process for the submitted apps.
From what I saw it would encourage me to develop for the iPhone and/or Android even more.
Wow! That bad huh?
Mind sharing some of your gripes with the Mojo SDK?
Well, both the iPhone and the Android platforms offer functionality for more than glorified web apps. Of course, there’s a reason for the OS to be called webOS, but I for one was expecting a little more than JavaScript and HTML.
I like the HTML idea for views, but I’d like it more in a MVC pattern where I can write my models and controllers in a language a little more “solid” than JavaScript. But given the recent developments in the JavaScript VM area, maybe that isn’t much of an issue.
I won’t know until I try, though
It IS more than JavaScript and HTML. It also includes JSON services/objects. The JSON objects provide many system services including easy access to HW features like the GPS and the Accelerometer. Just because the client language is JavaScript, and HTML is used as an interface definition language, it doesn’t mean you are restricted to a web browser. It is not the exact same thing as writing a web page!
Don’t be fooled by comments from those that have only taken a cursory glance at the SDK. Try following the examples/tutorials from the developer site or the SDK and you’ll see how truly powerful it is.
From my tests with the sample code and my own prototypes, the SDK is at par with the iPhone and Android. It however, has the greater advantage over the other SDKs because of the ease of development. This is because you don’t need to deal with:
1) Static language and compiler (this includes Java)
2) Exotic language (in the case of Obj-C)
3) Cross compiling binaries
The only major lacking thing, as far as I can see, in the SDK is support for accelerated 2D/3D graphics. Both audio and video support APIs are already available
Using JSON you can write MVC applications. You just need to understand how JSON works and how to apply the MVC design using it. Go here for JSON basics:
http://www.json.org/
The JSON format is RFC-4627.
-Ad
Admittedly, I’ve not looked, but there’s another thing that I strongly suspect that the iPhone can readily do with its SDK that Mojo cannot, beyond the extensive 2D/3D graphics (iPhone Quartz is nothing to sneeze at!) and that’s multithreading: if Mojo has support for proper multithreading, that’ll go a long way towards making it more feasible to port applications from the iPhone and its “exotic” Objective-C and the web-common JavaScript. Barring that, I’m guessing developers will need to wait until Palm releases a full native API that exceeds what JavaScript can do, before even multithreaded applications can be ported/written, let alone 3D applications of any significance.
Both Python and Ruby have threading APIs but it does not provide the benefits of native threads. This, as many of you may already know, is due to the GIL. This limitation is not limited to Ruby and Python, it is actually an inherent problem with all dynamic languages. Thus it is not easy problem to solve.
It would take Palm some time before we would see JavaScript threading becomes a reality. It is also something actively pursued by Google and Mozilla.
There however, might be a way to simulate it:
http://www.sitepoint.com/article/multi-threading-javascript
-Ad
Yay for making it feasible to go back to the days of Windows 3.1 programming, but worse, on a modern “multitasking” OS
(I remember using a solution not too different from that back in the early 90’s, but at least with compiled code without garbage collection, and more assured of a finer timer resolution)
There doesn’t appear to be a way to get a decent time resolution for accelerometer, or anything else, data under the Mojo SDK. Until that’s rectified, anything that’s not already running in a standard browser will likely be too much of a PITA to make functional, that, and how many of the things on the screen are mandatory, as it appears from the SDK documentation: at least on the iPhone, you can clear away and get a full screen view as desired for certain things, but the multitasking flexibility touted for the Pre^A' has a lot of costs to it, one of them being a huge amount of the screen being dedicated to other things beyond the application’s control.
I think these may be the reasons “tryione” don’t like Palm WebOS SDK:
1) Its free
2) Its available for all platforms (Windows, Mac, Linux)
3) Install any developed applications using the SDK (the developer hack, read precentral.net). No need to sign-up developer program for 99$
I think one like to pay 99$ and don’t like free stuff.
I installed the SDK and looked at the documentation. It looks fairly straight forward.
Wrong.
I’m not impressed because for all it’s hype it’s APIs are thin and there are other SDKs one can use that do far more, especially using MVC, while not becoming a glorified web head for a smartphone–ironic in that label.
They weren’t ready for their SDK [or at least I hope that is a fact] along the lines of Trolltech’s Qt or Android so for all the hype you get a thin web api set.
http://developer.palm.com/palm-sdk/jsdocs/
This is a joke. I expected more from a billion dollar corporation than what could have easily been developed by a bunch of college students doing their undergraduate projects.
Clearly, there is much more under the hood than they are revealing and people bitched about Apple and it’s webapps.
Grow up. They realize they aren’t there and anyone who thought they would be so soon has never worked at an operating system company.
I don’t know what Rubenstein was thinking, but you’d expect that he’d have learned from the decade working with Cocoa technologies [oops I forgot! He never did! He just worked on hardware; I meant to say around Cocoa technologies] that he’d have hired some of that talent to produce something, albeit a subset of the power of Cocoa for the Palm Pre.
Clearly Android and Apple don’t have to worry about those killer applications arriving any time soon.
iPhone 3.1 only extends Apple’s lead.
And anyone who thinks $99/$250 for a commercial license/enterprise license to sell apps they expect to make a living on is expensive should save themselves the trouble of being in the IT Industry.
Then again if you are going to buy a Palm Pre and bitch an iPhone is too expensive I’m glad you’re not on the platform.
Are you for real?
Beyond the core APIs you referenced, there are also other sets of APIs. One is the Widget API and the other is the Services API.
Here is the Widget API reference:
http://developer.palm.com/index.php?option=com_content&view=article…
Now have a look at the Services API:
http://developer.palm.com/index.php?option=com_content&view=article…
Is there anything in the above Services API that makes you think that you know more than a multi-million dollar corporation?
-Ad
I’ve gotten the emulator working on my Linux system, and the SDK is available for Win/Mac/Linux. It mostly consists of a Virtual-box VM which you can boot up and use most of the Pre’s features (but not things like GPS or wireless, although you can get on the Internet from inside the virtual machine). The parts I haven’t tried out are the “novacom” service which is what actually allows you to upload new applications into the emulator, and I haven’t looked into the actual programming API’s yet.
From what I’ve heard, the code is basically all HTML and Javascript designed to run in the Pre’s browser. This version of the SDK is not for uploading “native” apps (that would require an ARM cross compiler to be official for one thing). Unless I’m wrong, it looks like this could be easy to use, meaning there will be lots of apps coming soon, but don’t expect extremely powerful apps or things that go beyond what a web-browser can host due to the non-native applications.
There can be a lot of powerful apps written with the Mojo SDK. Besides HTML5+JS, Palm offers their methods for accessing hardware and doing all sorts of things.
Of course, you won^aEURTMt be able to write 3D games with it, but Palm said they^aEURTMre working on a solution for that IIRC.
Expect about a 178mg download for Windows provided you don’t already have Virtual Box installed.
What I really don’t get is why Palm didn’t include a gesture area in the VM. It just doesn’t feel as elegant without it…
Source: http://hunter.pairsite.com/blogs/20090717/
It’s well worth the read.
From the WebOS forum
“Rolls back on Windows 7 x86 as well. The leaked 0.3.4 did NOT do this, but a version of 0.3.5 did.
I also have tried the manual installation instructions for Novacom on the predev.wikidot.com site, and no dice.
The only way which I’ve gotten it to work is by running it in “XP mode” which uses an XP virtual machine to run it. Using a virtual machine to run a virtual machine is very inefficient though and on my 1.3gHz Core 2 Duo laptop with 3GB RAM, it ran unbearably slow this way.
With the Windows 7 RTM coming soon, and many developers probably having MSDN so that they’ll be able to get that ASAP, I definitely think some work needs to be done to get the installer to work.”
http://developer.palm.com/distribution/viewtopic.php?f=6&t=37
I can testify that it doesn’t work. On the plus side I do now have Virtual Box working on my machine.