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.
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.
Sign up for Computerworld eNewsletters.