Most mobile software developers have had to question the direction they are heading over the past year and Creative Algorithms are no different Today we present an interview with Justine and Cory from Creative Algorithms and ask them how the transistion to the iPhone platform has gone for them.
1/ Has the process of developing for the iPhone been more difficult that you expected?
Justine: The process has been long because of learning new tools and a new platform. Cory also worked towards making our code cross-platform, using C++ first, before tying it to Objective C, which is platform-specific. This way we can reuse the code for future platforms.
Cory: It hasn’t been that difficult, but we first experimented with an iPhone web app that required porting our code from Palm-specific C/C++ to Java. Then we ported it back to C++ again for the iPhone native version.
Objective-C/C++ is a little strange at first, but the learning curve is short if you already know C++. Apple’s API’s are straight-forward and their tools are excellent. I’m not very fond of their keyboard layout though! I ended up doing most of the coding on my PC and only loading it onto the Mac to debug it.
Justine: As far as graphics and UI are concerned, the iPhone is so much better. For example, we wrote a simple app for Palm a few years ago. I felt it needed a snazzy background, just to spruce it up a bit, At the time, graphically pleasing apps for Palm were commonplace. I came up with a simple blue background with white sine waves. The graphics data was too big to fit in a code ‘segment’ (common limitation and source of frustration for Palm OS development) because I didn’t start with the PalmOS color palette. In order to make it work, Cory would have had to write a graphics engine to handle it! That was not worth the time, so we actually never released the app. With iPhone, I can use Interface Builder for UI design and import any .png image for the graphics. It is night and day from my perspective.
Cory: It was fun experimenting with all of the view animations too.
Justine: The only thing that is frustrating on iPhone is the app real estate, due to the requirement of larger buttons for fingers to tap, instead of the fineness of a stylus. You can’t cram too much on one screen, which is a good thing, but you lose out on minimizing taps. It’s a challenge to come up with a functional yet beautiful interface. I want to ‘port the Zen of Palm to the beauty of the iPhone. I think its possible to have the best of both worlds.
2/ What was the transition like and how difficult is it to make such a big change of direction?
Justine: I wouldn’t want to make a change like this unless it makes good business sense. Since PalmOS is completely dead for future devices, it made no sense to develop new applications for it. The transition took a long time because we weren’t platform-agnostic–much of the old programming was very code specific to Palm OS.
For me, it was frustrating because I don’t do the coding–I do the UI design, graphics, marketing, website, customer service, and all the business side stuff, so and the transition depended much on waiting on Cory. While waiting, I tried to immerse myself in the new community and the new tools for communication, like twitter. However, when you aren’t immersed in the daily coding details, it can feel like it’s taking very long. Plus, I’m not a very patient person.
Cory: It took a lot of effort to refactor the code into a platform-agnostic model and platform-specific views and controllers.
For instance, I had to develop a lot of infrastructure that we didn’t have before, such as the model and its associated controls (buttons, checkboxes, fields, and so on) and messaging between those components and the views. I also had to find suitable replacements for Apple’s date, localization, and XML libraries or develop my own. We also tried to keep the design extensible so it will be easier to add more features in the future. But in the long run, it puts us in a better position to support more platforms in the future.
3/ How does Apple compare to Palm in terms of development support?
Justine: Cory will have to talk to that, but we did have some initial issues in getting our developer portal to work after we signed up for the iPhone Developer Program. Apple actually recognized the problem before us and called us. It was great to see that kind of proactivity.
Cory: Apple probably has a better support system since it has been around longer, but I wouldn’t know; I just search Stack Overflow when I have a problem.
I haven’t developed for the Pre yet, so I can’t compare Palm’s latest tools, but the PalmOS Emulator is a more accurate hardware representation than the iPhone Simulator. However, the rest of Apple’s tools are superior.
Justine: Also, since the iPhone has been around now for a while, it’s easy to take for granted the ease of delivery to the customer. Apple has really streamlined that process. As long as you get noticed in the AppStore, the customer can easily purchase, download, and install your app onto their device. This process had been seriously lacking on Palm OS and other platforms and was detrimental to sales. Adding this ease of distribution is a big part of support for developers. I had a lot of customer service requests for help to just get the demo installed on the Palm handhelds. Frustrated users do not tend to purchase software, so the AppStore is a huge improvement in that aspect. Plus, Apple has actually promoted that software is available. Palm often forgot to mention that third-party software was even an option.
4/ It’s early days, but has the move been worth it for you?
Justine: Yes, it’s nice to be on a platform that has an optimistic future. The trick now is to figure out the “rules” to make it profitable. The pricing and exposure is very different than the Palm economy and the ESD’s. The volumes are better, the commission is MUCH better, but the pricing is not, so it’s only marginally better than our early releases in the Palm world. The AppStore is a totally different animal, as far as exposure goes. I have to almost start from square one, but I’m up for the challenge. The frustrating part will be to get a catalog of apps developed, which is under Cory’s control. Did I also mention that I like to be the one in control?
5/ What mobile device do you use and why?
Justine: We both use an iPhone 3G. I started with an iPod touch, but when Cory’s Treo died, we needed new phones. We’re already on AT&T (only provider where we get coverage in our house), so it was an easy choice. It’s also good to use the device for which you are developing–you learn the nuances, better understand how apps work and feel, plus you really need to test on a real device before release. I like the iPhone better than the touch because I’m always connected.
Until I was, I didn’t realize I needed that much connectivity. We haven’t yet upgraded to the 3GS because of our AT&T plan timing, but will eventually.
6/ Are you planning on developing for any other platforms?
Justine: As Cory mentioned earlier, we also have a web app for Date Wheel. This was the first approach to a new platform that we took after Palm OS, before iPhone released it’s native SDK. We have both a desktop- and mobile-formatted version of this web app. We now hope to use this web platform to create cloud companions for our mobile apps.
We are looking at other mobile platforms, and have designed our new code for easier transport. However, each platform has a set of hurdles, so we’re currently evaluating them. It’s just the two of us and if there is a learning curve involved (i.e. another language), it adds on time, which is our scarcest resource right now. And while I’m technically minded (engineering background), it would take a while to get me up to speed on the latest programming methods.
So for now, we’re programming for iPhone and have recently released our Date Wheel date calculator on the AppStore. We’re still supporting our Palm OS apps (Trip Boss, Date Wheel, Serving Sizer, etc) and these apps have been recently certified to run on the Pre’s Palm OS emulator, Classic.
7/ Where do you see the future for mobile software development? Will it get easier?
Justine: Right now, as mentioned above, there are so many platforms from which to choose, each with its idiosyncrasies. Blackberry requires the code in Java, and Blackberry World is not included on every device, so the volumes aren’t leveraged as well as on iPhone. Android doesn’t have enough devices or volume, and the Android Market is also difficult to use and not very obvious to users on the current devices. We can reuse our C++ code, but the UI is Java-based. The Palm Pre is also a low volume option and it requires learning Javascript. Symbian is an upfront cost-prohibitive environment for developers, so it’s risky to small devs. Windows Mobile needs an update or it may go the way of PalmOS. WinMob will be a platform to keep an eye on–they have volume and a new store coming on-device, but they aren’t there yet.
Ideally, from a developer perspective, a web app would be the easiest because you could use the same code and just tweak the interface, using CSS, for screen sizes, etc. However, for adoption to be high, load times need to decrease, connectivity needs to be ubiquitous, and an offline solution is essential. These requirements are being improved upon, but they are not there yet.
8/ Anything you would like to add?
Justine: If anyone is interested in following the business perspective of developing for mobiles, please be sure to regularly visit our blog, Mobile Evolution. I’m also very active on twitter, so short thoughts are posted there (@justinepratt).
Thanks for the opportunity to share our experiences.


