Mobile App Development

shawn.t

New Member
Joined
Jan 8, 2016
Messages
9
Reaction score
0
Good day

Apologies if this has been asked/answered before.

I've started App Development for iOS using XCode from Apple.

Which IDE supports cross-platform App development?

How does Xamarin work, also does the latest version of Visual Studio support the development of iOS Apps?
 
Good day

Apologies if this has been asked/answered before.

I've started App Development for iOS using XCode from Apple.

Which IDE supports cross-platform App development?

How does Xamarin work, also does the latest version of Visual Studio support the development of iOS Apps?

Using Xamarin means your cross platform app will share a common C# code base. You'll still need a Mac as a build host if I remember correctly.
 
I see XCode 7 only supports Swift and Objective-C.

Any idea perhaps how a big company like Standard Bank creates cross-platform Apps?
 
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:
  1. Android: Java
  2. Windows: C#, VB.Net or to a lesser extent Visual C++ or F#
  3. 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)
 
Last edited:
I see XCode 7 only supports Swift and Objective-C
Actually No (its an IDE), so it has native support for C, C++, Objective-C, Objective-C++, Java, AppleScript, Python, Ruby, Rez, Swift, Assembler with a variety of programming models, including but not limited to UIKit, Cocoa, Carbon, and Java.

By adding 3rd party libraries it can also be used for GNU Pascal, Free Pascal, Ada, C# (mono), Perl, and D.
 
Depending on performance requirements vs project timelines and resource availability, you either go native for each platform, or you use Cordova/Phonegap which is basically a chromeless browser window thus making the same JavaScript run on all platforms with a trade off in performance. Xamarin is proprietary junk imo.
 
Native Apps will die out, hybrid is the way of the future. I wont waste my time learning to build native apps.
 
I see XCode 7 only supports Swift and Objective-C.

Any idea perhaps how a big company like Standard Bank creates cross-platform Apps?
We use Xcode for IOS and Eclipse for Android. The "one language" for all platforms is more trouble than it's worth. Maybe that will change.
 
Native Apps will die out, hybrid is the way of the future. I wont waste my time learning to build native apps.

Hybrid apps are ideal when you are only showing data (glorified web browsing). For deep or slick integration with the device, native is the best option. I do not think native will die out anything soon. Each has its place.
 
Hybrid apps are ideal when you are only showing data (glorified web browsing). For deep or slick integration with the device, native is the best option. I do not think native will die out anything soon. Each has its place.
In my experience the only people that tend to push hybrid or 1 solution fits all, weren't that skilled as programmers to begin with.

I've had some of my most painful experiences debating with people who believed this was the way to go; that usually is the time I say my goodbyes, better to quit before the brown stuff hits the fan.

I once tried a project in Xamarin against my better judgement; in 3 months in we hit far too many blocking bugs on the way that Xamarin architected their stuff, or just faults in their codebase; whilst I can't argue that their team are responsive, you just end up wasting so much time on crap, which every time needs to be over diagnosed to determine who is at fault; only way to prove this, is to build something natively in Xcode or Eclipse. Longer story short, we threw away most of the 3 months work, and ended up building the apps natively in Xcode and Eclipse (hence my absolute disdain for Xamarin), and a costly mistake for the customer.
 
Last edited:
Hybrid apps are ideal when you are only showing data (glorified web browsing). For deep or slick integration with the device, native is the best option. I do not think native will die out anything soon. Each has its place.

[)roi(];16872641 said:
In my experience the only people that tend to push hybrid or 1 solution fits all, weren't that skilled as programmers to begin with.

I've had some of my most painful experiences debating with people who believed this was the way to go; that usually is the time I say my goodbyes, better to quit before the brown stuff hits the fan.

I once tried a project in Xamarin against my better judgement; in 3 months in we hit far too many blocking bugs on the way that Xamarin architected their stuff, or just faults in their codebase; whilst I can't argue that their team are responsive, you just end up wasting so much time on crap, which every time needs to be over diagnosed to determine who is at fault; only way to prove this, is to build something natively in Xcode or Eclipse. Longer story short, we threw away most of the 3 months work, and ended up building the apps natively in Xcode and Eclipse (hence my absolute disdain for Xamarin), and a costly mistake for the customer.

Agreed.
 
Fully agree on the Xamarin comment - it is not a scalable platform and you will eventually run into issues. It all depends on the type of app you write. If it is a simple content app without much UI/UX and mostly boilerplate, it would be easier to develop in Xamarin for multiplatform. If it is a heavy UI/UX app I personally would go with the native platform (Xcode / Android Studio).

Even with Xamarin you will have to mostly recode the UI in any case, so I have never found a big advantage in it. Your app will be cloud based and will use webservices, so there is not even much reuse when it comes to application common code as all of this will sit in your webservices.

If I had to pick, I would start with Android/Java (largest user-base in general) and then do iOS. You will find that you can get away with a Java-wrapped app for BlackBerry and Windows usage seems to be very low compared to the other platforms. With Xamarin you will have to figure out many workarounds to make certain things work (especially native integration) and support is horrible. Xamarin is also not free.
 
Phonegap is a huge cross platform app dev suite but it's slow and horrible like most.

Code seperately for the different versions for best results.

I agree, but it's early days. Hybrid apps will evolve more and more as the Web moves to uniformity.
 
I agree, but it's early days. Hybrid apps will evolve more and more as the Web moves to uniformity.

I hope so.

We tried Xamarin and while it was a step in the right direction your project still has to be written for each brand. Kivy looks promising but still doesn't give the flexibility and performance of native.
 
Top
Sign up to the MyBroadband newsletter
X