5

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. enter image description here

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

  1. 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)

  2. 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

  • I started down this path, but I didn't end up pursuing it. If I were to do it again, I'd look more closely at doing something along these lines. – Winston Ewert Jul 27 '14 at 22:22
  • @WinstonEwert May I know the reason why you didn't pursue it? – HelpMatters Jul 28 '14 at 13:52
  • I was new to mobile development and didn't want to introduce the extra complexity. It wasn't clear whether I'd save in the long run since I didn't have that much complexity on the client side. – Winston Ewert Jul 28 '14 at 14:47
2

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.

2

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.

  • Thanks a Ton! This is brilliant. I will try them out and update this post 1. With the path that I followed 2. Where it took me. I need to use them for the following 3 platforms for now A. iOS B. Android C. Windows – HelpMatters Aug 11 '14 at 10:46
0

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.

-1

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
    Can you explain how Back4app generator solves the OP's need to maintain only one JavaScript backend ? I have the impression that Back4app is more a hosting service than a framework for backend, isn't it ? – Christophe Mar 20 '16 at 21:24
-2

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.

  • 1
    Why the downvote on this answer? – Mackey18 Jul 27 '14 at 11:04
  • 2
    Because it didn't answer the question. The question is about shared javascript code on the client, (see the diagram). – Winston Ewert Jul 27 '14 at 22:21
  • 1
    @WinstonEwert why would you not just build in a normal back end accessed via APIs rather than download backend code to the device (which will get your app rejected by Apple for doing). – Mackey18 Jul 28 '14 at 6:47
  • 2
    @Mackey18 When I mean "Common Javascript Backend" I am talking about the backend in the client side. For example let's say we have a code which calls a server api and gets the results. My point being why do I have to make the same call in 3 different languages for the 3 different platforms. I might as well write one function in Javascript and re-use it. – HelpMatters Jul 28 '14 at 13:56
  • @vivekp right ok, now, that's slightly different. I've always done the same API calls across multiple languages, the only thing I would say is that the effort you save by going down this route may also be achieved with a well built backend, but I know that's not much help. Post the solution you go down, I'll be interested to see. – Mackey18 Jul 28 '14 at 14:02

protected by gnat Jan 18 '17 at 9:32

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.