I want to build a cross platform(Android, iOS, Windows) mobile application.
I want the UX of the application to be different on the different platforms so that it will be more platform specific and does not force different platform users to stick to a common UI, as this common UI might not gel well in terms of look and feel with other native applications in their platform.
However since it is the same application that I am trying to build across all platforms my backend will mostly be the same.
This image presents what I am trying to achieve.
Is it possible to build different UI for each platform using native technologies like Storyboard(in iOS), XML(in Android), XAML(in Windows)
and then bind these UI elements to native controllers.
And making this controller use a common javascript backend for all the platforms.
I am aware of the concept of Native and Hybrid applications.
The problem that I would face with them are the following
-
Pure native applications will force me to make the entire source code platform specific which will make me write my backend thrice in 3 different languages. (Least reusable)
-
Hybrid applications(like those build on PhoneGap) will let me write my code in javascript and html but will create a common ui with HTML5/CSS3 which should be used across all platforms, I want to have different UI and for the UI to be more native than generic.
Is this common javascript backend code achievable.
And if it is then is there a way in which I can create this entire javascript code independently and package it as platform specific libraries like .a(for iOS), .jar(for Android), .dll(for Windows).
Or should I use some other approach?
Thanks in Advance
3
To 1:
I know that Xamarin has a proprietary way based on their implementation of .NET. You can use one language to build the common application backend and there are wrappers for the native libraries. They share the philosophy of building the GUI with the native libraries. It is not javascript though.
There are a couple of frameworks supporting this kind of thing — Calatrava is Javascript/Coffescript focussed, or if you prefer to code your backend in Java look at Kirin (which I have worked on and worked with extensively). Check out my answer to this question for more information.
1
I guess you could do this quite simply with Appcelerator Titanium.
http://www.appcelerator.com/
This framework lets you write code in Javascript and it compiles it native code. So you can have for instance a Navbar which will be rendered natively by iOS, Android and so on.
Xamarin has shown as agood option to speed up mobile development. The teams can standardize the programming language and use only one framework. For the backend development we use a fast growing platform back4app and integrate it with the code created for the mobile applications. The dual usage of Xamarim + Back4app can save up to 70% development time and costs.
1
If I’ve understood your question correctly then simply yes… Of course.
If you’re building the mobile apps separately you can of course just connect to a backend API that you’ve created on a server. The server is completely independent of the app itself so it doesn’t matter from where it’s called. Think of any app the has a release on multiple OS’s but allows you to log in to a access your independent account.
5