Best language/platform to use for cross Android/IOS/web application?

davidktw

Arch-Supremacy Member
Joined
Apr 15, 2010
Messages
13,550
Reaction score
1,302
As above. Need graphics. Best if is OpenGL.

Thanks!

Server side language has nothing to do with your client platform. You are free to choose any server side technologies to your comfort and preference.

If you are building a mobile or desktop web application, your client technologies are the same across all except you will need to tweak depending on your client platform type and browser type.

If you require 3D Graphics, WebGL is what you want to venture. You can also consider HTML5 Canvas with a 3D Javascript library.

Read http://noeticforce.com/best-3d-javascript-game-engines-frameworks-webgl-html5
 

KaiserBreath

Senior Member
Joined
Feb 22, 2005
Messages
1,054
Reaction score
227
Thanks for the reply. The main concern is code reuse. I only need 2D graphics but may have some translate and rotation animations. Can WebGL and HTML5 compile the same code for andriod,IOS and web app with minimal change?

Is C++ a better option for portability?

Found this but dosen't seem to be able to support web.
https://msdn.microsoft.com/en-us/library/dn707591.aspx

Sorry, abit noob on cross-platforming.
 

davidktw

Arch-Supremacy Member
Joined
Apr 15, 2010
Messages
13,550
Reaction score
1,302
Thanks for the reply. The main concern is code reuse. I only need 2D graphics but may have some translate and rotation animations. Can WebGL and HTML5 compile the same code for andriod,IOS and web app with minimal change?

Is C++ a better option for portability?

Found this but dosen't seem to be able to support web.
https://msdn.microsoft.com/en-us/library/dn707591.aspx

Sorry, abit noob on cross-platforming.

First of all, you need to be very clear on what are you developing for on all the platforms involved.

Are you creating native desktop applications on the desktop, or are you creating web applications for desktop running in browsers ?

If it is the former, then Java is one possible language you can consider. Java can be run on Unix(mostly Linux or BSD or Mac OS X for consumers) and Microsoft Windows. While there are other language such as Python, Perl, Ruby which can also be run on the client system natively, the problem is these languages do not on their own provide the Window(UI) components. They mostly do it via 3rd party libraries which you will need to sort out for cross platform compatibility. 2 well known GUI frameworks I knew are GTK and QT, but there are also like what you mentioned OpenGL via GLUT.

For web applications, then your choice on the client side is very clear. It's going to be Javascript, HTML5, WebGL, SVG, CSS3.

For your native mobile platforms, most projects are only going to support Android and iOS. Whether you want to throw Windows Mobile into the mix will depends on your appetite. Supporting Android and iOS would cover a good number of audiences already. Android development is using Java and iOS is using either Objective-C or Swift. These 2 platforms have no inter compatibility to speak. So if you are going for native applications, you will need to develop one for each version. There are some cross platform framework such as PhoneGap or Xamarin. But really these days I really didn't hear much about them for projects I knew around me. Problem is for projects that requires some native features of the mobile platform, they rather do it natively for the specific platform instead of using these bridging mobile platforms. If they don't need any native features, then simply a web application running in the browser on the mobile smartphone will do.

So far, web development will be the most cross platform compatible and easiest to deploy since there is almost no need client deployment at all. You will need a server running your server technological stack to serve contents to the browsers/clients. Your clients just run on HTML5, Javascript, CSS5 and some other web technologies and that will do. Just point your clients to your web application URL.

Most web technologies do not require compilation. Javascript are interpreted by the browsers' Javascript engines and do not require compilation. Same goes for HTML5 and CSS and even SVG.

If you just need 2D graphics, then you need to consider what kind of 2D graphics are those ? Are they going to be bitmap heavy or vector heavy. Bitmap heavy solution will involve HTML5 Canvas, which you will need to manipulate low level drawing routines via the Javascript. SVG will provide vector drawing capability which can be manipulated via Javascript and styling.

HTML5 Canvas is just a drawing board, so you can draw anything on it, even a 3D application can be rendered onto it during the 3D to 2D conversion phase. SVG can somewhere provide pseudo 3D effects too, but limited and definitely not going to be as good as a raytracing engine provided by 3D engines even if these 3D engines are written in Javascript.

Maybe you want to be more forthcoming with what are you trying to achieve instead of just merely asking for a general cross platform compatible technology.
 

davidktw

Arch-Supremacy Member
Joined
Apr 15, 2010
Messages
13,550
Reaction score
1,302
Thanks for all the reply.

I need to do something like the mii creator.
Not really a game but some editor kinda thingy.

https://www.youtube.com/watch?v=tGJZ8BsiiU4.

If that is what you need, then a simple Web application is all you required. You can achieve this using images, javascript, css, html.

If you like a slightly more challenge, consider using SVG too, since SVG can give you sharp and crispy vector lines and is resolution independent. SVG are interactive too.

You can then allow users to access via all mobile or desktop browsers easily. MII creator is done using Flash, but you will realise all the drawings in it are done using vectors.
 

KaiserBreath

Senior Member
Joined
Feb 22, 2005
Messages
1,054
Reaction score
227
Thanks for the help! I think that web might be already be sufficient too. Too much overhead and redundancy to do this in apps.
 

davidktw

Arch-Supremacy Member
Joined
Apr 15, 2010
Messages
13,550
Reaction score
1,302
Thanks for the help! I think that web might be already be sufficient too. Too much overhead and redundancy to do this in apps.

If you want to present your webapp as a branding app. All you need is simple mobile development to create a webview or WebKit wrapper. This way your users can download and install a mobile app and open up to access your website
 
Last edited:

natnai

Supremacy Member
Joined
Nov 6, 2007
Messages
8,012
Reaction score
1
Haven't posted here in awhile - but chanced upon this thread and I think it's worth sharing my experience developing HollerOut from back to front.

If you're going to build out a SPA that runs in a browser as well, I would strongly suggest taking a look at React + Redux + Node.js. Yeah I'm a node.js hipster, but frankly if you're on a tight budget with a tight timeline, it's the best thing to do.

I say React because that lets you port most of your logic to react-native, which is a pretty unique bridge to native modules, so you can write your OpenGL stuff natively, and bridge that to the bulk of your client(s) written in react-native.

That being said, having developed a bit now with react-native in a non-trivial application, it's not write once run everywhere like phonegap/cordova/xamarin or whatever. You still need to adapt some of your components for iOS/Android, especially if you're making use of native APIs. That being said, being able to recycle large portions of logic across platforms by running it in what is now a very performant javascript run time saves you a _lot_ of time.

Oh, and use Redux for maintaining component state. Just use Redux. Don't bother with alt and all the other funny flux implementations out there. Redux is hands-down the best flux implementation. Even some Angular developers (I used to use Angular) started using Redux in Angular apps to maintain one-way data flow.
 
Last edited:

natnai

Supremacy Member
Joined
Nov 6, 2007
Messages
8,012
Reaction score
1
Check these libs out:

https://github.com/ProjectSeptemberInc/gl-react/
https://github.com/ProjectSeptemberInc/gl-react-native

These provide bindings to WebGL and OpenGL APIs respectively, and based on my cursory glance over the documentation, appear to be simple wrappers for other components. I'm sure there are other WebGL/OpenGL projects out there, so just keep a look out. At any rate, if you know enough Swift/Obj-C/Java, you can easily write your own bindings, since you probably won't need to use the full API.
 

natnai

Supremacy Member
Joined
Nov 6, 2007
Messages
8,012
Reaction score
1
If that is what you need, then a simple Web application is all you required. You can achieve this using images, javascript, css, html.

If you like a slightly more challenge, consider using SVG too, since SVG can give you sharp and crispy vector lines and is resolution independent. SVG are interactive too.

You can then allow users to access via all mobile or desktop browsers easily. MII creator is done using Flash, but you will realise all the drawings in it are done using vectors.

Up for SVG. There is no substitute for SVG in terms of speed + flexibility + power. But you will run into some compatibility issues in older browsers if you're doing this in web, so just be careful and make sure you degrade gracefully.
 
Important Forum Advisory Note
This forum is moderated by volunteer moderators who will react only to members' feedback on posts. Moderators are not employees or representatives of HWZ Forums. Forum members and moderators are responsible for their own posts. Please refer to our Community Guidelines and Standards and Terms and Conditions for more information.
Top