Why I develop for iOS
chriseidhof.tumblr.com
chriseidhof.tumblr.com
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.
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.
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.
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.
"If you want to make more than 1K/month, then yes, it is pretty darn competitive."
So.. Do you make more than $12K/yr?
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.
- 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.)
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.
I think you've chosen your niche well. It's popular but under-served.
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'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.
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.
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 ;)
http://itunes.apple.com/us/app/stealth-tones/id334666404?mt=...
Do you think this is healthy in the long run?
-- 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.
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.
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.
(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).
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.
> "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.
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 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.
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).
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.
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.
And I believe that was the point he was making.
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.
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?
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.
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.
Gosh iOS devs love themselves, they seem to ooze ego. Incoming downvotes...
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.
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.)
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.
The parts that are difficult are so because of poor tool support or weak libraries (browsers, JS).