Getting Their Mojo Working: webOS Developer Profiles
Part 5: Mark/Space—Preparing for webOS: A Predevelopment Checklist
The Missing Sync for Palm® Pre™, the newest member of the award-winning Missing Sync product family from Mark/Space, automatically synchronizes contacts, calendars, notes, tasks, photos, music, videos and other files via Wi-Fi or Bluetooth whenever your webOS device (Pre, Pixi™) is near your PC or Mac. Through its experiences developing for virtually every smartphone platform, Mark/Space has developed its own way of getting ready for new programming approaches and platforms, an extensive predevelopment checklist. I guess in this case, we could call it a Pre-development checklist (pun intended). We spoke with Lawrence Davison, head of engineering, while he was on the road from Silicon Valley to the Sonoma Valley wine country north of San Francisco on the Friday after the product officially launched. He generously shared details about how they got ready for webOS development and some of their first experiences on the platform. You can also see Lawrence in The Palm Developer Experience video that’s on webOSdev.
webOSdev: What mobile platforms have you developed for?
Lawrence: I worked at another high-tech company in the early 90s for about ten years in the areas of network management and also a variety advanced network technology. This included projects in the data center, Wi-Fi, Ethernet version 6, last-mile Ethernet, fiber optical networking, a number of projects such as that. We worked on fixed and mobile wireless projects as well.
At Mark/Space we've developed for probably every major smart phone platform. Pretty much you name it, we've done it. I've touched almost every platform myself personally.
webOSdev: What kind of applications do you like to develop?
Lawrence: Ones I think we're enjoying the most are the ones that are centered around the concepts of quick connections and social networking. We've been looking at ways people can locate each other, meet by proximity, and then quickly share some standard bit of information and make it easy to translate from one mobile device to another.
webOSdev: Why did you decide to develop for webOS?
Lawrence: Mark/Space in general has been a Palm fan for quite some time. The company did some substantial app development on the original Palm OS. So we were all kind of happy to hear that Palm was turning the corner, having the new OS. We contacted a few folks at Palm that we keep in touch with who said, "Yeah, there's a compelling need for sync solutions, particularly for Mac. Can you guys work closely with us?" And that's what we did.
webOSdev: Which development tools and IDEs did you use and why?
Lawrence: I tend to just use vim myself. I use Eclipse on and off again; it's got some advantages and disadvantages. The nice thing about webOS is that you can use Eclipse if you're familiar with it, but you're not stuck to it. You can use pretty much whatever editor you're most familiar with and like. I would say that the Palm tools team has done a pretty good job of maintaining the quality of the development tools that they've made available for us out here in the developer community.
webOSdev: Were there any big surprises along the way?
Lawrence: Well, going into it, I was a little surprised that Palm was going to be as aggressive about trying to do one the visions of a Web 2.0 environment. They have enabled comprehensive and substantial development in pure web languages. My angst was put at ease when I first started to see what they were offering, how they were extending JavaScript in sensible proven ways and providing a lot of the more common and needed features. It all just kind of clicked after that.
We were actually able to leverage our web master and our graphic artists quite a bit. In fact I would say they really could be real developers in the environment. They played a large role in developing the user interface of our application. In fact this fostered even a career change for one IT person! So, surprisingly, we were able to leverage more people's talents and get them more involved directly in the project than we originally thought we were going to be able to do. It ended up being pretty positive. In fact it helped make the entire technical staff more of a team and inspired collaborative effort.
webOSdev: How does Mojo compare to other development environments?
Lawrence: Mojo is pretty complete in terms of the UI elements, construction, and the personalization that you need to get the job going. They've leveraged the best of JavaScript technology that's been developed over the last five or six years and abstracted it in I think a pretty nice way. We were able to write some fairly sophisticated objects into the data repositories. It didn't require a whole lot of effort.
webOSdev: Is there anything that webOS can do that other mobile platforms cannot?
Lawrence: I think that the ease of development and time to market for most apps is pretty extreme. Typically we go through a whole checklist of items to understand how to best support a platform. With webOS we were able to go through our checklist fairly quickly.
I think we developed our sync client on webOS in probably half the time that a normal platform would require. It might have been even faster, but we had to work through some of the early API issues.
webOSdev: Tell me more about the predevelopment checklist.
Lawrence: So now in our possession is an approximately 50-item preflight checklist that covers all sorts of imaginable things: power control, databases, UI widgets, items that we for developing our products. This has been augmented each project we go through. Basically, it has items such as service structures and available APIs. We look at system services and APIs like signaling, notifications, do we have access to the log files like the call log and SMS. Further, can we get at the notes and tasks databases or do we have to write our own. We look at the media formats and which are the best-supported formats for a given device. What access do we have to the device’s web browser? What kind of camera support will be on the device? How is time represented on the device? Can we get at things like free disk space and memory? Do we have ways of getting that profiling data? Can we profile our apps and how do we debug them?
And then we do another pass after we go through that checklist. And frankly the Palm Developer Relations Team was pretty good about going through all these items with me back in February this year. And thus we were able to go over the list sufficiently to determine that we could actually bring a meaningful product to webOS.
webOSdev: What comes next?
Lawrence: And additionally, I want to mention that we do performance testing. The next phase of the project in terms of ratification is the performance testing where we'll write some sample programs that basically just shove as much data onto a device as we can, the major data types that we cover, the media and PIM data, and just see how does it performs and what are the characteristics of it of it are in terms of stability, so we can make better plans for how we interact with the device.
Sometimes the APIs look reasonably complete but then when you try to implement on them, the performance can be abysmal on many devices. So you might have to spoon feed such a handheld. You might have to pay a little bit more attention to the protocols going to the device and their implementation.
Early on we identified a few performance issues with webOS, and the webOS team was pretty quick about addressing them and even provided some augmented APIs that allowed us to add multiple records at a time to the device.
webOSdev: How did you come up with this checklist? And how long has it been in use at the company?
Lawrence: It's been in use for almost two years. It was just clear as we went into a couple of different platforms, we were always being hit with surprises, and we really don't want that many surprises on a development schedule. So in order just to improve our lives and to at least be able to build some contingency plans, we constructed this checklist that spelled out a clear picture of what we needed to do here or there.
webOSdev: So this checklist is more of a predevelopment checklist rather than a quality assurance checklist.
Lawrence: That's right. It's a predevelopment checklist. It would be something that we would use to plan exactly what features we would be able to add to a device, and it would help us to determine whether it made sense for us to pursue a given platform.
We do have QA checklists as well where cover things like performance and memory management, but that's a separate set of checklists. We use a couple of tools for test case management. So we have test cases that relate loosely to the preflight checklist, but they strongly relate to the data types that we support on a given platform.
webOSdev: How did webOS do with the QA checklist?
Lawrence: It exceeded the minimum requirements when we started and has grown since then. I’ve emphasized the rapid development time. And really because we could rapidly turn concepts into reality, it measured quite well for the features that we utilized in webOS. Early in the webOS development we covered these with Palm, just to make sure the minimum was there and they supported us. We really were able to I think meet all the criteria that we needed to meet to build a pretty strong product for Palm, one that can be enhanced over time as new features and APIs appear.
webOSdev: That’s great to hear. Now on to some standard questions we’re asking everyone. How many cell phones have you had in the last five years?
Lawrence: Are you sure you really want to ask that? (laughs) I've probably had a dozen. And then of course there's all the ones I run across at work, so I'm not counting those. I typically will use a different cell phone during the week depending upon what I'm working on. I actually enjoy carrying Pre around, and I would not say I feel the same about every device I use.
webOSdev: How do you prefer to communicate?
Lawrence: I guess about 60 percent email, and then an equal distribution of voice, IM, and SMS.
webOSdev: If you're up all night working, how do you keep yourself going?
Lawrence: I was just up all night coding this weekend. I just take a break every so often and try to outside and go for a walk. I used to be able to drink a lot of coffee and stay up but it doesn't always seem to have the same effect any more. So I just try to keep my eye on the clock and every hour and a half or so I try to get up and do something physical to kind of get my body going again.
webOSdev: Do you listen to music?
Lawrence: I don't always listen to music at the office but certainly when I'm working alone I do and I've got keyboards and guitars and stuff like that right by my desk so, particularly when nobody's around, sometimes I'll just crank up the amps and go wild. Sometimes it works out well because I can turn around and reuse the sounds and snippets in there for some of the work I do. In fact, I recorded some of the ring tones that we include in The Missing Sync for the Palm Pre.
webOSdev: When you get stuck with a development problem, what do you do?
Lawrence: Well, there's usually three ways that those things work out. One, you are doing something totally stupid and you need to like stop whatever it is that you're doing, look at it again, and do it the right way. Two, you've hit upon a bug that you really need somebody else's help to fix. One of the great things about working with Palm is that the engineers were really eager to make sure that the bugs were fixed and so forth. And then the final thing is The Mystery. And The Mystery sometimes just get resolved by some later "aha" moment or perhaps by somebody else, even out of context, giving a clue about what's going on. Those aren't always the nicest ones because you can't always fix them right away.
webOSdev: Thank you so much for your time.
Lawrence: OK. Great. I hope I helped some of the developers out there.
webOSdev: I’m sure you have, Lawrence. Thanks for all the detail—that’s very generous of you. We’d like to send you a copy of Mitch Allen’s book Palm webOS for taking the time and trouble, and we wish you all the best.
Want webOSdev to interview you, or do you want to help create technical content that might help other webOS developers? Then be sure to submit your app. Once it’s accepted, Palm will tell you what the next steps are.

