

Why I develop for iOS - chriseidhof
http://chriseidhof.tumblr.com/post/8467033275/why-i-develop-for-ios

======
bignoggins
Disclaimer: I'm a full time indie iphone developer.

I'm an iOS developer for one reason: it is the best platform if you want to
start your own business and keep writing CODE. Apple takes care of
distribution, payments, marketing (via features and top lists), and some legal
issues (you get a default ToC with every app).

What this means in practice is that I spend roughly 80% of my time actually in
the code, which is significantly more than the numbers I've seen quoted for
web businesses. Writing code makes me happy. Dealing with angry customers,
SEO, hosting issues, and the plethora of other things that web businesses have
to deal with does not.

I see a lot of posts on HN where someone tries to make several hundred dollars
a month on a webapp. Speaking from experience, you can literally throw just
about anything on the app store and it will make a couple hundred a month. If
you are seriously looking to make some side income, and potentially even quit
your job, I don't think there is a better option than iOS development right
now.

~~~
cageface
_Speaking from experience, you can literally throw just about anything on the
app store and it will make a couple hundred a month._

That hasn't been my experience. My experience has been that once you drop off
the "new & noteworthy" sales tail off pretty sharply. The app store is very
competitive now.

~~~
conradev
As a 13 year old, I put my first application on the store in October 2009, and
all it does is play those mosquito ringtone sounds, and I still make ~$300-400
a month. It always manages to maintain the top 50 Entertainment in some random
country.

EDIT: Top 50 Entertainment for iPad, Top 100 for Entertainment for iPhone. I
would recommend making your app universal, even if it is just to make the app
fill the screen. There is a much smaller pool of silly apps for iPad ;)

~~~
cageface
The average app makes about $500 over its entire lifetime, so you should be
pretty pleased with this.

~~~
conradev
I didn't know this. Hrmm. Where do you find data on that sort of thing?

~~~
cageface
Here's an article from last year with some numbers: [http://communities-
dominate.blogs.com/brands/2010/06/full-an...](http://communities-
dominate.blogs.com/brands/2010/06/full-analysis-of-iphone-economics-its-bad-
news-and-then-it-gets-worse.html)

------
econgeeker
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.

~~~
ejenkinsiii
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.

~~~
chriseidhof
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.

------
tzury
Dear author,

(OP as well)

It is not clear from your website what type of applications you have developed
so far for iOS which make it hard to "judge" your choice whether or not you
were right about choosing native over HTML5.

But I wish to remind us all that those two can, and in many cases should be
combined.

If we take Google iPad suite or Twitter formal client, they are iOS apps which
render content through the webkit object.

If your app deals with data which resides on the web, and with loads of it,
perhaps rendering the presentation layer in HTML5 is not a bad choice as your
"elite-ios-wiling-to-pay" customers are indifference about it, while at the
same time, you can win the other market (Android).

~~~
flyosity
The only part of Twitter's native apps for iOS that use a UIWebview are when
rendering a single tweet since in that specific use case, it's simpler and
faster to render links that way rather than deal with rendering it via Core
Text. Every other screen in the app is natively drawn. I don't think Twitter's
app is a particularly good example.

> "elite-ios-wiling-to-pay" customers are indifference about it

They are? Are you just throwing that out there or is there some research you
can back that up with? In my experience, from watching users use hybrid
applications (that is, native app shells around web content) they're perplexed
about why things look "a little wrong" and the scrolling is "not as fast" as
other apps.

Note: I design/develop Mac & iOS apps.

~~~
randomdata
On the iPad version of Twitter, even the Tweets appear to be rendered with
CoreText. The only place WebKit seems to be used is when you are actually
looking at a web page.

------
slowpoke

      You need to do memory management, need to work 
      with design patterns, learn a new language, and more.
    

While he does raise some valid points (with which I still disagree, but then
again I wouldn't be caught dead on anything by Apple, so I'm biased too), this
is plain and simply nonsense. Assuming someone knows neither Objective-C nor
any language (including HTML) for web development, the learning curve is
probably about the same. Web development wold probably even be harder, since
you need to deal with much more than 'just' Objective-C.

~~~
oflannabhra
I would say iOS development is more front-loaded in the amount of things you
have to learn before you can build even a simple app than it is for web
development. The net amount of work might be less in the end (as you say,
there are a ton of technologies to learn in web dev work), but you don't have
to learn all of those at once if you want a webpage.

And I believe that was the point he was making.

~~~
cageface
Totally agree with this. Once you get past a certain point the intrinsic
complexity of the problem dominates, but the initial learning curve on Obj-C
and Cocoa is definitely steeper. You can't just slap something together the
way you can with PHP, for instance.

------
bignoggins
> The iPhone and iPad are the high-end of the smartphones and tablets.

I don't think this is the reason that the app store prints money as much as
the 300+ million credit cards that iTunes has.

------
aphexairlines
> The iPhone and iPad are the high-end of the smartphones and tablets.

I don't think that's true anymore. The iPhone is often heavily subsidized by
carriers to the point of being cheaper than other smartphones -- in Japan, for
example, it costs zero yen and its data plan is further subsidized to be the
cheapest in the country. Also, aren't most of this year's hyped tablets
(whether Android ones, or webOS, or BlackBerry) more expensive than the iPad?

~~~
talmand
To be fair, just because something costs more doesn't necessarily make it the
high end of that product niche. Design and build quality has to be factored in
as well.

~~~
aphexairlines
Sorry if I misinterpreted, but I think he was implying that the iPhone and
iPad are more expensive when he says the users are "willing to pay more money
for a better experience."

------
sanj
This article raises a point about getting paid. I haven't seen any solid
approaches (other than SaaS) about getting paid with HTML5 apps. Between your
source (effectively) being available to the public and no clear way to do
"mini" payment ($0.99), it limits what a indepedent developer could bootstrap
with.

~~~
aphexairlines
Regarding mini payments, what about Google Checkout for the chrome web store?
If Checkout accounts are the same as Android Market accounts, you have lots of
people with credit cards on file already for 1-click payments.

~~~
bignoggins
google checkout doesn't have nearly the same traction as iTunes. That's why
android apps sell significantly less despite having a larger install base than
iOS.

~~~
trezor
I hear this claim quite often, but I have yet to see it documented. I'm not
saying you are _wrong_ , just asking if you have some link to a study
supporting this argument or anything similar.

~~~
bignoggins
The android sales numbers for apps are public (the range of sales anyway). I
have a top selling iPhone app and it's fairly easy to compare with the top
selling android apps of the same rank and see that the sales are an order of
magnitude off. Also I've talked to many developers for android and iOS and
they say the same. iOS sales are often an order of magnitude higher.

------
itssoobvious
Money. That's your reason.

~~~
chriseidhof
Yes, most definitely. I have significant experience in web development,
functional programming and iOS development. iOS development is by far the
easiest way to make money (see also the low hanging fruit comment by
somebody).

------
robjohnson
I couldn't agree more. I started programming because of the iPhone. (There's a
longer story about my difficulties of going from zero-knowledge to publishing
my first app, but that's for another day.)

The platform is so polished and ubiquitous, that it gives me a sense that any
app I write could potentially have a significant impact on the users. Since
I've begun my programming knowledge quest, I've done a tiny bit of web
development, but nothing is more satisfying than opening up Xcode to start
something new. The tools, frameworks, simulator, IDE, polish, feel, etc. are
just so incredible.

------
tylerneylon
I think the time for indie iOS developers as real contenders has passed. Yes,
indie developers can still make great apps, but it's no longer realistic to
compete with the production quality that is often seen in the top 10, or even
top 50 on the app store. If you really want to work with a small team, you
absolutely need a great designer who's as invested in the app as you are. I
suspect that in the near future (if not already), even a great coder /
designer team will have trouble competing with the distribution and marketing
advantages of larger names.

------
eulo
Should be titled, "Why I think I'm better than web developers".

Gosh iOS devs love themselves, they seem to ooze ego. Incoming downvotes...

~~~
chriseidhof
I think there are a lot more difficult problems getting solved in web
development (e.g. in Big Data, scaling, etcetera) than in iOS development. I
meant to say that it's harder to get started.

~~~
kingofspain
It's simple to whack up a HTML page with "hello world" printed bold on screen,
yes. But then it's also pretty simple to do the same on iOS. If you want
something quality then suddenly you have HTML, CSS, Javascript,
PHP/Ruby/Python/Java, server tweaking, cross-browser hassles, graceful
fallbacks and whatnot to deal with. It'll always be easier to create a crappy
website than a polished iPhone app.

Not that I want to get into an argument about which is easier/harder. iOS is
much harder for me but I have a 12 year head start with webdev.

~~~
econgeeker
The pain of doing web development for a maze of twisty browsers, all alike and
incompatible makes iOS a "superior" choice in the sense that it means less
headaches.

For me, it doesn't really matter which is easier or harder, but which has the
best return on invested pain.

I am working on some solutions to get web pain down for our particular area of
the industry, and as a result, I think the web may have a positive return on
the amount of pain it causes. (FWIW, of course iOS has pain too, everything
does, just using this as a measure of the relative joy vs. hassle of doing
what's needed for business reasons, vs. hassle of having to deal with painful
technologies metric.)

------
xradionut
Apple isn't trustworthy if you don't fit into their future profit and
marketing plans for the consumer market. Try selling an astute CIO on Apple
and they will point out Cupertino's history of abandoning and screwing
enterprise customers and partners. There's more platforms to develop for than
just mobile.

