Latest in Cross platform

Image credit:

Interview with Inglorious Apps, a webOS to iOS developer switcher


Inglorious Apps is well-known in the webOS world for its work on Notes, Voice and Glimpse, a multi-tasking app for the Touchpad that lets you divide up the screen and use several different widgets at the same time. Now that webOS is on the decline, the talented development company has ported its apps to iOS and Android using Enyo. Enyo is a multi-platform development tool created by HP/Palm that lets webOS developers write an app for webOS and then port it to the iPhone, iPad or Android devices.

After a few months of diligent coding, Inglorious Apps ported two apps from webOS to iOS. Dock is a stylish screensaver app that displays information like your RSS feed, Twitter feed, headline news and more. Panes is an iPad app that tries to simulate Glimpse for the Touchpad. The first version of Panes, which was a straight port from the webOS app, was rejected because Apple's developer agreement doesn't allow apps that use widgets. A modified version of the app is available, but it's a work-in-progress as Inglorious Apps codes around this restriction.

We took some time to talk to the developer behind Inglorious Apps (who preferred to remain unnamed) about his experience with iOS development and what he thought about the switch from webOS to iOS. You can read our questions and his answers below.

Do you develop full time or is this something you do as a secondary career?

I develop apps part-time. Mostly during my spare time, when I get off my (real) day-time job.

How many hours a week are spent on development, debugging, updates, and customer service?

I spend roughly between 25-30hrs/week total.

You are well-known in the webOS community for your work on Glimpse; were you able to reuse any webOS code to create your Panes or Dock app? Or are they new programs created from scratch?

Yes, Dock and Panes are a direct port from webOS. I re-used a lot of my code. I only had to make a few changes to things that were "webOS-specific."

Where you reused existing code, how long did it take you to port the code for iOS?

It took about 10 minutes to port over to iOS (and Android). It then took about 2 months to make everything work as intended.

What's the major difference you've found between programming for a webOS device versus the iPhone/iPad?

The major difference is in multi-tasking. in webOS, an app stays open forever as long as the 'card' is open. This removes the burden of multitasking from the developer. iOS, on the other hand, multi-tasks differently. So you as the developer have to put a little extra thought/effort into how your app should operate.

What was the biggest hurdle you encountered when you created your iOS Apps using Enyo?

Since I wasn't quite proficient in Objective-C, the biggest hurdle was having to implement a few "webOS specific" features using Objective-C. So, making the apps (Dock & Panes) wasn't quite as simple as copying/pasting my old code.

How is Enyo as a tool for writing iOS apps? Can you easily write code that adheres to Apple's standards? Can you debug effectively without always testing on an iOS device?

I found Enyo to be quite useful. Enyo is a Javascript framework that emphasizes modularity. I think of it as a making an app with Lego blocks. You can make fairly simple to fairly complex apps (like Panes) using Enyo. There's also no problems adhering to Apple's standards. Debugging is very easy. Apps written with Enyo can actually work in Webkit browsers [like Safari or Chrome]. Actually, I do a lot of my quick tests in the Safari browser. Though, it's always nice to test on an actual device, just so there are no surprises.

After reading this article, users will know that your app is written using Enyo. Is there any performance difference between your app and an app that's originally written in native code?

Actually, my app is sort of a hybrid combo of native/non-native. I'm accomplishing a few things (e.g. the web widget in Panes) using native C code. To be honest, I'm not quite sure what "native" means anymore. I think that line is blurred. Sure, depending on the complexity of the app (or task), you may notice slight performance issues. But overall, I do think the average user won't be able to tell "native" vs. "non-native," so I don't think app performance should/would be a source of concern.

How thorough is the Enyo programming environment, especially when it comes to graphics or data stores which may be handled differently on webOS? Do you have to tweak things on the iOS side?

Enyo is quite thorough. The only tweak I had to make was updating graphics (i.e. doubling their sizes) for Retina display.

Are you concerned that HP will stop working on Enyo and won't update it to support new versions of iOS? Do you have a contingency plan if Enyo is abandoned?

So far, HP has shown signs of dedication to Enyo. They're currently working on a more cross-platform friendly version (i.e. Enyo 2), and things are looking optimistic. I'm not too worried about possible abandonment, since Enyo is open-sourced. So, I don't have to sit around and wait for HP to make updates, I can just go in and fiddle around with the code. So no, I don't really have any 'contingency' plans. I'm just hopeful the open-source community will sustain it.

Do you have any advice for other webOS developers looking to write apps for iOS?

I'd advise webOS developers to actually use iOS before trying to develop for it. Coming from the webOS world, the UI paradigm is quite different. I think the most effective way to develop for any platform is to be an actual user of that platform.

From around the web

ear iconeye icontext filevr