Orubase, Hybrid Mobile Apps that Embrace Native Code
Usually when we hear about “hybrid mobile apps” what people really mean is PhoneGap, a HTML app with a thin wrapper needed to put it in the app store. Or worse, it’s an app builder that developers can use for simple stuff but quickly outgrow. These are a dime a dozen these days, so usually we mention them in passing and move on. But it seems that Syncfusion’s Orubase is different. It is a true hybrid application framework where developers are encouraged to freely mix HTML and native code. So we are giving it another look.
Orubase is aimed at .NET developers and so it relies heavily on Visual Studio and ASP.NET MVC for the server-side components. When you create a project you need to list the views that application will need. The project wizard will then create the MVC stubs for each view.
Next Orubase will create the platform-specific projects. These don’t use Mono or PhoneGap/Apache Cordova. Instead Syncfusion uses a combination of native code and their own callback framework. (Though like PhoneGap, it relies on AJAX-style calls to access native phone features.)
The projects will need to be compiled with the correct tools, which means a Mac is required for iOS development. That said, you can still get pretty far just using the emulators.
Native Look and Feel
A key selling point for Orubase is that it looks and feels like native code. In many cases this is because it is native code. Features such as menus are actually created using native code to ensure they are placed correctly on each platform.
For most of your application the look is just clever use of HTML and CSS. The server-side MVC controls automatically change their appearance depending on what OS the client is running on. You can see an example of this below:
The reason we’re giving Orubase such a positive review is the way they treat native code. As I mentioned before, most of the mobile platforms that we review do whatever they can to keep the developer away from Java or Objective-C. So much in fact that some even compile the app “in the cloud” so that developers never touch it.
Orubase takes a different tact. Strictly speaking developers don’t need to touch the native code other than to compile it. In practice they are expected to fine tune it for each platform. This might just be menus, but it could entail significantly more than that.
If a particular view needs a performance boost or a native control that HTML cannot properly simulate, then developers can and should create native views. Native views live side-by-side with HTML-based server-generated views and should be indistinguishable to the user.
This technique is not new, Apple currently uses it for the App Store itself. And even back in the late 90’s you would see some applications such as Microsoft Money using it for parts of the user interface.
Currently iOS and Android are fully supported. Windows Phone support only includes 7.x features, but Windows Phone 8 should be available in the near future. Windows RT is at least six months out.
InfoQ will be interviewing Syncfusion soon. If you have any questions for them feel free to post them below.
Martin Thompson Jul 27, 2014