I have been asked to develop a relatively simple iPhone application. However, it would be my first application.
I am a fairly competent programmer and can turn my skills to a new language fairly quickly... what my question is, is...
How long has it taken some of you guys to make your first iPhone application and what was your experience like? Also, if you can say this sort of information, how much did you charge for it?!
Thanks in advance.
Kindest Regards
Tom
If you have an OO language under your belt and have a mac, these are reasonable minimums for the creation of your first, simple application (based on my own experience):
2 weeks: Learn enough Obj-C and iPhone SDK to create a simple 2-3 screen app.
2 weeks: Create and polish a beta version of the app.
1 week: Do a beta test of the app including 1-2 experienced iPhone devs.
2 weeks: Submit the app to Apple and wait.
1 week: Administrivia: Setting up a developer account, bank account info, and going through app submission process for the first time.
So a total of 8 weeks, or two months, minimum, if you keep the app simple.
iPhone / Apple specific pitfalls that will delay you (i.e. other than things that would delay any app developer, such as feature creep):
Registering as a corporation (more complicated than registering as an individual)
Failing to read the Human Interface Guidelines
Failing to get at least one other iPhone developer with titles on the store to test your app
Let me add to that, including content which "ridicules a public figure"
Learning resources that I found helpful:
Beginning iPhone 3 Development: Exploring the iPhone SDK (PDF version)
Stanford iPhone course video lecture series
My first app took longer than this, about three months start to finish. I was a little more delayed because I registered as a corporation, spent about a week making small, unrelated "test" apps, and ran a longer beta test. My app had a total of 7 screens, 3 of which required some moderately complex UI logic. In addition it required writing scripts to convert a large data set w/ images, and copy editing a lot of bilingual text. You can check out a video of my first app that took about three months to create from the time I started learning Objective-C to it's first day of sales on the App store. If your app is less complex than this, then it will almost certainly take you less time to launch it.
In my experience, this is the best place to learn iPhone development, hands-down:
http://mycodeteacher.com/lpackage.php?key=objc_iphone
Hard to say on time, but if you really devote yourself to these lessons, you should be able to create a simple app within a few weeks, I would think.
My first application took 3 months. My background was mostly C/C++. I had also done Java in college and Ruby in my free time. It was a app that gets images from a server, lets the user swipe through them, email them out, vote on them, and save favorites to the device. Those 3 months include several weeks to write the server. I did it as a paid intern and I would say the the total cost to my employer was 5k. Good Luck
Hi my name s Justin and I am 17. My only experience was writing essays in english and I started making an app early December, and I plan to be done here in like 2 weeks. I used the Stanford iTunes U movies in iTunes.
Edit
Meaning it is very easy to learn the language and my drawing app took me about 2 months. And don't think it is a very simple drawing app it is pretty complex.
Check out the Stanford iPhone Application Development course:
https://podcasts.apple.com/us/podcast/iphone-application-programming-spring-2009/id384233222
I've only watched the first lecture but Alan Cannistraro is a great lecturer, and if the syllabus can be believed, you will be able to learn to do a complete iPhone app in just a few weeks.
I think PrairieDogg's answer is about all you need and 8 weeks is a good estimate. But the best advice I can give is this: don't insist on doing things the way you think they ought to be done based on experience you have gained on other platforms. This means read the HIG of course because you can get an app rejected for misusing UI elements. But often you will have an idea about how to do something programmatically in an iPhone app and you find yourself subclassing and writing heaps of code and doing tricky things to bend the system to your will. If anything takes more than about ten lines of code, that is your warning sign - start googling, there is probably an easy idiomatic way to do it. Sometimes it really does take that much code but on the whole it is an incredibly easy platform once you know how.
And make sure you are working in 10.6, the static analysis tool could save you a week all by itself.
I will add yet another vote for the Stanford iPhone Development course but with the caveat that the course instructors use a lot of Apple and Objective-C terminology without being able to easily translate those terms into language more familiar to the CS students in the class. It's obvious sometimes that they just don't know the general OO analogy to what Objective-C does in particular cases.
In my case, I finished a preliminary version of my first real app in about 3 months, which included watching the entire iTunes U course and following a bunch of the programming guides in the iPhone Dev Center. But, I will add that since then I've spent an additional 5 months completely re-engineering my application after discovering that most of what I was doing "my way" had a very robust Cocoa library available it that, if I learned how to use it properly, would greatly improve my app.
So long story short, the iPhone SDK and all its component libraries are very deep, and many of the design fundamentals they use take some getting used to. If you want to do anything complex, expect research, tutorial, and debugging time for each new Apple library you use.
i will suggest you edumobile will help you to understand all the aspects, of iphone development. it is highly suggested for all those who would like to master iPhone Programming in a simple easy-to-learn fun environment.
All the best.
Related
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
I want to know how difficult is to develop on iPhone plataform. By difficult I want to mean:
Effort in terms of programmer versus software complexity. To be clear: how many programmers are needed to develop a medium sized app on iPhone?
SDK learning curve.
Hardware and other non-programming related stuff affecting the development
How easy is to sell iPhone software. To be specific: is easy to sell an app on itunes? does it cost something? I'm confused about how to sell that apps on iTunes store...
any one has experience on advertisement supported apps? please tell me... how has been that?
thanks
One programmer (a good all-rounder) can easily do it. Once you have done your first app you will be surprised to see what sells and how little actual programming there is in some apps. The reason you have to be a good all-rounder is that the apps that succeed have it all - design, inspiration, execution. Consider involving a designer if your taste doesn't match what seems to be popular. Don't expect to ship anything with standard UIButtons, on the store it stands out like the proverbials. Normal practices are essential, e.g. revision control, issue tracking and all that good stuff. It seems to matter more the higher level an API you work to.
SDK learning curve - not so bad. Initially you struggle with why a NSArray can't take another value, but inside 1-2 months you'll be subclassing things all over the place. However read below, don't try to do too much custom stuff...
You need an Intel mac, you need at minimum an iPod touch to submit an app - try to submit without testing on actual hardware and you will miss something, and it will be rejected. You don't have to have the latest Mac OS or Xcode to get started but you probably do for store submission. If configuring choose more RAM over more processor speed. An SSD is essential. BIG (or multiple) screens are, as with any coding task, a big advantage. The new 27" iMac would be a great development machine. It's hard to go wrong with current Macs, I have had good experiences with an 11" Air and a mini, they're not that much different from a Mac Pro as far as development goes once you have a big monitor plugged in.
Selling is not so hard. Provided your app isn't complete rubbish and doesn't get 10 1-star reviews right away sheer numbers will get you some sales. To make it big is hard, and you will need to investigate marketing, review sites, twitter, youtube, in fact to your all-rounder programmer skills you can add marketing director. The noise on the store (sheer number of applications) means only a truly stellar application (i.e. featured by Apple) will stand out in the absence of any other effort. There are probably plenty of apps on the store than in 2008 would have made their developers rich, these days they are lucky to sell 1000. The cost is $99 to join and after that you get 70% of sales revenue while Apple keeps 30%.
Additionally...
With the context that I am a C/C++ programmer who has spent most time programming embedded devices and handsets, with almost no C#/STL/Java...
Here's what I found easy/good:
Xcode (although I admit getting started was jarring coming from Visual Studio)
brevity - what you can do in just a few lines of code is amazing
Stanford CS193P iPhone programming class on iTunes University - great intro, free!
WWDC video sessions. Not cheap but probably worth more than what you pay in terms of in-depth knowledge. I've been to similar developer conferences that were more of an excuse to stay in a nice hotel and do some duty-free shopping but if I'm not at WWDCI will feel like I'm at a severe disadvantage. The big benefit of getting to WWDC is the people you meet, this and lab sessions are what you win if you get lucky in the ticket lottery. All the technical presentations you get for free on video these days.
Here's what I found hard:
knowing just what storage classes to use in a certain situation. My first huge performance problem came from using indexForObject on NSArray with hundreds of thousands of objects. Obvious now but who knows this the first time it happens to them?
"letting go" of preconceived ideas about what a UI should do. Don't go laying out a .xib until you have used at least 20 iPhone applications and have some idea of how things are usually done. Doing things otherwise is not only likely to be harder, if your idea is too far against Human Interface Guidelines chances are it will never be accepted to the store anyway.
Xcode debugging messages - do google these because they are cryptic at first but when you find other people explaining them they start to make sense after a while
Here's what I found completely perplexing and got working through trial and effort:
Apple's on-device provisioning process
actual submission to the App Store
So far I have one small game on the store. It's not a particularly good game unless you really like that kind of thing, and only scrabble nerds do, but it still has 10 sales after 1 week and that's with no publicity at all. I did it to get experience with how the store works and by that measure it was a success. In learning curve terms it took me probably six, seven weeks full time from opening the first Apple doc to submitting the game, but today I could do it in about two days.
edit: Incredible to think that this answer is now more than two years old and that people still vote on it. Well I didn't become an app store millionaire but many people have and it can still happen even though we now see some big companies producing very polished apps with large budgets. What's the secret ingredient? Passion, which brings attention to detail. If you love your app there's a good chance users will also.
I didn't get to WWDC 2010 but I did get to 2011, 2012 and 2013. Keep at it, independent developers - you will almost certainly not do well enough on your first app to retire, but you will be working on an awesome platform, growing fast, with an incredible community behind it. You can make a good living by yourself. And if you do give up your independence the job market is very, very good.
more edit: Did I mention CocoaHeads? Find your local iOS programmers and find out about CocoaHeads. If there isn't one consider starting one. Either you will discover opportunities (i.e. projects, or even employment) or you will discover people to hire when you have succeeded and can't be a 1-person shop any more. Not to mention the useful free education speakers at these groups represent.
Swift is now perhaps less weird than Objective C seems to a programmer coming from some other language. I do think it's the right choice if you're beginning, Apple are clearly pushing it as the future and it has gotten much better since introduction in 2014. You may find learning Swift is an advantage, if you have that option - many developers are stuck supporting existing projects in Objective C.
iOS continues to grow and be an interesting and fun platform and I don't think it's slowing down. OS X is keeping pace. I'm still very happy I made the choice to do this back in 2009. Come on in, the market's fine.
We have started developing about a year ago and currently have two OpenGL 2D games on the market. My experience so far:
Simple application can easily be a one-man show. For a medium-sized application you are likely to manage with just one good programmer, but usually there are other people needed, such as a graphics designer. This highly depends on the nature of your application.
A bit steep if you have no experience with Objective-C and Cocoa. C knowledge helps, as does knowledge of some OO and computer language concepts. Even then you’ll spend some time getting used to their way of doing things. (Which is usually well-thought, but often different from what other people/languages/stacks do.)
The biggest non-programming issue is the crazy provisioning and review stuff. It takes a while to get used to all the profiles and certificates and signing voodoo. You are going to hate it, but will get used to it.
Selling the app is hard. You either have to be one of the lucky ones to make it into the featured apps on the device or you have to be some big title or your application has to be something with a clear audience (like Geocaching) or you will have trouble getting a decent coffee for what you earn. (I am over-simplifying here, but it’s mostly true.) The selling process itself is pretty much painless – $99/year and Apple gets a third of what you earn.
Depends what you mean by "medium-sized". Also depends how long you want it to take. In general, to make a decent app, you need a combination of things: programming skill, artistic skill, design skill, and business knowledge. Most people don't like to do all of those things. I'd guess that the majority of iPhone apps only have a single actual programmer, though. You can tell the ones that were written by a programmer who should have gotten some help with the other aspects.
Depends what you already know. It took me a month before Objective C stopped seeming really bizarre, and I've used lots of different languages.
The hardware isn't a problem unless you don't already have a Mac, an iPhone, and an iPod Touch. The biggest non-programming thing for me is the App Store review process; you have to understand that when you think you're done, you're going to need to wait a couple of weeks, and it's possible that the idea you thought was great falls into some category that will never ever be approved, or that you'll have to change your app's name, etc.
It's easy to offer apps for sale on iTunes, once you pay your $99. If your goal is for people all over the world to download your free app, or to put your app on sale and make tens of dollars, the App Store is great. If you're hoping to make millions of dollars, or even thousands, you have to be some combination of competent, persistent, and lucky.
It's rather difficult to answer your question owing to the fact that often this is highly subjective in my previous experience.
1) Generally the effort is much lower than the one required when using a different platform. Those acquainted to software engineering principles including the use of design patterns etc will find that the SDK is built around all of the common abstraction we are used (except a very small part still using C style procedural APIs).
2) The learning curve is steep for people rolling this on their own, is really easy for people being taught on the matter. A fast course style exposure to the SDK and tools (say 40 hours total) it's usually enough for people to become proficient enough.
3) There are no hardware issue to be taken into account, at least in my experience. As already pointed out by Zoul, provisioning the devices takes some time to get used to. The submission/review process is in my opinion a little easier.
4) Selling is as difficult as it is on other platforms. But if you have got a really brilliant idea, then you usually sell many copies of your software. Or, the idea may not be so brilliant, but the software you develop is fundamental for a specific field targeting people always on the move etc. Just developing something without a clear target is the perfect recipe for disaster.
What is your definition of "medium sized app". It could easily be just yourself, or it could be a few people including a designer. Also, to some degree if you have more time you need fewer people.
That depends heavily on your experience to date. Many people have come over from .Net and Java development and not found it too hard... you probably need at least a month to be comfortable with a lot of the concepts.
You need a Mac, that is it. Any Intel mac with 2GB of memory will do.
It's very easy to sell, since all you do is upload a binary and (after a wait for Apple to approve it) Apple puts it up for sale. You need no servers. You do need to pay a yearly $99 fee to develop.
Very subjective. A one person app developer can develop a medium sized app. How long will it take? Depends on how much free time the developer has and how much experience with Obj-C.
I learned some parts of the SDK in less than a day. I still don't know the entire SDK, as I haven't needed to. I doubt that any one programmer would want to spend the time to learn the entire SDK. For example, if you aren't doing anything with the accelerometer, why study it?
You need to roll up your sleeves and delve into it yourself to see how long it takes you. If you are asking for your team, then you will have to judge how well their expertise will apply.
As for selling on the iPhone, there are some easy aspects, like not having to worry about packaging or salespeople, but you still have to sink money into marketing or no one will find your app in the almost 95,000 apps on the app store today.
If you're asking because you keep reading that it's an easy "get rich scheme", then I'd say you're in for a surprise. Despite the reduced overhead in some areas, and low start-up capital, it's as much work as any other software venture, since the ratio of team members to work to be done stays about the same (the economics of a $2.99 or $4.99 or $9.99 apps forces you to have a smaller team).
Perhaps an analogy... I want to know how difficult is is to build a house.
In terms of builder vs house
complexity. To be clear: how many
people do I need to build a medium
sized house?
Power tool learning
curve.
Permits, plans, and other
non-building stuff.
How easy is it
to sell my house?
Let me give you some guidance as I have worked on JQTouch. Its a library that build using JQuery and it also provides multi-touch related features too. Basically this is for UI related stuff.
Please have a look at JQTOUCH and look at the code samples. The business logic can be done in any server side technology of your choice.
Summing up the things with your relevant questions
Effort is not that tough. Easy for developers to develop. Less documentation.
Pretty easy
Emulator could be downloaded from Emulators
Not much knowledge on this.
It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
Closed 10 years ago.
This question is inevitably subjective, but I will ask anyway.
I'm a PC. I've always been a PC. I have very little Apple expertise, although I'm completely happy in *nix. I've plenty of experience with development, and consider that I am able to pick up new languages and concepts faster than most of my colleagues (although ML/F# still hurts me on a regular basis). I'm reasonably familiar with C++, although haven't touched it since the nineties, work on a daily basis, and 100% confident with C#, would consider myself advanced to expert with Java and have developed a reasonable amount of stuff in Lisp and Prolog back in the day.
We've had a recent request to develop an iPhone app, which sounds like quite an interesting proposition that we'd be quite interested in taking on. We have very little in-house experience with Apple platforms. Given our ignorance of most things Apple, little to no familiarity with OSX and the Apple UI paradigms and assuming we acquire the necessary hardware for development:
What one would need to learn?
How long would a good developer need to get up to speed?
Are there any non-obvious expenses that might arise from pursuing this route?
Once again, apologies for the subjective nature of this question. Many thanks.
It took me a couple months to feel comfortable with it; but that was only evenings/weekends. I came from a PC/VC background and had never owned a Mac.
Objective-C is OK, if a little unusual. There are the usual gotchas that you learn once and then don't do again. IMHO its easier to shoot yourself in the foot than C++, but it's not a big deal to switch. I think the bigger learning curve is XCode; it's certainly not a patch on Visual Studio, and can take a bit of getting your head around. That said, it is getting better with each release. One of the things that bugs me the most is the Mac keyboard vs the PC keyboard - particularly in the IDE - I keep jumping to the end of the file instead of the end of the line, etc. And then going back to PC you find save, etc. isn't the same key combination. It can get quite confusing.
The Mac & OS X is a breath of fresh air - wish I'd got one sooner. I bought an iMac 24 to get plenty of screen space. It's a lovely machine.
For Cocoa, I took the slightly unusual approach of starting with a Mac app before doing a phone app. I used the book 'Cocoa Programming for Max OS X' which gave me a good grounding. I then moved onto 'Beginning iPhone Development'. I think this approach worked well for me because the Mac OS is the bigger picture, and the iphone is a subset - it helped me get context on how things had been put together. I also bought several books on linux, mac internals, etc...whatever I needed to fill the gaps in my knowledge. I found I needed to get pretty comfortable with the Terminal, and read a book on the bash shell, and polished up my 'vim' usage. I also discovered 'git' along the way and haven't looked back.
For the phone itself, you really need a device, not just simulator; I've found several problems where the simulator didn't match the device (particularly if you intend to use OpenGL ES) - for that reason I'm going to test on iphone 3G/3GS & touch. Credit where it is due; all the differences I've found were problems in my code which needed repairing to make it look the same on simulator vs device. If you've done any device programming, it's probably the best device programming platform you've ever used - easy and stable, with good debugging.
I'd say the cost is one Mac + 2 iphones + ipod touch, and $200 worth of books... Haven't found any hidden costs...
There are a lot of questions here about getting started with Cocoa on the iPhone and Mac, listing many great resources:
"Getting Started With iPhone Development"
"Starting iPhone Development"
"Howto articles for iPhone development, Objective C"
"Are you doing iPhone development? How do you learn?"
"Best Cocoa/Mac OS X programming blogs?"
"Cocoa and Objective-C resources?"
"Good ways to Learn Cocoa?"
"Can anyone recommend a complete ObjC/Cocoa or Cocoa-Touch tutorial?"
"What are some of the best online resources for learning Objective-C?"
"Are there any Open-source iPhone applications around?"
From my own personal experience, it took me six months before I felt comfortable with Cocoa, but that was years ago when I was only tinkering with it part-time. Since then, we've moved all of our robotic control software to Cocoa and the Mac, so it's what I now do full-time. Adjusting to the iPhone was a pretty quick process, taking me three weeks of nights and weekends to produce my first application, which has been on the App Store since launch.
In addition to all the resources in the questions listed above, I highly recommend reading Apple's iPhone Human Interface Guidelines cover-to-cover. They don't provide hard-and-fast rules, but they do explain the overall UI design of the platform and the reasons behind why things are done the way they are. Also, make sure that you use the device yourself on a regular basis, so that you understand what does and does not work when interacting with the platform.
As a final resource, I also recommend paying the $299 for the WWDC 2009 iPhone Session Videos. They are well worth the money, particularly if you are just getting started on the platform.
Beyond the cost of an entry-level Mac (the Mini is a good choice, but the 13" MacBook Pros are a great value and can run Windows well), the $99 / year membership in the developer program (which you don't even need to pay until you want to install the application on a device or distribute it), and the cost of the books or videos listed above, the only hidden cost to worry about is time. I've spent a lot more time tinkering with the iPhone platform than I imagined I would when I started over a year ago.
The Cocoa-Touch framework is a cut down version of the full cocoa framework, so fortunately, this makes things a lot simpler to learn as there are fewer ways to do things, so not so many choices and design decisions.
You require an Intel Mac to develop on, and would also need an ADC membership to publish the application. Other than this and test devices (iPhone and iPod Touch). This should be all of the require expenses. You could use only the Simulator to develop, but I would recommend on device development as well.
There are some good online videos in iTunes. I found the Stanford University iPhone Developer Course particularly useful.
A good developer could probably be up to speed in under a month. Especially if you have C/C++ skills, along with your other skills I would expect you to be productive in under a month.
The Apple docs are not the most forthcoming, but are quite complete. You could learn everything just from these.
Good Luck
I came from a heavy Java background, with lighter amounts of C++ and also some Lisp/Scheme as you have - I've been doing iPhone application development full time since the SDK release. Here are some thoughts I have on the questions you raised.
What one would need to learn?
You need to learn Objective-C, the language - a helpful guide showing you comparatively how things are done in C++ (and some Java) compared to Objective-C is:
http://ktd.club.fr/programmation/fichiers/cpp-objc-en.pdf
I found that very handy in quickly understanding the Objective-C syntax, since it's not a large divergence from C syntactically but is more so conceptually.
Beyond that, just like Java Apple's Objective-C has a very large set of foundation classes you can work with - just as rich in terms on string handling, internationalization, complex time/date support, etc. Just like Java, that will take some time to get used to - but knowing the Java libraries, a number of things are conceptually similar. The GUI classes are also extensive and pretty powerful, as are some of the other frameworks like CoreData and CoreAnimation. Happily I find the documentation very good, it's well integrated with XCode and even has sample code links in the docs.
Also, the GUI development tool Interface Builder is very good to work with. I never found GUI builder tools of much use in the Java world (or really in any other world) but the model that Objective-C uses where you basically are creating objects that get wired up at runtime to your code, works really well and does enhance productivity. It's good to know how to do some things manually to understand what is build built by the components you are adding, but I'd start learning how to use Interface Builder when possible, early on.
I also highly recommend the O'Reilly safari online book service, because you can hunt down a few books that are of use and search for extended examples on something you are having trouble with for a marginal monthly fee. You can get the widely read Hillegass book there, among others.
How long would a good developer need to get up to speed?
That's tricky to say, because it depends on just what kind of app you are trying to build. Some areas of the frameworks and GUI components are easier to understand than others. But, I would say probably a month or two of full-time working with it would yield a pretty decent level of familiarity, and you would be productive before then. Someone with a good background in a variety of languages will have an easier time I think. Also it pays to really learn the ins and outs of XCode, because it's a very powerful tool but at first may not seem that way depending on what IDE's you are used to.
One thought is that you may way to go to a training session somewhere. There's actually an in-depth iPhone conference in Denver just a week from this post date, 360iDev:
http://www.360idev.com/
(Disclaimer, I am a speaker at a few of the session there)
Although if you do not yet even have a Mac, It may be a little too soon for that to be of full use. You could check around for other such conferences, or other places that offer training.
Are there any non-obvious expenses that might arise from pursuing this route?
Financially? Not really. You can use pretty much any modern Intel Mac to develop with and it will work great, with the caveat you should have 2GB of RAM.
You'll need a device, but if you are not using features found on the phone a Touch is fine to develop against for all platforms so you could avoid a recurring fee if you do not need one.
Time-wise, as noted there are a large set of foundation classes and so that takes some getting used to. But one good thing about the mac as a platform is that while it differs from windows, it has a good Terminal app so you can be productive in a standard UNIX shell with all the UNIX tools you are used to having. You can even do command line builds although realistically you end up working pretty much all the time in XCode (though I admit to breaking out to Emacs on occasion when I need to do some tricky bit of editing better suited to Emacs' abilities).
We are currently in the process of evaluating a couple of iPhone development shops and we're putting together a list of questions/topics that we'll be asking them about when we meet.
To make sure that we have the most relevant areas covered, what would you ask when evaluating an iPhone developer or development shop?
Our main areas are: applications shipped and quality thereof, planning process, development methods, testing frameworks, how they manage the ad-hoc beta testing, and the on-going process of bug fixes and re-submission to the app store.
I have coded and shipped an app, so I have enough experience with it to ask pertinent questions. What kind of specific development questions would you guys want to cover before feeling satisfied with someone's abilities?
Thanks!
If you ask for things like code, requirements document, etc, they'll probably send you the best of what they have and that might not be the status quo. At the same time it doesn't hurt to take a look over such things and see how they handle the request.
Since 90% of the iphone shops have a life of about 2 years (most people have jumped on the iphone bandwagon in the last few years) I wouldn't hold that against them but I'd make sure they have a development background and didn't start their development career on the iphone in the last 2 years [1]. If I was outsourcing any type of work (iphone, web, desktop), I'd want to work with a group that has been through a handful of the ups & down's of developing, delivering and supporting software, plus has the client skills to match.
Meaning they can communicate, know how to manage and know how to run the development side as well. I'd like it if they at least had some development history/experience in C or C++.
Also, do they have artists and such in house or do they outsource the asset creation? (Maybe its not needed for your app besides an icon & splash screen).
What software do they use for bug tracking? How do they manage their development cycles? Do they use a methodology? (waterfall, agile, etc)
Do they offer support? How much is it? Contract? Per instance?
Do you get the source? You should, you paid for it.
Speaking to them is very important, and your gut will tell you much about them. If you can drop by and checkout their shop that's cool too. But don't hold a small shop against them - it should just mean better rates for you due to lower overhead.
If they've done consulting work, and have shipped app's that's a benefit. Specifically question them about ad-hoc distro.
And importantly, have they worked with the technologies you need (say openGL for a game, or consuming web services for a network related app)? Again, not necessarily a strike against them if their smart and eager, but you'll be appropriately aware of their current abilities.
Good luck!
Also, if they're willing to work on equity alone, I'd be worried. Developers are making good money on the iphone and I see no reason to take equity only. I consult on the iphone, and I won't accept equity deals. Cash is king.
[1] What I mean is that, I would expect them to have developed on other platforms (web, desktop, other mobiles) NOT just the iphone. So if they started programming in the last year, on the iphone alone, that's probably not a firm I want to work with. If they had developed desktop applications for the last 5 years and then came to the iphone world in the last year or so, that's cool. I just want to work with people that have gone through the first couple years of development - those are great great great learning years (but don't want them doing it on my dime).
Ask them for a portfolio. Then buy those apps that they have worked on and see if you like them.
Ask them how long they've been developing iPhone apps for the AppStore.
If it's longer than 18 months, find someone else.
I would say process and experience are most important. Items like:
Describe your process
How much involvement can I have- access to tools, developers, etc.
Tell me about projects you've done that overlap or featuresets that overlap mine.
Do you outsource? Or who, specifically will be working on my app?
How do you handle maintenance?
How do you handle payment?
Items like this are a good start to a dialog between the two of you. Theres really a lot to consider when developing an app. I think coming into the conversation really well prepared on your product will give you an understanding of the right questions to ask.
What kind of practices do you do when developing iPhone apps? For instance, do you write up a technical design document of any sort. Do you write down the design of your app at all? Do you implement a certain methodology agile/scrum/waterfall etc...? I'm just curious when working on projects like an iPhone app, what kind of best practices do people use or do people just go at it?
I've worked on a few iPhone apps, and I've found this workflow works pretty well:
Figure out what the app is going to do. Create a one sentence description of the app that embodies what you're trying to do. If you can't explain the core functionality in one sentence, people won't get it!
Create interface mockups for each screen of the app on paper, and then in Adobe Fireworks. Fireworks' native file format is PNG, so it's easy to create images for use in the actual app later.
Figure out how you're going to architect your app using Model-View-Controller and the other iPhone app design patterns (delegates, dataSources, etc...). Don't try to do something other than MVC. The whole SDK is built around MVC!
Start coding! I usually start with the bare functionality first. For a drawing app, I implement the drawing controller and the important drawing views (color picker, etc..) first. I back things up to an offsite SVN repository as I go using Versions (I haven't had much luck with the repository support in Xcode)
Distribute a beta version of the app to a group of AdHoc testers. This helps a lot. Getting the app in the hands of a few extra people really helps isolate usability issues and bugs that are hard for a single developer to find.
Repeat until satisfied and Apple approves :-)
I haven't done much with iPhone development, but its irrelevant. I wouldn't consider it any different from any other developmental process.
The process is different for each case, some have at it and others follow their development methodologies.
As one who is about to dabble in his first iPhone app, I don't think there is any one methodology that rules over any other. You can apply any of the techniques you mention to an iPhone app, just like any other development effort.
A key thing about iPhone apps, or any Apple related development effort, is that Apple sort of forces you to follow certain design guidelines. That is good in some ways (less to concern yourself with) and bad in others (restrictive).
Also, Objective-C and Cocoa Touch can also lend itself to certain ways of programming.
Now, specifically for me, as a sole developer, I will probably:
Jot down high level features of what I want to be included in the first version
Do an interface mockup (either on paper or with a software tool)
Jot down some key objects and functions (psuedo-code)
Set up a source control mechanism (I think this is key)
Start going at it
Possible repeat of any or all of 1-3 :-)
I prefer to start with small proof-of-principle projects to test out different capabilities of the device that I need for my final product. This is especially important on a mobile device like the iPhone, because hardware limits on memory, processing power, graphics, or display size can render some ideas impractical. It's best to know that your application won't work as you imagined after only a couple of days of playing around, rather than after a month of development.
John Geleynse and others at Apple advocate starting your design with a single sentence that describes your product and its intended audience, and building everything around that mission statement. I've found that this works extremely well for determining what features to incorporate or leave out of a product, particularly on the iPhone. Having a simple core product description at the center of your design is also extremely helpful when you need to explain this product to others in your later marketing efforts.
Aside from that, I've found that iterative development incorporating lots of testing and user feedback has worked for me on every platform I've developed for.
Closed. This question is off-topic. It is not currently accepting answers.
Closed 11 years ago.
Locked. This question and its answers are locked because the question is off-topic but has historical significance. It is not currently accepting new answers or interactions.
How much can a developer charge for an iPhone app like Twitterrific?
I want to know this because I need such an application with the same functionality for a new community website. I can do Ruby but have no experience with Objective-C. So it would be interesting for me if I should start reading books about iPhone programming or outsource the work to a iPhone programmer.
I'm one of the developers for Twitterrific and to be honest, I can't tell you how many hours have gone into the product. I can tell you everyone who upvoted the estimate of 160 hours for development and 40 hours for design is fricken' high. (I'd use another phrase, but this is my first post on Stack Overflow, so I'm being good.)
Twitterrific has had 4 major releases beginning with the iOS 1.0 (Jailbreak.) That's a lot of code, much of which is in the bit bucket (we refactor a lot with each major release.)
One thing that would be interesting to look at is the amount of time that we had to work on the iPad version. Apple set a product release date that gave us 60 days to do the development. (That was later extended by a week.)
We started the iPad development from scratch, but a lot of our underlying code (mostly models) was re-used. The development was done by two experienced iOS developers. One of them has even written a book: http://appdevmanual.com :-)
With such a short schedule, we worked some pretty long hours. Let's be conservative and say it's 10 hours per day for 6 days a week. That 60 hours for 9 weeks gives us 540 hours. With two developers, that's pretty close to 1,100 hours. Our rate for clients is $150 per hour giving $165,000 just for new code. Remember also that we were reusing a bunch existing code: I'm going to lowball the value of that code at $35,000 giving a total development cost of $200,000.
Anyone who's done serious iPhone development can tell you there's a lot of design work involved with any project. We had two designers working on that aspect of the product. They worked their asses off dealing with completely new interaction mechanics. Don't forget they didn't have any hardware to touch, either (LOTS of printouts!) Combined they spent at least 25 hours per week on the project. So 225 hours at $150/hr is about $34,000.
There are also other costs that many developer neglect to take into account: project management, testing, equipment. Again, if we lowball that figure at $16,000 we're at $250,000. This number falls in line with Jonathan Wight's (#schwa) $50-150K estimate with the 22 day Obama app.
Take another hit, dude.
Now if you want to build backend services for your app, that number's going to go up even more. Everyone seems surprised that Instagram chewed through $500K in venture funding to build a new frontend and backend. I'm not.
The Barack Obama app took 22 days to develop from first code to release. Three developers (although not all of them were full time). 10 people total. Figure 500-1000 man hours. Contracting rates are $100-150/hr. Figure $50000-$150000. Compare your app to Obama.app and scale accordingly.
There are ways of paying less to get an application, developed than paying the going rate, but very often you get what you pay for - inexperienced developers who leave you with a mess of spaghetti code that's impossible to maintain, or experienced developers with whom you have to communicate across a cultural and language gap.
Developing an app like Twitterific is not easy. It's an extraordinarily polished app with a lot of attention to detail that most people - indeed many developers - would fail to notice or realize the effort behind. You may be able to get a Twitter iPhone client written for $3500 or $5000 by going offshore or by being willing to "work with inexperienced developers", but you're not going to get Twitterific for that, and it's doubtful you'd get even a halfway decent application for that amount.
And you likely will end up spending a lot of time managing the process, going back and forth on requirements, and fighting to get what you really want instead of what they want to give you.
There's also a risk with "cut-rate" development, whether it's offshore or just using inexperienced developers - you may very well end up with something you can't use, or something that gets 1 star ratings because it crashes or behaves erratically. You might find the occasional underpriced gem of a developer, but they won't stay underpriced for long given the sheer demand in this market right now.
By virtue of my books and blog, people often reach out to me when they need help with their iPhone applications. I get, on average, 4 or 5 inquiries a month from people asking for help fixing applications they had developed either over-seas or by inexperienced developers here in the States. In most cases, I end up having to tell them they'd be better off throwing their code out and starting over with a developer who knows what they're doing rather than trying to fix the code they bought on the cheap. If they insist on trying to "fix" what they have, I decline the work.
I am a very good iPhone app developer, and I charge over $150 per hour for my services. I have a ton of experience building iPhone apps and their server side components. I have also been called in on several occasions to fix offshore developed apps. Here's my take.
Design costs money, good design costs lots of money. Expect several designer weeks of work per app screen. Offshore teams do not do design.
Server development and infrastructure is critical if the app is to succeed. A slow server response, or an overloaded server will hamper your app, and crimp sales and satisfaction. The server side of the equation will cost the most and take the most time to develop. Those who offshore their server development will find that quality and uptime are both terrible, in my experience.
App development if done right takes time too. A professional developer will ensure all HIG rules are followed, the app is properly structured and contains no known errors, it performs well, and it passes the app store validations. Offshore teams just cut code.
I'm just about to release a shopping app for a client. The design work was done by 2 client in-house designers over 2 weeks, quick because they had all the image assets already. Think 2 people x 10 days x 8 hours = ~$24,000. The server side had to be modified to provide data for the iPhone app. We used their in-house team and in-house platform and in-house API, 2 developers, 4 weeks, or about $50,000 and that's because they already have a web shop and API. Cost them about $400,000 to get there (excluding platform). And I wrote the app side in 3 weeks, given that a lot of my code is duplicated from previous projects, another ~$25,000, the cheapest app I ever did.
Total spent: ~$100,000, and that's insanely cheap!
And they will give this away for free so clients will buy from their store from their iPhones.
For your app, Peter, if you have the servers and the APIs and the design, I'd guess at $30,000 to $60,000 depending on complexity. If you do not have the design, double it. If you do not have the APIs, double again...
I am an account exec at a web and mobile development company and hear this question everyday. Unfortunately, iPhone apps are not cheap. You can expect around $100 per hour if you are staying on US soil. I have seen some offshore Indian developers out there for as low as $20 per hour. It all depends on the number and complexity of the functions you wish the app to perform. Simple one function apps are normally around 4-5k. They are so expensive because you are paying a team of people a healthy hourly wage and any type of raw prototyping, development, and coding takes time. Apps can exceed 60-100k pretty easily. Southwest Airlines making an app with a full ecommerce platform that allows you to buy tickets over your phone is an example. All of that porting into their IT is a big job.
And offshoring the project is definitely not always a better option. If you do so you better know who you are dealing with. Do not get me wrong there folks over there who do a bad ass job for a way better deal, but they are not that easy to find. Those guys could fuck around for 5 months on a simple project that would take 6 weeks here, or just not complete it at all and hand it over half finished. I have seen this scenario many times where we finish the work. The project management becomes a challenge. It can be difficult to communicate exactly what you want the app to do.
River of News for the iPad took about 400 hours of development to get to version 1.0 and I don't know how many hours my designer spent (20-50?). At US labor rates that's at least $40,000. But that sort of tight development was only possible because it was a one man operation. There is an enormous amount of overhead added when you separate the person writing the code from the person deciding what the product is going to do.
If you are going to send it offshore you'd better know exactly what you want. With the language and time difference it's very hard to do iterative design where you are exploring what is possible.
Appsamuck iPhone tutorials is aiming for 31 days of tutorials ending in 31 small apps developed for the iPhone all the source code for which is available to download. They also provide a commercial service to build apps!
If you want to know if you can do the coding, well at least you can download the code and see if anything there is helpful for your needs. On the flip side you can also get a quote from them for developing the app for you, so you can try both sides of the coin, outsource and in-house. Of course it all depends on how much time you have too! It's certainly worth a look!
(OK, after my last disastrous attempt to try and post a useful piece of help, I went off hunting around!)
I am the developer for Coupious mobile coupons iPhone app and with the amount of time that I spent on that application (v1.0 - v1.5), it was probably a $15,000 - $20,000 investment. However, to be fair, I do admit that I was the only developer working on it and when I started the project, I had never seen or used Objective-C before. Despite that, three months later, it was released so the numbers are probably a little skewed because there was a fair amount of learning going on as well as coding.
However, iPhone competent developers run in the range of $80-$150 depending on their skill and time with the platform. I would say that for a simple application, an app would probably run 2K-5K, a medium complexity app would run 5K-15K and a fairly complex app running 15K-30K. Game applications could be even more.
The reason it is so high is that the skill is fairly specialized and not everyone is able to do it
I hate to admit how little I've done an iPhone app for, but I can tell you I won't be doing that again. The guy who said that "simple, one function apps can be done .. [by solo developers]... for $5K" is correct; however, that is still lowball, and presumes almost no project design, graphic design or network backend work.
The rates that were quoted above are what you would expect to pay US developers; however, I do know some people who have been able to get their apps built for as little as $4,000 by using offshore developers.
Here is a blog post from a group that did this: http://www.lolerapps.com/why-outsourcing-iphone-apps-was-a-no-brainer-for-us
Also, Carla White wrote a fantastic eBook about the process she used to outsource her app called "Inside Secrets to an iPhone App". She talks about how she got a great deal because she was willing to work with a team that was still learning iPhone app development.
So, there are alternatives to the higher price developers discussed above.