Hacker News new | past | comments | ask | show | jobs | submit login
Why I develop for iOS (chriseidhof.tumblr.com)
159 points by chriseidhof on Aug 4, 2011 | hide | past | favorite | 74 comments



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.


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.


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 ;)


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


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


Here's an article from last year with some numbers: http://communities-dominate.blogs.com/brands/2010/06/full-an...


What exactly is the 'lifetime' on an iphone app?


I'm pleased, too: my app is destined to be immortal!


You play the whole young programmer angle often. Good luck with future development, though.

http://itunes.apple.com/us/app/stealth-tones/id334666404?mt=...


I actually am aware of this, it is very true, and have been moving more away from it as I am getting older. I am in the (well, constant) process of updating my online identity. For example, my website is shit, haven't got to that yet.


I think it's a good angle.


Am I the only one who finds this disturbing?


I completely share your opinion.


very few apps make it onto new & noteworthy in the first place, so I don't consider that as a factor. From developers I've talked to, some have thrown pretty hastily put together weekend projects out on the app store and consistently make $5/day, which comes out to $150/month.

If you want to make more than 1K/month, then yes, it is pretty darn competitive.

Yes there are 450K apps on the app store, but if you have a well made app that fits a need and isn't "yet another flashlight" you're already ahead of 99.9% of the junk out there.


My last app submitted two months ago has made a total of $34, and it wasnt put together in a weekend, it took 6 months in design and development.

So its not as easy sailing as you make it sound. I think you still need a lot of advertising if you want to make some money.


I've read your website and watched your preview video (http://www.youtube.com/watch?v=VKvYH_Qdp1Q) and I still have very little idea what your iPad app does exactly. It seems that it displays pictures from Facebook?

I'm not trying to rub dirt in the wounds, but I don't think you're doing a good job of creating a value proposition for many people.


I agree with alanfalcon. After watching that video I'm not exactly sure what the app does. Sure there are a lot of marketing buzz words and flashy animations but that doesn't sell me on why I should bother installing it.

That fact that the app isn't free wouldn't be what would dissuade me from downloading it (although I won't lie it is a minor barrier). It is the time I'd have to spend on figuring out why I want to use this app.


I'm not saying it's easy I'm saying the opportunities for indie devs are huge, certainly more so than webapps which seem to be par for the course on HN. And I don't think you need any advertising. All 3 of my apps have reached top 5 in their categories without spending a dime on ads.


My last app (http://www.burgerkone.com/grainbender/) was on the New & Noteworthy music page for three days, and was as high as #17 in the U.S. iPad music apps store. Initial sales have been good but if it follows the trajectory of my other apps there's no way it will be pulling in $300 a month a few months from now.

I think you've chosen your niche well. It's popular but under-served.


Picking the right niche gets you most of the way there IMO


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

"If you want to make more than 1K/month, then yes, it is pretty darn competitive."

So.. Do you make more than $12K/yr?


Yes. Made ~75K last year. On track to triple that this year (I've released 2 more apps this year).

In response to below:

- How? Started off first app as a side project, released on app store. Got traction and went from there. Then started releasing more apps and each of those did well also.

- How long did it take you to reach this point? Released first app May 2010. Quit soul-sucking BigCo Dec 2010. Started traveling the world Apr 2011. Released second app last week (both are ranked Top 5 in sports on iPhone & iPad).

- Was luck a big factor? (Honestly.) - I think less so than for most apps. My app is pretty niche and I knew there was a market opportunity and took it. It was definitely not just throwing something out there to see if it would stick. I knew the market and knew there was pent up demand for my product because I am part of the community.

- Is your revenue spread evenly across your apps, or does it follow a power curve? Does your top-selling app account for around 50% of your income? - I have 3 apps. One accounts for 50% the other 2 account for about 25% each. Each of them are considered pretty successful by app store standards (currently all Top 5 in category).

- How did you market / promote your apps? - Did not do any marketing. Just released it and it grew organically.

- How did you decide what apps to build? (Probably the most important question.) - Built something that I needed to have, and I knew others would pay for. Much easier to do this if you have other interests outside of nerd-dom. Hint: Stop reading hacker news so much and get a hobby where the majority of participants are NOT technical.

- Do you have a "launch strategy"? Well, this is a bit of a cheat since I already have a pretty large userbase. But I have code in my app that notifies the user when I have a new app and links them directly to the app store. That's how I got traction for my 2nd and 3rd app. I'll give you an example of how powerful this is. When my 3rd app was released last week, iTunes rankings were broken. I did not show up AT ALL on the app store except via manual search. Despite this, I shot up all the way to #4 in spots purely on downloads from existing customers and (I suspect) word of mouth to their friends. Lesson here is to not just get customers, but get fans who will evangelize your product for you. That's probably the best advice I can give.


Awesome success! Do you need to frequently publish app updates to keep your revenue up? Or can you launch your apps "fire and forget", generating money without needing to touch the code again? That seems like the only strategy that would scale well without being burdened by maintenance.


Frequent updates are a must for staying on top of the charts.


Unsorted list of questions:

- Holy crap.

- How?

- How long did it take you to reach this point?

- Was luck a big factor? (Honestly.)

- Is your revenue spread evenly across your apps, or does it follow a power curve? Does your top-selling app account for around 50% of your income?

- How did you market / promote your apps?

- How did you decide what apps to build? (Probably the most important question.)

- Do you have a "launch strategy"? That is, when you finish making an app, and you submit it to the AppStore... Do you have any particular strategies? For example I've noticed a lot of developers write their app's description like: "Blah Blah says: our app is the bee's knees!" "Even your grandpa can't tear himself away from our app!" Etc. Does stupid stuff like that actually work? (Ok, those examples were perhaps exceptionally stupid, but you get the idea.)


edit: nevermind about disclosing your apps, just read your profile

Would you mind disclosing which apps you have written? Just basic curiosity, you can also mail me (see profile). I deduced most of what you're saying here and want to go on my own as well before I become an eternal wage slave.

I'm at step 2 of your list, my app is 80% finished so it's half done ;-). It isn't a weekend project and I want to polish it before putting it in the store.


Would you say that saving all of that hassle is worth the 30% you give to Apple?


For a one-person startup where my time is more limited than my money? Absolutley. 30% is not unreasonable compared to what you would pay a distributor and a publisher for shrink-wrapped software. Even then you would have to manage several stakeholders instead of just one. Visibility is also something Apple gives you if you are fortunate. Once your app hits the Top 100 charts or gets featured sales just take off like a rocket. I've been featured 3 times and while getting an Apple feature is rare, your chances are significantly improved if you have something unique and polished.


It amazes me how much people prefer to have 100% of NOTHING to give someone 30% for handling most of the distribution problems.

Apple App store has been just barely profitable-just break even for a long time. It takes time and money to maintain it.

It lets you access millions of people overnight. Not so easy to do for an startup.


you can literally throw just about anything on the app store and it will make a couple hundred a month

Do you think this is healthy in the long run?


I just take this as an indicator that the barrier to entry for making $ is very low on the app store as opposed to web apps, which is my entire argument. If the long tail is generating a few hundred a month, how much do you think you can make if you actually have something good?


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


Taking twitter for example, it is rendering content in a native app when you're looking at tweets. The content is delivered in json (or whatever) standard format and rendered in native controls, namely tableViewCells. Webkit is used if you look at a web page... but otherwise it is native.

The flexibility and quality you get by taking web "content" via json (rather than HTML) and rendering it natively is a huge win.

I don't see android customers paying for websites wrapped in an app anymore than I see iOS users paying for it, actually less.

Of course if you're making SaaS such as base camp then you can do native clients on either platform.... and sell them successfully... while selling a specialized web browser (That just gives you the base camp website in WebKit) wouldn't likely fly.


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.


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.


Most often webkit is being used because that's how you put multiple formatting styles in one UI component. It's the recommended by Apple way to do it. UILabel and UITextView will only be one font. You can't type this, then italicize the date. Instead, you just use UIWebView, pass it the string of html that formats your text the way you want, and you're off.


  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.


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.


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.


Can we all just agree that to be good at any technology, it is pretty darn hard? But I've done enterprise Java/.NET, web development,and iPhone development. If we are talking about what is easier for a beginner to pick up (some HTML/CSS/JS with something like Rails or Django backend), I would definitely recommend web development over Java/.NET/Obj-C.


..I feel a little differently. The thing that just drove me crazy when I first tried to learn web development (with rails) is that every so often, I would need to make a detour, and go learn some other technology (css, javascript, prototype, html,http etc) . Granted, that experience may have helped my learning curve for objc; But when I was learning to program for the iphone, I was up and running before I even fully realized that cocoa was different from objective c. Of course, I cringe when I look at objc code I wrote early on, but guess what? The people who purchased those apps know nothing about the underlying code.


It's considerably easier (IMO) to get started in web development than in iOS development. Web development has a fairly gentle learning curve and I personally know a bunch of people that started their careers hacking in php. iOS development has a gentle learning curve if you already know C, which even some CompSci graduates don't nowadays.

I don't think this was intended as a put down, it's just a fact that there are a ton of ways to put together a simple web app and some of them are very accessible.


A Web App is more than HTML and PHP of course. There is an entire "stack" and if you're doing it all yourself you need to know something about all of it. You will probably find yourself needing to be at least somewhat proficient in: HTML, CSS, JavaScript, PHP/Ruby/Python or similar, Apache or IIS administration, Linux/BSD/Windows administration, MySQL/Postgres/SQL Server administration, some dialect of SQL itself, etc.

I'm not sure how that compares to iOS but my hunch is that you can pretty much confine yourself to learning XCode and the framework. The water may be a bit deeper right at first than just tinkering with HTML or PHP, but the overall domain appears to be more limited, at least so it appears to me (I have not done any mobile development yet).


My last iOS app required the knowledge of Objective-C, the frameworks, HTML, CSS, & Javascript (because that's actually how you do formatted text, and javascript for event handling within that text), SQL for the local storage, PHP & MySQL for the server-side storage, etc.

I'm not saying either is harder, I think that's a fight for cats, but I did want to inform to your hunch from experience.

I think both web development and iOS development require the use of tools and languages that many don't know about at the start, as I'm sure plenty of people think, "Oh I just have to learn HTML & Javascript" and then find all of the things you've listed.


> because that's actually how you do formatted text, and javascript for event handling within that text

I would say that CoreText is the preferred way to do it. WebKit is pretty slow by comparison and leaves you with much less control over your renders. It's not a horrible solution if you are trying to share assets with other platforms though.


The cost is what is prohibitive for many developers, which is why web apps are easier. I don't have to buy a Mac to make them, and any body can use them no matter what platform. I used to write Mac applications back in the day, but all my friends and relatives who didn't use Mac OS couldn't use them, I switched to web apps and yes I lost a lot of features, but I am reaching a wider audience. Have any IOS developers tried to port their app to Android? just for the challenge.


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


> 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?


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.


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


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.


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.


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.


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.


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.


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


Money. That's your reason.


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


There's plenty of reasons I choose iOS, that this poster shares.

Knowing exactly what screen sizes you're developing for is huge, and there being only 1 or two can really help you make a polished UI. (For example, compare the Facebook app on android and on iPhone.) Also the culture of quality is something I enjoy.

Reducing this post to your one-liner makes some assumptions. Money will always be a big factor, yes, and if that's what you meant, then great, but those other reasons are also big reasons for developing on iOS.


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.


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.


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

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


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.


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.


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


> Cross-browser hassles, graceful fallbacks.

You don't have to make your web app compatible with every browser ever released—know your target audience. You can develop only for Mobile Safari—and, with a bit of effort, make your app run on Android, desktops, and even Lynx as well if you want.


Big data and scaling are networking problems, which are indeed hard. Networking doesn't have to be done in a browser at all however... Web development is strictly what happens over HTTP and it's not as difficult as several developers have made it out to be in this topic.

The parts that are difficult are so because of poor tool support or weak libraries (browsers, JS).


I'm a web developer. I didn't read it like that. I did't even realise there was an iOS/Web dev divide....?


Alternatively it could be called, "Why I pick low hanging fruit". :)


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.




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

Search: