Cross-OS Development

FeedTheShark

New member
Jan 2, 2013
49
0
0
Visit site
So after many years of saying "I have to start coding apps" I'm finally going to start coding apps. As background I'm a developer with 20+ years experience in building websites and programming in VB, asp, java-script, and some but less c#.net than is healthy these days. But when I look at how to create apps I'm getting confused & find it hard to know where to begin, because I need/want to develop for iOS, WP and begrudgingly Android.

I've looked at Xamarin (confused the hell out of me). I've looked at Channel9 videos, bit better, but really only Windows based and didn't get too far. Looks like I need a Mac for iOS dev (*eugh*). Looks like I need to use Java for Android. I need to improve my C#, don't really want to have to learn Java and C+ for iOS as well.

What do other developers who develop for all 3 do? Is Xamarin good enough or do you need to go native? Where do you recommend I begin? I have an app in mind that a friend wants me to build, but I really do have to have it working first on iOS (boooo!), and then do everything in my power to have it on WP seconds later.

Appreciate all advice, thanks.
 

LuvMeSomeWP

New member
Apr 4, 2014
65
0
0
Visit site
My friend just finished and released a cross-platform game on iOS and Android using the Corona SDK.

And after many many months after it was first announced, Corona today finally released WP8 support. I haven't used it myself, so I can't speak as to how well this all works, but I believe you write in LUA script, and Corona will translate and compile native applications for the specific platforms.

Corona appears to be geared towards 2D apps/games. There's a certain threshold where it's free to use and sell, and after that point, you must pay?

Introducing Corona Support for Windows Phone 8 | Corona Labs
 

Mameless

New member
Apr 4, 2014
15
0
0
Visit site
If you are developing a game, you can try Xamarin+MonoGame or you can try Unity. I personally use Xamarin+MonoGame. MonoGame is basically cross-platform XNA. If you look at XNA tutorials, which are quite many, you can use MonoGame with ease. You can do all development on Windows Phone, then when you are ready, port it over to the other platforms quickly. That's usually straight forward with the only bothersome parts being having to deal with platform specific stuff like IAP, launching browser/email apps externally, etc. Only iOS and Android need the not-free Xamarin. MonoGame runs natively on Windows/phone.

Look up cross-platform games like Infinite Flight, Skulls of the Shogun and Draw a Stickman. They are pretty good and all use Xamarin+MonoGame.
 

FeedTheShark

New member
Jan 2, 2013
49
0
0
Visit site
Thanks for your feedback Mameless. I should have pointed out that I plan to write apps only, not games. I've got no background in writing games, so the platform specific stuff will be more of an issue for me.

So ignoring game dev, what's the best way to get into cross OS development?

Thanks again.
 

Michael Brooks5

New member
Apr 3, 2014
63
0
0
Visit site
I've had some friends recommend phonegap which enables you to make your app with html, CSS and JavaScript and it can use each phones APIs. I suppose it also depends on which APIs you want to use on each phone though.
 

a5cent

New member
Nov 3, 2011
6,622
0
0
Visit site
Wait for MS' dev conference on november 12th before you decide. They might have something to announce that could interest you.
 

FeedTheShark

New member
Jan 2, 2013
49
0
0
Visit site
Thanks for all the comments. Right now I'm pretty much convinced Xamarin is the way to go. PhoneGap & other solutions don't seem as advanced, and Xamarin looks like it's just going to grow and get better and better. Never heard of MVVMCross until now, at a quick glance it looks like a good framework to use on top of Xamarin, but my knowledge of .Net & MVVM isn't the best, so now the decision is "vanilla Xamarin" or MVVMCross. Lots more research and testing ahead.
 

Vaipa

New member
Oct 27, 2014
9
0
0
Visit site
To go cross-platform you will be forced to delve into some platform specific wierdness such as:

* For iOS you need a layer of Objective-C code
* For Android you need a layer of Java

So far Windows Phone is the only mobile OS that allows you to go directly native (build a high performance native code app compiled from C/C++ code). However when going full native you don't get access to a lot of APIs because they haven't been migrated from C# yet (live tiles, application states, call interaction are just a few).

The alternative for Windows Phone is to make a C# app that binds into native code. This way you can interface with the legacy APIs AND get some performance from your code.
 

MatLoz

New member
Dec 19, 2014
21
0
0
Visit site
We used Unity for our game Shuttle Shuffle, it was very easy to have the Windows Phone version working. And it has a free version that allow publishing too.
 

zzdjk6

New member
Aug 29, 2014
13
0
0
Visit site
I develop games for ios,android,wp using unity, it's a viable game engine.

but for apps, you may consider html5 since your exp is mainly about the web :)
 

alva christi

New member
Oct 7, 2014
3
0
0
Visit site
Xmarin is a C#-based platform where code is written generally for iOS and Android and compiled differently during the deployment. Xmarin is rather advanced, and allows users to call native API’s in the resulting application than other tools. Before compiling, Xmarin executes code on a .NET framework at runtime and gives a native dialect of either iOS or Android. For large teams that work on different parts of the same project, I have found this to be particularly versatile and adaptive.
 

Ray Adams

New member
Jul 3, 2012
993
0
0
Visit site
What do other developers who develop for all 3 do?
Unity for games.
Native for apps.
This is now I do my job.
I know this is hard way to make apps, but I am old programmer and prefer to use native coding for platform to be able to use all features.

Just a little IMHO.

iOS-
The hardest language is Objective-C and most stupid one. XCode is most awful IDE you ever can imagine. Developers of XCode seem have no idea how IDE should work :) And also you need Mac. But!!! User base is big, and the users are willing to buy apps! Even if you think total maarketshare of iOS is less than Android, revenue on iOS is 5x times more.

Android:
Java is very outdated, but still more pleased that Martianian Objective-C! As about IDE, you have a few of them. Mostly good ones, I prefer Eclipse. Is has a few bad things, but you can live with it. Developing for Android is not hard , but you should consider big amount of devices with big amount of OS versions, screens, hardware and so on.

Windows Phone:
C# is best language is compare it with previous two. Visual Studio the best IDE! But in last versions too many idiots worked on it so you WILL face a few annoying bugs and a lot of small ones :) Windows Phone API is very limited even if you compare it with iOS yet you can produce excellent apps! Microsoft brought RunTime environment into 8.1 and trying to kill Silverlight :) I do not know why they did it because RunTime even more limited than Silverligh (for example you cannot use C++ component libraries). Also RunTime UI (animation especially) is slow. File access subsystem 50x slower than Silverlight. Userbase is very low, BUT! Like in iOS people are willing to pay for good apps. At least it was like that 1 year ago. And at that time revenue of WP developers was same or more that on android!
But right now downloads and revenue dropped 5x times (this is for me) :( And this is because MS do not provides high end phones!
 

JoHam

New member
Mar 12, 2015
12
0
0
Visit site
+1 to unity, give it a try, you wont get disappointed at all.

But you will need to make a big optimization, that's true.
 

luke_f

New member
Oct 6, 2014
81
0
0
Visit site
I do not know why they did it because RunTime even more limited than Silverligh (for example you cannot use C++ component libraries). Also RunTime UI (animation especially) is slow. File access subsystem 50x slower than Silverlight.
I do not agree. WinRT is almost a direct clone of Sliverlight (most classes were directly re-used, only new namespace), but with a lot of improvements and additions. Especially the animations are much smoother thanks to "independent animations" which were not possible with Silverlight. List and grid views are much faster due to new virtualization and layout/rendering improvements. By creating a C++ Windows Runtime component it is very easy to interface with any kind of native code (both COM and C/C++). File access if very efficient when used correctly (async). Of all recent MS UI frameworks (Silverlight, WPF, WinRT), WinRT is the most performant one. Unfortunately it still lacks a bunch of features WPF has, but the speed makes up for it.
 

Members online

Forum statistics

Threads
322,906
Messages
2,242,872
Members
428,004
Latest member
hetb