Until recently, if you wanted to build a mobile app that worked on the two most popular smartphone platforms, you had to make some difficult choices. On the one hand, you could build one app for both iOS and Android using a cross-platform tool like Cordova, usually resulting in an inexpensive app with a poor user experience. Or you could build two separate native apps to get a great user experience at a greater cost.

That could be changing.

Developers now have the chance to preview Intel’s Multi-OS Engine (MOE), which is designed to drastically reduce the development time needed to build separate native iOS and Android apps.

Intel wants to save mobile developers time – and businesses money – by allowing them to reuse Android code in iOS apps while preserving a native UI. Yep, Java running on iOS. Intel claims it has a unique approach, too. Mobile development teams can reuse the core mobile app logic written for Android by compiling the Android code into Apple compatible iOS code with MOE. According to Intel’s Jeffrey McVeigh, as much as 60 percent of the Android code could be reused in iOS apps.

Mobile developer shortage made acute by native UIs

Gartner’s Jason Wong says “the mobile developer shortage poses a challenge to enterprises to recruit experienced mobile developers who can work anywhere like Facebook, Google or Twitter or at a hot startup, often putting them out of the reach of more typical enterprises.” The need to build redundant apps for both Android and iOS is one of the root causes of the mobile developer shortage. The native UIs of the two platforms are so different they can’t be included in a single Write Once Run Everywhere (WORE) mobile app development framework. Where rich, responsive and immersive mobile apps that attract hundreds of thousands and millions of downloads and retain loyal users are needed, native apps have become the only alternative.

[Related: Review: 7 excellent mobile app builders]

WORE mobile Web apps were once expected to mirror the WORE web development experience. And these days, everyone expects websites to accurately render in all popular web browsers. But the user experience of WORE mobile web apps didn’t meet expectations. Three years ago, Facebook dropped HTML5 and mobile Web development as the core of its mobile strategy and staffed separate Android and iOS development teams, essentially giving up on mobile WORE. Many other mobile developers followed suit. As the size of the development teams inflated with redundant iOS and Android platform developer specialists duplicating one and other’s work, the mobile developer shortage became acute. Attracting and retaining a large audience of loyal users with responsive native apps mandated redundancy.

Cross-platform native apps – the Holy Grail?

Although Facebook and other leading developers capitulated, the inefficiency of fully redundant development teams is hard to swallow. Xamarin was the first to appear with a native approach to cross-platform development with a .Net framework for mobile development. Except for the native iOS and Android user interfaces, the core logic portions of native mobile apps could be written once in C#. Not quite WORE, but Xamarin offered reuse of the core code and repurposed enterprise C# Microsoft developers from building client server apps to mobile apps. Today, within constraints, WORE apps can be built with Xamarin’s Forms that run unmodified on both Android and iOS.

Facebook announced React Native at its annual developer conference last March. Similar to Xamarin in reusing core logic and building with native platform UIs, but instead of repurposing C# Microsoft developers to mobile, React Native repurposes Javascript web developers to build mobile apps in Javascript with the native Android and iOS UIs.

Intel iOS development workflow with Intel's Multi-OS Engine

MOE leverages Intel’s investment in the Android Run Time (ART) open source project to ensure compatibility of Android with its mobile chips. ART is an application runtime environment that compiles Android apps at installation. Intel has about 80 people working on ART, giving the group significant expertise to share with the MOE team.

Intel applied its ART know-how to build an iOS version of ART – essentially Android binary compatibility on iOS. Only a few companies like Intel – with its platform-level software compatibility experience from its PC business, its ART engineering team and deep-pockets – could pull off such a clearly non-trivial accomplishment.

How ART on iOS works: a little bit of magic

Java code written for Android is compiled using a modified compiler into native assembly code that runs on the ART virtual machine (VM) on iOS. MOE’s approach to building the UI assumes separate designs for both Android and iOS, because the only way to build a native app is to adhere to Google’s Material Design and Apple’s Flat Design guidelines. The iOS UI uses Apple’s Xcode and Storyboard, which Apple developers use to build iOS apps.

MOE also has an iOS UI builder that runs in Android Studio. MOE glues the iOS UI to the reused Java code by binding the Android UI to native iOS UI elements. MOE requires some UI editing in Android Studio aided by an iOS UI compatible Intellisense plugin.

Adding MOE to an Android development shop’s tool chain should feel familiar…with one exception. To the astonishment of everyone seeing MOE for the first time, iOS apps can be developed on Windows using Android Studio and debugged on Windows using a USB tethered iPhone or the iOS emulator Intel built for Android Studio.

[Related: Yahoo commits to mobile first with new developer suite]

MOE is a commitment to a language for reuse – in this case Android Java code and a commitment by the development team to both a framework and the Android Studio tool chain. Like Xamarin leverages enterprise Microsoft C# developer skills, and React Native leverages the huge base of Javascript developers, MOE leverages Android Java developers and J2EE developers.

GitHub’s ranking of languages based on the volume of code stored in its repository clearly explain Facebook’s choice of Javascript (ranked No. 1) and Intel’s choice of Java (ranked No. 2) as the cross-platform language.

GitHub

More native apps, better user experiences

Asked about how to make the tradeoffs between native and single mobile app strategies, Gartner’s Wong says, “We advise our clients that where the highest fidelity is desired for flagship apps, typically customer-facing apps, we recommend native development. However, there are many other app use cases [usually non-customer facing] that can be effectively addressed with cross platform mobile app development platforms (MADPs), and increasingly low code or no code rapid mobile app development (RMAD) tools.”

The use cases for MOE differ from a MADP like Apache Cordova. Developers build one WORE app for both iOS and Android with Apache Cordova drawing on widely available programming skills, eliminating the need for redundant Android and iOS platform specialists. But abstracting the native Android and iOS UIs from direct access by developers comes with a price. User interaction with a Cordova apps isn’t as natural, responsive or immersive.

MOE developers expend more programming effort to build native UIs. Compared to Cordova, it’s less efficient, because MOE does not reuse the UI elements but delivers a native UI experience that’s often vitally important to attracting downloads of flagship apps and retaining loyal users that app marketing specialist Fiksu pegs at $2.47 per user in acquisition costs. The potential MOE programming manpower savings would support an increase in the number of native mobile apps produced compared to building redundant iOS and Android apps.

MOE doesn’t offer 100 percent reuse. But compared to a full rewrite for native performance, the 60 percent reuse claimed by McVeigh can’t be overlooked, especially by firms with a big Android development staff. Added advantages might be realized by firms wanting to repurpose enterprise Java developers to mobile as business priorities shift from the web to mobile.