I see XCode 7 only supports Swift and Objective-C.
Any idea perhaps how a big company like Standard Bank creates cross-platform Apps?
Anybody wanting to truly exploit the target platform develops in the core language of that platform, which today is:
- Android: Java
- Windows: C#, VB.Net or to a lesser extent Visual C++ or F#
- Apple - iOS, OSX, TVOS WatchOS: Swift or Objective-C or to a lesser extent Objective-C++, C and C++
Developers need to get over the notion that 1 language can be a key to miracles. There is no magic language, or magic recipe; Xamarin whilst superficially ok, has a lot of limitations.
Ask yourself or any Xamarin stalwarts:
- If it was so good then why hasn't Microsoft or Google considered buying it
- Why are Microsoft putting so much effort into this: https://github.com/Microsoft/WinObjC
- Just how financially strong is Xamarin vs. Microsoft, Google and Apple -- do you really want to be stuck with lots of your intellectual property in Xamarin code if they go belly up?
- Just how similar are the underlying frameworks (not at all the same, see as example the reason why Microsoft is building: WinObjC).
- Trying to learn to program and to learn 3 new large frameworks is a recipe for failure (Xamarin tries to make it sounds so simple, it isn't).
- The real amount of code actually shared across the platforms is remarkably very small + if you were really concerned about cross platform abilities you'd be crazy at this stage to choose anything but C or C++; Swift is going to enter this space but it going to take a few more years to get there.
Then in terms of what you want to build; the standard and recommended approach is to focus on 1 platform, build the app to the best of your ability, and only once its a success on that platform, consider porting it to other platforms; simultaneous launches are not even attempted by Apple, Google, Microsoft, Facebook, Twitter, etc...
Why? simply because its impossible to get it right re the diversity of the underlying frameworks; plus as a benefit if your app tanks, at least you only built 1 of them (i.e. saved time & money)
Java whilst advertised to be cross platform delivers at best, the ugliest of cross platform apps. You certainly won't be seeing many people pushing to develop commercially successful iOS, OSX apps or even Linux apps in Java; so also question why C# (Xamarin) is now apparently a good idea.
The only new language (under the radar) that in time will be comparable to C & C++ is Swift; whilst Java has done a lot in Java 8 to try to catch up; it by design is part of the old branch of languages (nil / null / not statically typed).
For Microsoft's part, ask yourself if C# was so great, then why is WinObjc being developed in C++, or why most of the Office suite is still developed in C++ or why they didn't use no Xamarin for Office on the Mac; simply because it can't.
In comparison the
Apple Foundation libraries being ported to Linux and Android are all being written in Swift, plus many of the new iOS / OSX UIKit and Appkit features are now being built in Swift (That's certainly not something either Google or Microsoft can say about their apps or the UI frameworks)
Anyway good luck with your choice;
TL;DR I suggest you pick one platform and its primary language and run with that (seriously, just avoid Xamarin)