Category Archives: Development

Cross-Platform Native Development when Design Matters: Less Expensive than You Think

I have long been fascinated by cross-platform mobile native development. I will not re-hash the argument for and against mobile development using native technologies versus HTML5-centric technologies (including Cordova); these have been well-articulated by many others. I will say that when user experience and design matters, I am firmly a fan of native development.

While developing the IBM Cognos Mobile client, which had to support multiple mobile platforms, one of the things we discovered is that it actually took fewer lines of code to develop native cross-platform applications, compared to using HTML5. We built both a web version of Cognos Mobile that supported multiple mobile devices, as well as multiple native versions of Cognos Mobile, so we were able to directly count lines of code and compare.

Why was this surprising result the case? Because we wanted a native-like experience on each smartphone and tablet, we had to write a lot of device-specific code regardless. It didn’t matter whether it was custom CSS and JS or platform-specific Objective C or C++: it turned out to be just as much work to implement a device-specific design using HTML5.

To be fair, this may not always be in the case. In particular, for Cognos Mobile:

  • Cognos Mobile is a business intelligence application that has a lot of client-side code that was not related to the interface, and
  • We developed in-house technology to translate non-UI code (like business logic) across mobile platforms, so we were able to re-use significant portions of the codebase.

So it matters (of course) on your application. I would imagine the situation is dramatically different for (say) a video game versus a simple forms application. It also matters if you are able to easily reuse native code between platforms. While we developed in-house technology at IBM, for most of us, this means re-using C/C++/Objective C code.

Regardless, what I learned from this experience is that when design matters, it’s probably less expensive than you think to stick with native approaches. And really, how else did you expect to get Super Monkey Ball? 😉

Trello is a Great Tool for Development

One of my goals in taking a sabbatical from developing products at IBM was to learn and discover new ways of doing things, including new tools and services.

Despite being an incredibly large company with more than 400,000 employees, IBM has done a good job keeping up with modern tools. For example, when we were acquired into IBM over five years ago, I was impressed that every employee was assigned not only an email address, but also a mandatory instant messaging account. At the time, this was quite a revelation: I could go into work, see who anyone else in the entire company was online, and have a chat with them. For real-time collaboration, particularly with global teams at IBM, this was amazing.

However, there are some fantastic tools that are being developed outside of IBM as well. For example, I was impressed by the sheer size of the Google Apps Marketplace, and by the thoughtfulness of the extensions I saw there. (I believe that all modern products and applications should be platform-like, and that supporting consumable APIs and extensions is incredibly important. A subject for another day.)

One tool outside of IBM and Google that I ended up falling in love with was Trello. The product of the always-fantastic Joel Spolsky, Trello is a deceptively simple and wonderfully delightful way of organizing thoughts, ideas, tasks and priorities. It has also integrated collaboration in a first class way, and I can see how using Trello would be a great tool during software development project — even the large ones.

I can’t do a better job of describing Trello than Spolsky himself, so I’ll just link to the launch description, here: His thoughts on the horizontal nature of Trello, and why that’s important, are also worth reading.


I am somewhat embarrassed that Trello has been around for 1.5 years, and I’m only discovering it now. This may be a good example of why I felt it was important to “step outside” for a bit. If I hadn’t heard of Trello, perhaps you haven’t either. It’s worth a peek.