Palm Developer Network Blog

November 5, 2009

webOS game development lessons learned: Self Aware at the Sprint Developer Conference

Filed under: — Chuq Von Rospach @ 1:58 pm

Dan Kurtz, the resident web expert at Self Aware Games, joined Palm on-stage at the Sprint Developer Conference to share his team’s lessons learned from having developed two games for webOS, Word Ace and Card Ace.

The team came to webOS thinking that first reports made it an attractive platform for some of their gaming ideas, especially if they matched the games to webOS core capabilities, such as always-on web connectivity, easy text entry from a physical keyboard, and multitasking. That said, they didn’t take the task of developing a webOS game lightly. As Dan said, “A new platform means problems. Developing a new game means problems. So developing a new game on a new platform meant problems squared.”

To help manage the risk inherent in such an undertaking, they prototyped their first game, Word Ace, on iPhone, since they already had experience on the platform and could get to a playable app quickly. When they turned to implementing the same functionality on webOS, they were able to take advantage of their knowledge of JavaScript, focus on learning the new platform, and implement already-robust features without having to solve for multiple unknowns.

Dan summarized their lessons learned in a few brief points. To paraphrase him:

  • Happiness is designing for a single, cutting-edge web environment, which is provided by webOS
  • To develop great games on webOS, you need extremely detailed knowledge of JavaScript and CSS
  • You can make your life much easier if you design your game around the webOS strengths summarized above
  • When you need help or to learn more, use resources on the web including Palm’s webOSdev community forums and open source code.

You can read a lot more about Self Aware and its early webOS development experience in the webOSdev profile of Self Aware Lead Designer Seppo Helava in the “Getting Their Mojo Working” series.

Palm at the 2009 Sprint Developer Conference

Filed under: — Chuq Von Rospach @ 11:05 am

Here’s a summary of all our postings — starting with the latest entry — about Palm’s activities at the Sprint Developer Conference, which was held October 26-28 in Santa Clara.

November 3, 2009

webOS developers at Sprint Developer Conference: Pivotal Labs

Filed under: — Chuq Von Rospach @ 1:52 pm

Palm engineers had a lot to say at the Sprint Developer Conference. Instead of trying to have the last word about webOS development, Palm shared the stage with four of your colleagues‹developers who already have apps available on Palm Pre. We thought you’d want to get a glimpse of what they had to say.

Chris Sepulveda from Pivotal Labs demoed their first webOS app, the Twitter client Tweed, as well as Scoop, an RSS reader that’s just about to hit the catalog. He mentioned that Tweed was really Pivotal’s chance to kick the webOS tires, to try it out and see what they could do with it. “It was our ‘Hello World’ app, so to speak,” Chris said, “and it took us a couple of months to finish it.” By the time they got to Scoop, Pivotal engineering already had enough experience with webOS and the MOJO SDK that they were able to complete development in weeks.

Among the reasons Pivotal decided to jump into webOS were that Pivotal engineers had a lot of experience coding in JavaScript from their web dev project and because of that they were able to experiment and iterate with ease. It also made it easy do test-driven development, a style favored by the Pivotal team. (You can read more about test driven development and webOS in the webOSdev article, Mojo Test Framework. Additionally, they felt that webOS allows for a “stickier” user experience rather than one that prompted users to get in and get out quickly.

Next he turned to the Mojo SDK and Framework. Chris said it was really easy to learn for those with experience with JavaScript and, in particular, Ajax, adding that if you only know request/response web development the transition to Mojo would be more difficult than if you are used to asynchronous programming techniques. He also pointed out that you really don’t have to use much CSS or HTML if you use native Mojo widgets and default styling, and if you decide to use your own widgets/styling, things get interesting fast.

He concluded with a couple of general points for web developers considering webOS development: First, when building a mobile app, you have to be much more concerned with ergonomics, that is your use of space and how users reach each part of your application. And, second, he suggested that webOS lets the developer focus on building the best applications, not simply
applications that work.

Don’t forget to read the webOS developer profiles series, “Getting Their Mojo Working,” in the webOSdev magazine.

October 27, 2009

Palm Engineer Demos the Wonders of webOS at the Sprint Developer Conference

Filed under: — Chuq Von Rospach @ 6:55 am

Until now, we’ve been pretty nontechie here, but what Palm Engineer Matt Hornyak did during his talk at the Sprint Developer Conference today was so cool that we have to get really technical here, at least for today.

Matt is the lead engineer on the webOS phone app. He also wrote Clock, which ships with Pre. In front of the gathered masses at the Sprint conference - somewhere around 500 of them - he went deep inside Clock. Matt explained his motivation in writing it and then described the design and coding of it.

All great stuff, but he saved the best for last. Wanting a way to change the length of the snooze alarm in the Clock app, Matt cooked up the code, added it to the app, and - voila - Clock had snooze control, running on the device I might add. And all this in about five minutes, in front of a live audience.

Here is the code he used for the control, with Matt’s annotations (in boldface) about what each section does. You might want to take a look at Clock and try adding this yourself, although if you’re not really experienced with JavaScript and Mojo yet, you might not want to make this the first thing you try.

If this is over your head, hang in there. We’re collaborating with Matt on an article about Clock that will include more detailed instructions on how to add the snooze feature. Consider this a sneak preview.

More from the Sprint conference later this week. Check back, ok? Out for now.

Listing 1. Adds the new widget, and the borders around it.

Index: app/views/settings/settings-scene.html
===================================================================
— app/views/settings/settings-scene.html    trunk)
+++ app/views/settings/settings-scene.html    (demo)    @@ -33,5 +33,16 @@
</div>
</div>
</div>
+
+    <div class=”palm-group”>
+        <div class=”palm-group-title”>
+            <span x-mojo-loc=”>snooze</span>
+        </div>
+        <div class=”palm-list”>
+             <div class=”palm-row single”>
+                <div id=”snoozeduration” x-mojo-element=”ListSelector”></div>
+            </div>
+        </div>
+    </div>

Listing 2. Changes settings assistant to set up new widget, and respond to events from it.

Index: app/controllers/settings-assistant.js
===================================================================

— app/controllers/settings-assistant.js    trunk)
+++ app/controllers/settings-assistant.js    demo
@@ -1,6 +1,26 @@
/* Copyright 2009 Palm, Inc.  All rights reserved. */

var SettingsAssistant = Class.create({
+    // values for snooze duration listselector
+    snoozeDurationChoices: [
+        {
+            label: $L("5 min."),
+            value: 5
+        },
+        {
+            label: $L("10 min."),
+            value: 10
+        },
+        {
+            label: $L("15 min."),
+            value: 15
+        },
+        {
+            label: $L("8 hrs."),
+            value: 480
+        },
+    ],
+
initialize: function(settings, themes, onThemeChange) {
this.appController = Mojo.Controller.getAppController();

@@ -14,6 +34,7 @@
this.initializeSettings();

this.onKeyPress = this.onKeyPress.bind(this);
+        this.onSnoozeDurationChange = this.onSnoozeDurationChange.bind(this); // event handler for snooze duration list handler

this.easterString = “”;

@@ -22,8 +43,12 @@
// VERY IMPORTANT: UI for ringer switch has OPPOSITE MEANING of variable
// it’s reversed here for display and must be reversed back when saving
initializeSettings: function() {
-        this.settingsModel = { };
-        this.settingsModel.ringerSwitchObeyed = !(this.settings.ringerSwitchObeyedGet());
+        this.settingsModel = {
+            ringerSwitchObeyed: !(this.settings.ringerSwitchObeyedGet()),
+            snoozeDuration: this.settings.snoozeDurationGet() // load setting for snooze duration into scene’s model
+        }
+
+
},

setup: function() {
@@ -50,6 +75,15 @@

this.controller.get(’theme_set’).observe(Mojo.Event.tap, this.onThemeSelect);

+        this.controller.setupWidget(’snoozeduration’, { // setup snooze duration’s listselector widget
+            label: $L(’length’),
+            choices: this.snoozeDurationChoices,
+            modelProperty: ’snoozeDuration’,
+            labelPlacement: Mojo.Widget.labelPlacementLeft
+        }, this.settingsModel);
+
+        this.controller.listen(’snoozeduration’, Mojo.Event.propertyChange, this.onSnoozeDurationChange);
+
this.controller.listen(this.controller.sceneElement, Mojo.Event.keypress, this.onKeyPress);

},
@@ -74,6 +108,10 @@
this.settings.ringerSwitchObeyedSet(!(this.settingsModel.ringerSwitchObeyed));
},

+    onSnoozeDurationChange: function() { // respond to events on list selector widget
+        this.settings.snoozeDurationSet(this.settingsModel.snoozeDuration);
+    },
+
themeUpdate: function() {
var theme = this.themes.getCurrentTheme();
this.controller.get(’theme_name’).textContent = this.themes.getNicename(theme.name);

****end of framework-specific code; the rest is app-specific


Listing 3. Changes settings model to get/save snooze length.
Index: app/models/settings.js
===================================================================
— app/models/settings.js    (trunk)
+++ app/models/settings.js    (demo)
@@ -36,7 +36,8 @@
timePickerInterval: 5,
dashboardHide: false,
ringerSwitchObeyed: false,
-            initialized: true
+            initialized: true,
+            snoozeDuration: 5
};

this.save();
@@ -72,9 +73,18 @@

ringerSwitchObeyedGet: function() {
return this.values.ringerSwitchObeyed;
-    }
+    },

+    snoozeDurationGet: function() {
+        return this.values.snoozeDuration || 5
+    },
+
+    snoozeDurationSet: function(value) {
+        this.values.snoozeDuration = value;
+        this.save();
+    },
+
});

Settings.kCookieKey = “settings”;

Listing 4. Changes alarm model to have adjustable snooze time.
Index: app/models/alarm.js
===================================================================
— app/models/alarm.js    (trunk)
+++ app/models/alarm.js    (demo)
@@ -341,12 +341,19 @@
},

// snooze this alarm.  pass true to indicate that it was snoozed by another popup opening
-    snooze: function(alarmInterrupted) {
+    snooze: function(alarmInterrupted, duration) {
var newParams = Alarm.kAlarmLaunchParams.evalJSON();
newParams.params.id = this.id;
if (alarmInterrupted) {
newParams.params.alarmInterrupted = true;
}
+
+        if (duration) {
+            duration = “00:” + duration + “:00″
+        } else {
+            duration = Alarm.kAlarmSnoozeDuration;
+        }
+
var newParamsJSON = Object.toJSON(newParams);
this.schedulerSetRequest = new Mojo.Service.Request(Alarm.kAlarmSchedulerUri, {
method: “set”,
@@ -355,7 +362,7 @@
“key”: Alarm.kAlarmSchedulerKeySnooze+this.id,
“uri”: Alarm.kAlarmLaunchUri,
“params”: newParamsJSON,
-                ”in”: (alarmInterrupted ? Alarm.kAlarmSnoozeInterruptedDuration : Alarm.kAlarmSnoozeDuration)
+                ”in”: (alarmInterrupted ? Alarm.kAlarmSnoozeInterruptedDuration : duration)
},
onSuccess: function(payload) {
// Mojo.Log.info(”Alarm: snooze succeeded”);

Listing 5. Changes ring notification to get snooze length.

Index: app/controllers/ring-assistant.js
===================================================================
— app/controllers/ring-assistant.js    (trunk)
+++ app/controllers/ring-assistant.js    (demo)
@@ -5,6 +5,7 @@
initialize: function(params){
this.appControl = Mojo.Controller.getAppController();
this.appAssistant = this.appControl.assistant;
+        this.settings = this.appAssistant.settings;

this.alarmOff = this.alarmOff.bindAsEventListener(this);
this.snooze = this.snooze.bindAsEventListener(this);
@@ -55,7 +58,7 @@
} else if (this.shortSnooze) {
this.alarm.snooze(true /* short snooze */);
} else {
-            this.alarm.snooze();
+            this.alarm.snooze(false /* not short snooze */, this.settings.snoozeDurationGet());
}
},

October 21, 2009

Join us in Santa Clara, CA, next week at the Sprint Developer Conference

Filed under: — Chuq Von Rospach @ 11:55 am

If you’re already registered for the Sprint Developer Conference, look for us there. If you haven’t, there’s still time. Go to http://sprintadp09.com/sprint_ADP. html for more information.

This is the first time Sprint has opened the doors of its conference to all developers. In keeping with that spirit, Palm Developer Relations Directors Ben Galbraith and Dion Almaer will play host to a variety of activities to help open the kimono about webOS to the wider world of mobile developers.

Here’s what we’ll be doing, with Ben and Dion MC’ing:

  • 4 hours of mostly technical sessions introducing webOS to developers. They’ll be joined by resident experts from the Palm software engineering team to give you the low-down on Mojo and webOS. Special guests from the developer community will also join Ben and Dion to demo their apps and talk about how they got going on webOS.
  • A 2-hour coding session, where Palm developer technical support and engineering staff will help you get started with app development.
  • A keynote address by Ben and Dion, where they’ll share their vision for the web and mobile development

If you’re there, please come see us at the Palm booth at the exhibition.

October 5, 2009

What You Need To Know About the Palm App Distribution Program

Filed under: — Chuq Von Rospach @ 8:14 pm

Following up on the release of the beta app catalog e-commerce program, we’re excited to announce that we’re opening our app distribution program to the entire Palm® webOS™ developer community by the end of the year.

This is an exciting moment for us as we share our vision and future plans. In response to your feedback on existing programs, and drawing on the web for inspiration, we designed our program to give you the kind of choice you’d expect from a web platform and to create both a better developer and user experience for mobile apps.

The Program’s Inspiration

The web as a platform isn’t just about how applications are developed, but how they are distributed and discovered as well.  The web, and the value of the community that drives it, were top-of-mind considerations as we brought the individual elements of the program together.

Specifically, we appreciate that the web is not only a large distribution channel, but also an incredibly smart and efficient one.  The community actively helps users find the content, people, and services that are relevant to them. It also brings more creativity to that process than we could ever assemble inside of Palm.  The community touches nearly every possible customer, and has demonstrated it can monitor its own user-generated content, services, and spaces.  At Palm, we want to create great mobile experiences for both the developer community and the web community at large.

Also, we appreciate that accessible, transparent online marketplaces are well accepted and have driven results for those who participate—both those who build and sell products and those who consume them. These promotional opportunities provide developers and merchants great opportunities to invest in their business—to drive awareness and get value for their marketing investment and do so with transparency and efficiency.  These new marketplace mechanisms are driving huge value for those who use them.

You’ll see in our initial program the start of our investment in the community and the use of market forces as natural mechanisms for applications to find their value and for developers to build their businesses around.  Let there be no question: We envision a Palm application ecosystem and product experience that is even more community and market driven—both on our devices and off.  The initial program elements you’ll read about here are twinkles in our eyes relative to where we can go and what we can do.  We look forward to building out this program and its possibilities with your involvement.

The Program Basics

Later this year, you’ll be able to choose from the following methods of distributing your applications as part of membership in the Palm developer program ($99 at developer.palm.com):

  • Promote your free or paid applications on the web for distribution to webOS devices.  Apps require self-certification according to Palm’s guidelines but are available to promote freely in any online channel with a unique URL without Palm application review. You can also provide access to other relevant content about your app, including descriptions and reviews.  Applications will be distributed to any webOS device using our over-the-air service.
  • Promote your applications in the on-device Palm App Catalog.  Distribute and promote your free or paid apps to webOS devices using a highly targeted channel, the on-device Palm App Catalog.  These apps will be reviewed and approved by Palm.  Recognizing the value of the on-device catalog as a distribution channel and as a friction point to control the flow of apps into it, we’re going to charge $50 for each app you submit to this channel.
  • Priority placement in the app catalog.  A limited number of priority placements will be available in the catalog if you want to obtain greater visibility for your application.  These placements will be openly available for bid in our auction system at prices that are determined by the community, based on demand.

All paid application purchases entitle the registered application developer to receive 70% of revenues, net of applicable taxes.  Developers who charge for their software will need to set up a PayPal account to receive their share of revenue from Palm.  Customers will initially be able to purchase applications with MasterCard and Visa.

Additionally, if you are an open source developer, you can promote your open source software on the web through a unique open source method without paying the $99 program fee.

More Details

Palm App Catalog. The Palm App Catalog represents the most targeted channel to webOS customers, as it is available on every webOS device.  Distribution through this branded, targeted channel requires application review.  Apps can be submitted through the developer site at developer.palm.com. They are subject to approval according to the Palm User Interface Guidelines as well as the Palm Application Content Criteria.  As announced in August, we are accepting applications to the beta app catalog e-commerce program for distribution on the catalog.

Recognizing the value of the on-device catalog as a distribution channel and as a friction point to control the flow of apps into it, we’re going to charge $50 for each app you submit to this channel.  This fee covers the lifetime of the app, even though Palm may review many versions of it.  Palm will review apps in the order in which they are received and will respond in a timely fashion. Should your app be rejected, Palm will let you know specifically why the app was rejected, and you can revise and resubmit your application.

We will also make priority placement opportunities available within the Palm App Catalog for developers to gain more visibility for their application. We have heard feedback that there are too few options for investing in the promotion of applications, and we want to provide developers the ability to invest and grow their business. These promotional opportunities will be open, transparent, and priced by the market through an auction mechanism.

Web distribution. Recognizing the value of the web community and the web as a promotional channel, Palm will invest in the tools and services that help you utilize the web and other online channels as powerful promotional opportunities for webOS applications.  This approach also addresses feedback we’ve heard from developers who are frustrated by a review-first, publish-later process.

To enjoy the full capabilities of our program, you can self-certify that your app meets the Palm User Interface Guidelines and Palm Application Content Criteria and receive a unique URL to start promoting the app online within hours.  You can use this URL in any of your existing online marketing assets, and you can begin selling these applications immediately, without review by Palm.  With this URL, you can create or use existing marketing channels such as your email list, blog, SEO, and more.  These links will provide the ability for users to authenticate and instantly receive applications directly to their devices using Palm’s over-the-air distribution mechanism.

Public feeds of these URLs and other relevant application data (such as reviews and ratings) will also be made available to the community to help applications find their market. We’re excited to see the emergence of directories, ranking mechanisms, and other inventive services that can be built around this data.

We expect this form of distribution to be especially popular while applications are still in their beta phase, when you are anxious to get applications to customers ASAP to create rapid feedback cycles and help improve the quality and usability of applications.

Open source apps.  The web would never have happened without the open source movement. In this tradition, we will enable the distribution of open source webOS apps to the web without you having to pay the $99 program fee. If the source of your app is available to the public under one of the commonly accepted licenses (BSD, Apache, GPL, MIT, etc.), you can distribute your apps on the web for free.  Open source projects will have a separate registration process and these open source accounts can only have open source projects associated with them. You will still have to register at webOSdev to download the Palm Mojo™ Software Development Kit; SDK downloads are free.

The Rules

Palm has built a set of application criteria intended to provide a great webOS experience.  We expect these guidelines to evolve and change as the developer and end-user communities become more active in our review and merchandising practices, and as our device and service capabilities evolve.

The Palm Application Content Criteria exist largely to ensure a high standard of application content, performance, and appearance as well as to protect webOS devices, other webOS apps (and particularly the data they rely on), and the carriers’ networks.  You will want to review these rules carefully, since they give Palm the right to suspend or discontinue distribution of your application if you choose to disregard them.

By opening up a web distribution channel free from our review, we are placing a great deal of trust in you—the developer—and the community.  We want you to embrace these principles, establish a high bar of quality and user experience, and help enforce these rules.  Our commitment to you is that we will be clear and transparent about these guidelines, and continually invest in our services that will give you more freedom over time with our platform.

What Now?

While the full program has yet to be released, you can download the Mojo SDK for free at webOSdev and join the webOSdev community to participate in our forums and both give and receive support on webOS application development.

Additionally, you can submit applications to be considered for our e-commerce beta program, which will run until our full program is released before the end of the year.

We look forward to building great mobile experiences with all of you, and as always, welcome your feedback.  Tell us what you think by sending a note.  And stay tuned for more details about the app distribution program as we get closer to launch!

Finally, we would like to take a moment to thank our early access partners and developers who have been working with us to build our platform and program.  Today these partners have introduced over 125 applications that have been downloaded almost 8 million times since the first webOS device, the Palm Pre™ phone, shipped just three months ago.  It has been great working with you, and we look forward to more!

—the Palm Developer Relations team

September 28, 2009

Now available: Mojo SDK v1.2

Filed under: — Chuq Von Rospach @ 1:10 pm

Palm® just released webOS™ version 1.2, and with it the latest version of the Mojo™ Software Development Kit.

As always, the number one reason to update your SDK installation is to keep your development environment in sync with the version of webOS that’s running on end-user devices. The emulator ROM and Mojo Framework in the Mojo SDK v1.2 match the software that began rolling out to devices today via over-the-air updates.

Aside from staying up to date, there are plenty of other good reasons to get the latest SDK. Here are some of the highlights:

  • Improved installation and development platform support. The Mojo SDK now supports Mac OS X 10.6 (Snow Leopard), Windows 7 Beta (32- and 64-bit), and Windows Vista 64-bit. We’ve also addressed a number of configuration and installation issues that you’ve reported – thanks for your help in tracking these down.
  • New and improved SDK tools. Debugging your app should be much easier thanks to the new palm-log tool, which can display or tail your app’s log output including JavaScript syntax errors and runtime exceptions. The v1.2 SDK also includes a new webOS Resource Monitor (WORM) tool to help you monitor your app’s memory usage and an updated Palm Inspector with improved reload functionality and reliability.
  • New and enhanced APIs. There are a handful of new APIs in the latest SDK, including perhaps the single most popular request: the new Download Manager API lets apps download and upload files over HTTP.

And, of course, we’ve updated the Mojo SDK documentation so you will know how to take advantage of the enhancements and new functionality.

For a complete list of Mojo SDK v1.2 enhancements, as well as known issues with the new release, go to the Release Notes. And, as ever, please go to the webOSdev Forums to let us know how things are working and what more we can to keep improving your webOS development experience.

September 25, 2009

Ben Galbraith and Dion Almaer to lead Developer Relations team at Palm

Filed under: — Chuq Von Rospach @ 7:03 am

Palm has a long history of creating innovative platforms with rich opportunities for developers. Over the years, we’ve sparked the creation of tens of thousands of applications, offering our customers a vast range of options and creating huge opportunities for our developer community.

Now that our exciting Web-based platform, Palm webOS, is ready for developers, the time was right to ramp up our Developer Relations team, to ensure the best possible developer experience. When we sat down to think about the type of person that needed to lead this team, two things were clear: we needed real developers at the helm, and they needed to be developers with a deep understanding of the Web environment.

I’m incredibly excited to announce that we have found two rare individuals to help us lead this charge. As of today, Ben Galbraith and Dion Almaer are joining Palm to run the Developer Relations group. These guys have been in the community forever. They founded Ajaxian.com, a great community built around leading-edge Web development. More recently, they worked together at Mozilla to create some revolutionary forward-looking developer tools, such as Bespin, an innovative Web-based coding environment.

When I first met them, I instantly appreciated the passion that they had for the Web, and their desire to do great things to engage and excite developers. I expect them to think big and work diligently to make Palm webOS a platform you love to be a part of, and also one that helps you grow your business.

Join me in welcoming them to the fold, and also join us as we begin to take the wraps off what we know will be an exciting and compelling developer program.

They have both written on their personal blogs about the start of their journey at Palm. A lot of you already know them so you’ll enjoy reading what Dion and Ben have to say. (You can also connect with them on Twitter: @bgalbs and @dalmaer.)

Best,
Katie Mitic
SVP, Product Marketing

September 17, 2009

Two videos to watch

Filed under: — Chuq Von Rospach @ 9:44 pm

I thought I’d pass along pointers to a couple of videos you might want to watch.

The first one is to the Engadget Show, where Palm’s CEO, Jon Rubenstein, sits down for a talk about Palm, the Pre  and webOS.

The other video is the second webcast by Palm’s CTO Mitch Allen, this one covering webOS Application basics:

For those getting started programming in webOS, it covers a lot of the ground to get you going and is well worth the time to view.

September 14, 2009

Sharing Q&A from Application Basics Talk

Filed under: — Chuq Von Rospach @ 10:07 am

Just a quick note to thank everyone who attended the Application Basics webcast on Tuesday (September 9th), and to thank the O’Reilly team for hosting the webcast. We covered a lot in the hour ranging from how to access and install the SDK, an overview of the SDK tools and building a simple application. The webcast was recorded and has been posted by O’Reilly.

This webcast was based on Chapter 2 of the Palm webOS book, which was released last month and is now available on O’Reilly’s website as well as Amazon, Barnes & Nobles and other sources for technical books. We haven’t scheduled any other webcasts at this time but we are interested in doing more on topics that most interest you. There could be some based on other chapters of the book or just on some specific webOS topics - let us know what you’d like to see.

Also a thanks to the readers who have taken time to email or submit comments and corrections to the book. We rushed to get the book into print and available as close to the SDK release as we could, but in doing so we missed a number of problems in the sample code and in the book copy. Those are all being corrected in a second printing of the book which O’Reilly is working on now and once available, there will be a simple change summary provided on the webOS book’s page on O’Reilly’s site.

I had a lot of great questions in the Q&A period, so I wanted to share them with other developers who may have similar queries:

Application Basics - Webcast Q&A

Q: How do I get access to the shipping applications, on the emulator?

Most of the Palm applications included on end-user devices are accessible from the emulator as well, and may be run from the webOS Launcher, just like on a real device. Because the emulator doesn’t currently support all device functionality, some apps (particularly the media apps) are not fully functional in the emulator. You can access application code by connecting to the emulator via Novaterm or SSH and browsing to /usr/palm/applications.

Note that carrier-specific applications (e.g. Sprint Navigation) are not available in the emulator. Nor is the App Catalog, so third-party apps cannot be installed from the catalog. Of course, you can use the SDK’s command-line tools to install any app for which you have source code or a package file (.ipkg), including your own applications and the SDK sample apps.

Q: Besides the emulator, what tools are there to test a webOS app?

The Mojo SDK includes a variety of tools that complement the emulator, including a terminal-based JavaScript debugger, a DOM inspector, and tools for viewing application log output. The SDK’s command-line tools can be used to install apps on physical devices as well, for real-world testing. Third-party tools are emerging as well – for example, Pivotal Labs has developed a library called Pockets for doing test-driven development for webOS. Pockets includes a version of the Jasmine test framework and is available from their gitHub repository.

Q: Are there plans to release additional tools for creating apps without using the command line?

Yes, we believe that it’s very important to have high level tools and are actively working on solutions. We don’t currently have any specifics to announce, but it’s a high priority for the SDK team. For now, besides Palm’s own Eclipse plug-in, a number of third-party tools integrations exist — check the webOSdev forums for more information.

Q: When will the 1.2 SDK be available?

The 1.2 SDK will be released as soon as webOS 1.2 itself is released.

Q: Can we use jQuery or other libraries?

Yes, you can use other JavaScript libraries and frameworks like jQuery. In some cases, however, there may be some constraints, or issues affecting interoperability with the Mojo framework and Prototype (on which the Mojo framework depends). This topic has been discussed in the webOSdev forums for some frameworks, including jQuery.

Q: When will the SDK support 64-bit Windows?

The latest SDK release (1.1.0.19) supports 64-bit Windows. However, note that this release contains an installer bug that affects upgrades. If you’re a new user, the 1.1.0.19 SDK will install correctly on 64-bit Windows. If you’re upgrading from an older version of the SDK, you’ll need to uninstall the old version before installing 1.1.0.19. This bug will be fixed in the next SDK release.

Do you have more questions? Join us on the developer  forum and ask away!

(posting this for Mitch — chuq)

Powered by WordPress