Some of My Articles
Articles main page (There's more!)
Developing for Android Rather than iOS
As you may have noticed from some of the content on this site, I began doing some Android™ development a couple of years back. At this stage, I have learned a whole helluva lot. I now have 14 apps done and available on Google Play™ store. But every time I release a new app, the first thing many people ask is, "Is it available for iPhone®?", or "What, no iPhone version?!" And every time, I can't help but feel a little bad. It really is a shame how often I have to say, "Yeah, sorry. That's not gonna happen." I thought that perhaps it was time to explain why that is. Because there is a really good set of reasons.
It's been a clean 2 years now since I did any serious research on Apple® iOS development. Since it's been so long, I had hoped to find that Apple had come to their senses and made the whole thing a lot easier. Pffft... No such luck. In fact, it's worse than I expected. Here I will list the reason in no particular order. I promise not to go too much into technical detail. This is really just a story I want to tell. I'm not writing a manual. You know... I want people to actually read this stuff...
iOS development is expensive, whereas Android development costs nothing
This is not a trivial matter. Like many developers, I'm doing this in my spare time, partly for the reasons of educating myself, and because I think it's fun. I'm a creative guy. I like to build things. I do have ads in some apps, that generate some small income. But nothing of the scale to brag that I'm making serious money. I am not selling these apps to large companies. In short, I can't afford to work at a loss.
Having said that, this is where the problems begin...
In order to develop apps for the iOS, you need to have a Mac. Even if you do all of your development on another machine, and do all your compiling and testing there, you cannot upload it to the Apple Store® unless you do it from a Mac. This is actually written into their terms of service. Now, it's not that I have some sort of hang up about Macs. I really don't. But they ARE ridiculously expensive. Even the cheapest reasonable machine, bought as a referb off Amazon, is at least $500. And that doesn't even come with monitor, keyboard, and mouse. Sure, you can get a cheap Macbook for under $200. But it will be so ludicrously underpowered that anything more taxing than moving the mouse will slow the machine to a crawl. So you're already out about $500. And you haven't even started writing code yet.
In order to get started, you need software.
The popular term is the Software Development Kit, or SDK, if you need to impress anyone. There is no iOS SDK that is worth a damn that is cost effective. Certainly not on Windows. Even less so on Mac. Forget about Linux. Xamarin seems to be the best one that works with both Mac and Windows systems. Sure, it's free. But in Windows, it won't run on its own. It requires the Visual Studio framework, which at a bare minimum is over $500. I do not know what the native Mac development kit (XCode) goes for. I can't even see it without an account on the Mac Store. I got rather annoyed that I spent time away from writing this and could not find the price. So I gave up and came back to writing. Let's just assume it's expensive and move on... [Please see edits below where I retract this outdated information]. In any case, this still brings us back to the expense of the hardware. The point is, they don't make it easy, or cost effective.
EDIT: Recent feedback is telling me that the two examples I cited for code development are indeed free, if you look hard enough. So I must retract that point, at least partly. XCode may still be free, but you still need the expensive machine. Visual Studio... I still cannot find any evidence of that suite being free. But that's what people are saying.
EDIT 06/05/2016: I've gone back again to do further research on the development environment part of this. What I find is that Xamarin is available and free. Visual Studio has a "Community" version that is also available and free. From eveything I've read, Xamarin is a good idea as long as your apps are really simple form based stuff. So at least half of my apps could not be translated, pretty much at all. I would have to rewrite them from scratch. Actually, even the form-based stuff would have to be rewritten from scratch. There is no converting them. In any case, going forward, I would have to be aware of this ahead of time, and know that whatever I'm building can't be very complex.
Continuing with this edit... After having done all this research, I actually do intend to follow up on this, and create a production environment that can build for iOS, Android, and while I'm at it, Windows. It looks like my environment will be Visual Studio on Windows, using Xamarin. And I will have a Mac as well so I can finalize things, plus have Xamarin running there too. This is not going to be a replacement for my current production environment. It couldn't be. It's more like an expansion. We'll see where things go from there... So there is an end game to noting all this stuff for eveyone to read.
We're not done with the costs yet
On top of all of this, it costs $99 a year to register on the Apple Store® to upload apps. Google Play has a one-time fee of $25. And that's only there to keep out the riffraff (people who aren't serious). Perhaps that's what Apple is doing too. But they really REALLY want to keep out the low-budget jerks like me. Everything about what I've said here more or less comes back to that point. They only want the best of the best of the best (that have money) developing stuff for their devices.
What does it cost to develop for Android?
All that I've written so far is to set up a comparison to The Android Development Kit. It's free. You can download and install it, and be up and running in a couple hours. You don't need a powerhouse machine to run it (although, it helps). This system is actually newer than what I've been using for the past 2 years. The system I started with uses Eclipse for an IDE (Integrated Development Environment). It's also free. It runs on Windows and Linux. And it comes with everything you need to write, compile, and deploy your app. I had it running on an older Dell laptop that, in terms of computing power, is a joke by today's standards. And it worked perfectly fine.
Google has dropped support for Eclipse in favor of the new system. This is fine, because that's one of those things that happens as platforms evolve. But the interesting point is, I'm still using Eclipse. And everything I'm writing works 100% on every single Android phone and tablet out there. In the end, you have 2 separate, functional, complete systems that are 100% free to choose from
The devices themselves
Here, I actually do need to get just a little bit techy. Because the devices and their capabilities do make a difference. Let's just get the cost out of the way first. Everything with an Apple on it costs WAY more than any Android device. I don't require a citation to back that up. Everyone already knows it. So getting your hands on a good number of iOS devices for testing is not easy. Android devices on the other hand, are exceedingly affordable.
But the main thing is the capabilities of the devices themselves. With Android devices, you can access the file system. This means that when I compile my new app for testing, I can upload it directly to any of my devices, install it, and test it. I don't have to go through any 3rd party systems. Apple has their devices locked down to prevent this sort of behavior. You have to register your testing devices with them before you can even start.
Seriously... That is a LOT of extra work to go through. When I am testing an app, there are times when I have to update the version on the testing devices 10 times in an hour to tweak things. I cannot even imagine having to jump through a bunch of hoops to complicate the whole thing along the way.
Oh, by the way... Amazon devices all run the Android OS also. And every single one of my apps works on their devices with no need to recompile. And it costs no money to distribute my apps through their store. So I have all my apps up there too.
Is it really worth all the effort anyway?
That's a good question. After doing all this research today, the last thing I did was to see if there is even a point in putting up all the time, energy, and expense. How many people are using iOS devices compared to Android? Just now, I did a quick Google search and clicked the first link I found. Forbes is a reliable source. Here is what they have to say:
IDC most recent data shows Apple increasing the number of iOS units shipped between 2015 and 2016 from 237 million to 274.5 million, but it's market share will dip 2.2 percent to 14.2 percent. During the same period the number of smartphones using Android will hit 1.53 billion, up from 1.2 billion in 2015, but its marketshare will remain static at about 79 percent. (Forbes)
Uh... Wow... That's a pretty big difference in market share. It only took me one Google search to find it. And for me it's the final straw. It's the final piece of the puzzle. There is pretty much no way I can justify putting up that much effort, and that much expense, with no promise of a return, to develop for a platform that is losing ground.
A final word on all of this
I insist that I am in no way bashing the iOS devices, or their users. This is in no way a reflection on anyone's preference for their device. iOS users are a proud and numerous lot. There is nothing inferior about that product at all. But from a developer's standpoint, there are a lot of rather annoyed people out here.
I wonder if Apple ever takes this sort of thing into consideration. I wonder if they realize that being completely out of reach for many developers has hurt their business. What's really shocking to me about this is that it's not the first time they've made this mistake. The reason the Windows dominates the business world for everything that is not graphics related (and now some of that too), is that Windows was a more accessible system at a time when Apple kept their stuff locked down - and subsequently comparatively expensive.
Now, here in 2016, we have a situation where Apple pioneered and blazed the trail for everything we love about our mobile devices. And then promptly had the carpet yanked out from under them by Google. All because Google has a better methodology. This is not just my opinion. Re-read that Forbes article if you don't believe what I say is true.
I welcome your comments and opinions on this
Anything that you can find that totally defeats my findings would be helpful. Because the next time someone asks me why I didn't develop my newest app for iPhones, I would like to be able to give them a better answer than, "Because I didn't."
Apple, Apple Store, iOS, and iPhone are trademarks of Apple Inc., registered in the U.S. and other countries.