Hacker News new | past | comments | ask | show | jobs | submit login

All good reasons. My reasons are:

-- The Apple frameworks are first class. In the past 20 years, there has never been a set of GUI frameworks that I've seen that was anywhere near as good as things are in iOS right now. (I've not looked at android, but it being based on Java doesn't fill me with hope. A lot of what makes CocoaTouch work so well is due to Objective-C.)

-- You can write an app once and have it run on iOS on the iPhone, the iPod touch and the iPad. This is really great. No phone outsells the iPhone, no tablet outsells the iPad, and there doesn't seem to be any competition for the iPod touch. This means "cross platform" or, across the spectrum development is really easy. In fact, with some tools you can include Mac OS X in the mix, though it isn't as trivial as doing an "iPad Port".

-- The above means that you have the largest addressable market for your software. It is true that this market is also the one that is more likely to buy software. But, while people talk about android as a "platform" it really isn't, from the developers point of view. Android ships on phones with keyboards, and much of its volume is on phones that really are just feature phones that can run apps. IOW, they are low end cheap phones sold for little, or given away for free to people who use them only to make calls and whose design is such that you can't really do a modern iPhone style touch app for them. Or if you can, it involves a lot of porting. IF the phone doesn't have a touchscreen, it doesn't matter if it's android or not, you have to do another port.

-- Apple has proven to be a trustworthy partner. People like to complain about Apple and make them out like they don't treat developers well, but they really do. All of the reviews (and the one rejection) from the Appstore review team have been fair. Apple pays on time and reliably. Apple sells software world wide and supports addressing a worldwide market easily. Apple's terms are consistent and they keep expanding and improving their market. As someone whose business is selling (rather than writing, though I do all of our development, the software is worthless if it isn't sold) having a good market is really critical to success.

-- The consistency of the platform means that we can have free apps or very low cost apps and not be buried in support requests. I think this is really underestimated. On other platforms, either you're ignoring the customers, or you're dealing with innumerable bugs that show up on a particular model of device. You don't have that fragmentation or variation on the iOS platform, and you can therefore afford to do real customer support.... though most customers contacting us are telling us how much they love our apps rather than complaining about problems.

-- Apple keeps giving us really news stuff to play with. They don't have fundamental problems they have to address (like androids fragmentation) and when they do give us something where they're behind (like iCloud) when they deliver it is generally a first class implementation. I'd wish there was more sample code for iCloud but they took their time and did it right, and I appreciate that.

Of all the platforms I've developed for this has been the best so far. So, while there might be some financial advantage to developing for android as well, I don't really see it.

Here's the costs that keep me off of android:

-- Maintaining separate port of our software would be too much. One set of source code for all platforms keeps us working on new features and moving the ball forward, not maintaining a another code base.

-- As I mentioned, we'll be able to add Mac OS X to our single code base, and that's nice. Where we're likely to have to do a separate port is the web. I'm much more interested in doing a web app for our customers, because then I can point everyone to it-- android users, palm users, windows phone 7 system home plus users, etc. If I'm going to support an incompatible platform, its going to be the web.

-- Java. Frankly, at one time Java was my favorite language... but having worked with Objective-C, erlang and other languages, I've grown to hate it. It is ... bureaucratic, for lack of a better term. Like nails on a chalkboard now.

-- I don't see the market there for apps. The quality of the market in which we'd sell, and the quality of the customers doesn't seem like it would produce a worthwhile return on our investment. Sure, angry birds can do well, but that's a different kind of situation, that app is a phenomenon.




I love Apple products, and am learning C++ on my own, alone along with web development, (huge task I know) but the one thing I noticed about apple these days is that if you create an idea on their platform and they like it, it could be an feature in their next upgrade with no compensation to you, also could someone please point out any other use case for Obj-c I come from a background of using/instructing with proprietary software and I despise the idea of learning a language for one platform and being locked in to that platform.


Yes, Apple does that sometimes, but it doesn't always have to be a bad thing, see http://www.marco.org/2011/06/06/safari-reader-and-instapaper

As for learning Obj-C: yes, it's only widely used for building iOS/Cocoa apps. There's also Cappuccino (http://cappuccino.org/), where you can reuse your knowledge for web development. Even if you use another language, your code will probably still heavily interact with the Cocoa framework and effectively lock you in too.


I think you're prolly selling Android short and leaving money on the table in the process. All reports are that most code is fairly quick to port and the sheer number of phones is hard to ignore, even if many of them aren't app shoppers, there's still many many many that are and the app store will iterate quickly. Chrome sucked too at 1.0.

If you don't want to deal with the backend on Android there are solutions that shouldn't be all that different from Apple's 30% cut.


I'm kind of shocked that "all reports" would say code is easy to port between iOS and Android. Have any sources for this? For me its not even just the differences between unmanaged Obj C vs managed Java + XML, but also the overall development patterns used are fairly different (note that I'm not a professional mobile guy, I do .Net and web for a living but I've looked around at both platforms before).




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: