It's hardly surprising. I mean, since when has Apple done anything to show love for the developers on their platforms? Developers are locked in because Apple has the highest paying userbase, not because they provide the best tools.
Sadly it's hard to blame them when you look at Google and Microsoft. Both had much better development environments and got crushed in revenue.
Are Google's development environments better than what Apple offers?
I mean, they don't have a platform to run their development tools on. You can't really run them on Android, I mean, I guess you could, but the same issues with trying to use an iPad. Chromebook? Maybe? With some work, but not out of the box.
Microsoft certainly has good dev tools, while I don't care for Windows in general, I do appreciate the good tooling when I'm at my day job.
When I'm talking about development environments, I'm talking beyond just the IDE.
Would you rather work with Java , C#, or Objective-C?
Would you rather work with a open-source frameworks or a closed-source ones?
Would you rather have to wait a week and pass an arbitrary review of your application for every release, or be able to publish directly to customers?
Would you like to be able to distribute test builds directly to customers?
Would you like the option to architect your app as more than one process?
There's been improvement on some of these (Swift is promising, XCode is actually pretty good now, Google and Apple's review process has converged), but as an iOS dev I've constantly been jealous of my Android teammates since they can do things like "use a modern language", "inspect the framework to see if that behavior is intentional", or "send a test build directly to that customer", or "run their app in the background" or "use interprocess communication".
Java is a modern framework? i think Swift is much more modern (and faster). Also, I submitted an app yesterday at 2PM and it was in store at 10PM. Sounds fine to me if it keeps the crap out of the app store.
Battery lifetime and sandboxing is important to me, as it is to many phone users, and multi-process applications make both of it harder to achieve. Why do you need it anyways?
I'd take Swift 3 over any of those languages in a heartbeat.
In most cases, as a consumer, I want the framework to work well and be well-documented and well-maintained, all of which are provided by Apple.
We haven't waited a week for reviews for years. I submitted an app this afternoon and it was approved this evening. Review times are faster than Kindle store by far and marginally slower than Play at this point.
TestFlight supports 2k public beta testers, and has excellent built-in distribution, tracking, and support mechanisms (and is free).
I work with Android devs every day, and to be frank, they are jealous of us.
> Are Google's development environments better than what Apple offers?
They're really not that great. Android Studio is a hacked-up version of IntelliJ that doesn't feel like a unified experience. Error highlighting often gets out of sync until I rebuild the whole project. Design preview sometimes stops updating, displays an error overlay with a stack trace, and requires manual refreshing and rebuilding to fix. Updating various Google components can be a series of manual clicks and restarts. Gradle sometimes goes out of sync and requires manual rejiggering to get working again. And so on.
> Microsoft certainly has good dev tools
If any one of the Big Three really gets developer tooling, it's Microsoft. Visual Studio is an absolute joy to use, and it has the best Vim integration of any non-Vim editor I've tried. C# is getting better and better with every release; I wish I could use it everywhere.
Visual studio code is really worth giving a try these days. It ain't the full fledged thing but it is gaining features rapidly. The user base is great and extensions are exploding. It might actually become my standard editor on macs. Disclaimer: 80% of my professional time I spend on Windows having VS + resharper available. Up to this day nothing beats that combo for me if it comes to coding/development.
> Are Google's development environments better than what Apple offers?
I'd also like to hear from people who have developed for both platforms.
> Microsoft certainly has good dev tools, while I don't care for Windows in general, I do appreciate the good tooling when I'm at my day job.
Interesting. I do get that impression and it's one reason I'm open to eventually moving to a Microsoft product again for my development work. Is it currently possible to do iOS development exclusively on a Microsoft laptop/environment? Or at least could I get away with using a remotely-controlled Mac Mini for some of the Xcode stuff?
I'd have to say Google's Tools are 100x better than they used to be. Android Studio is based on IntelliJ IDEA and they've done a decent job of getting emulator performance where it needs to be on good hardware.
That being said, I think Swift was a huge win to Apple developers who were unhappy with Objective-C. Xcode and the iOS simulator are still way ahead of Google's tools on performance.
On SDKs:
This is where Google is really blowing it and where Apple shines. Apple's SDKs tend to be well thought out and well documented.
Android's SDKs on the other hand are poorly documented and are fragmented into a mess. To expand a bit, there are new SDKs for new features on new hardware and tons of "compatibility" SDKs that have to be used to bring modern features to your app if you want to support old Android releases (you have to).
Android's SDKs show both a lack of direction and a rush to patch up the fragmentation mess. This isn't a knock at their hardware (Pixel, etc), which looks nice. There's just a general lack of coherency among their APIs and no clear path on how they're going to fix it.
TLDR;
It's fair to say Google is making progress making their developer's lives better but Apple (and it's community developed SDKs) still make a better developer platform and a better software to develop with.
I develop for both iOS and Android. Its night and day difference between the two developer tools. XCode is absolute garbage and get worse year after year. Android Studio is excellent and keeps getting better. Things which were traditionally not great with Android dev are being fixed. Like faster ADB, good emulators, faster built times, Kotlin. I could go into more details, but I would rather be a full time Android developer than a full time iOS developer. The things iOS development really has going for it is, iOS users are more willing to spend money and the there are very few unique devices. Most apps even start out just targeting a single screen size, the iPhone 6. You can't do that if you are targeting the desktop or Android.
I don't do iOS development so I can't say, I've only toyed with it, and on my Mac at home.
I will say, VS2015 has options for creating iOS projects, but I haven't tried using them and don't know the limitations (irrelevant to my day job, I use VS for C# and sneaking in bits of F# when I can for internal applications targeting Windows desktop).
It most likely uses Xamarin, a C# tool for making iOS apps. It gets the job done, and I made a full commercial app for work using it years ago (and I bet it's more solid now). It's kinda cool because most of the Xamarin functions are almost direct wrappers for iOS functions, so you could look something up in Objective-C and 90% of the time know how to do it using Xamarin.
But there are some hiccups with Xamarin, and I'd rather just code native now for iOS only (there's a lot more jobs for native iOS developers than Xamarin, although React Native is a good bet nowadays too). If I was doing cross-platform with Android, I'd either do React Native or I'd consider Xamarin again.
iOS is by far the best mobile platform out there, in terms of its development environment. The problem is that everyone is using the crippled version of it.
Cydia/Theos/Cycript were developed by two people and they come together so much better than that shitty Xcode stack it blows my mind. They are so good that iOS being closed source isn't even a con anymore. They are probably the most underrated tools in existence; most people haven't heard of them (let alone regularly use them) because the industry doesn't see un-jailed iOS as an lucrative market. It's a damn shame.
Sadly it's hard to blame them when you look at Google and Microsoft. Both had much better development environments and got crushed in revenue.