In case you haven't seen this article, it is quite fascinating how Google Inbox is spanning all three platforms with 70% of the same code.
http://arstechnica.com/information-technology/2014/11/how-google-inbox-shares-70-of-its-code-across-android-ios-and-the-web/
Here are some juicy quotes...
These three platforms share most of the back-end logic that powers the app, while the unique parts are mostly the user interfaces for each app. That gives Inbox a native feel and OS integration on each platform. Google has built itself a good enough arsenal of cross compilers that it can write an app's logic once for Android—in Java—and can then cross-compile to Objective-C for iOS and JavaScript for browsers. Java-to-JavaScript is handled by the Google Web Toolkit SDK, which has been around for some time. The real enabler for Inbox is called J2ObjC, which, as the name implies, converts Java code meant for Android into iOS-ready Objective-C code.
J2ObjC is a open source project which Google went public with last year. The project was previously used by Google for the Slides presentation app, but Inbox is Google's biggest use of the project to date.
When designing Inbox, Google broke down its code into abstract concepts for each of these shared functions. So the code for a reminder logic lived in something like "reminder.java" and could just be wired up to the Android UI. When it came time to make an iOS version of Inbox, J2ObjC took the "reminder.java" brick and spit out Objective C code, which can then be wired up to a UI for iOS.
The tool does not convert UI pieces from Android to iOS, because that would be an awful user experience. Google wants developers to write the logic once in Java, transpile it to other platforms, and then make the UI natively using the SDK for each platform. That way the apps look and feel native to the platform they're on, and the UI should run a lot more smoothly. This is the same approach—cross-platform core, platform-specific UI—that Xamarin promotes for its development environment.
The tool is interesting. It solves a big problem that most app developers have today while simultaneously promoting an Android-first development cycle. The company obviously feels J2ObjC is ready for prime time, as Google Inbox is a massive, public facing use for it. It seems to work well, too—just try out the iOS version. The app feels as fast and smooth as something that was hand-built for the platform. You'd never know most of it was spit out by a machine.