Kirin: Where it’s at now

Kirin is an innovative, open-source solution for developing cross platform apps.  We’ve been developing Kirin in-house since 2011 and are applying its benefits in our work for clients.  Here we summarise recent activity with Kirin.

Kirin has been used to develop pioneering cross-platform apps for Glastonbury Festival with Orange and most recently the Domino’s Pizza apps on iOS and imminent Windows Phone 8 app we’re currently developing.

glasto

Our app for Glastonbury Festival was developed using Kirin and won the 2011 BT Best Music App.

Kirin’s principles allows us to encapsulate an app’s business logic into a well-tested, reusable library that can be used directly on all the platforms we want to target. This task is non-trivial because of the different languages used on each platform: Java for Android, Objective-C for iOS and C# for Windows Phone.  However, each platform also provides a web browser environment in which Javascript code can be run. The usual solution to this problem is a framework such as Cordova (previously known as Phonegap) or Appcelerator.  

But this approach has limitations, as Future Platforms Head of Mobile, Douglas Hoskins explains: “Many developers see HTML5 as an easy route to creating cross-platform applications.  However, for all but the most basic apps, we have found HTML-based interfaces to be limiting.  The user experience provided won’t be as smooth and slick as native, and they can in fact be harder to develop because the UI components can be difficult to customise, and you can’t use native UI development tools.”

Kirin is different; top-quality user interfaces can still be created using the platforms’ regular development tools, while all non-UI code is shared. “Like Cordova, Kirin provides access to native services such as networking, location and data persistence.  So all logic not directly affecting the UI can be packaged into a robust, tested reusable library that can be relied upon for all ports of your app.”

We’ve also been researching new development techniques for making this process more efficient. “The shared code ultimately needs to end up as Javascript; this means that we can also use any language which can be compiled to Javascript.  Our preferred approach is to develop shared code in Java and compile to Javascript using Google Web Toolkit. “This allows use of the high-quality, mature tools available for Java development.  It also allows native use of the Java code on Android.  

In fact, the Android development process using Kirin and GWT is fairly close to what it would be normally.”

Screen Shot 2013-01-29 at 16.24.00