Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

new-to-mac

macrumors regular
Original poster
Jun 15, 2012
102
0
Hi Guys,

I'm looking to build an iOS app but after investing about 6 months on trying picking up some coding skills I got stuck at "Hello world" :)

I've now made up my mind that I need to hire some developer to help me and was looking in odesk or rent a coder but everyone seems like they know everything and yet I don't know if they know what I need.

So I'll ask here. The app I would like to build is similar to Kayak (but way better!) If I want to outsource the building of such an app what are the key skills a developer should have? objective C, xcode, cocoa, unity, HTML5, etc etc?

grateful for any help.

cheers
 
Hi Guys,

I'm looking to build an iOS app but after investing about 6 months on trying picking up some coding skills I got stuck at "Hello world" :)

I've now made up my mind that I need to hire some developer to help me and was looking in odesk or rent a coder but everyone seems like they know everything and yet I don't know if they know what I need.

So I'll ask here. The app I would like to build is similar to Kayak (but way better!) If I want to outsource the building of such an app what are the key skills a developer should have? objective C, xcode, cocoa, unity, HTML5, etc etc?

grateful for any help.

cheers

I'm not familiar with Kayak. Can you summarize the features of the app you want to build? Is it a game? Business appellation? Utility? Does it have an online component? Graphics and/or animation? Sound or video?
 
I'm not familiar with Kayak. Can you summarize the features of the app you want to build? Is it a game? Business appellation? Utility? Does it have an online component? Graphics and/or animation? Sound or video?

hi Duncan,

Kayak is basically an engine that allows you to compare prices of hotels (as an example). Think booking.com
You enter a city (or use location services) and enter dates and the app gives you hotels in the area and the going daily rates. I believe it also gives you comparison of prices from several places.

Kayak is also a website - you should check it out in case you travel for leisure. (I have no affiliation just mentioned it as an app that has similar functionality I am looking at)
 
You'll need someone to create the database and write the code to write to/read from it (so maybe a combination of MySql and PHP, or MS SQL and .Net). I'd guess that could take the most time/money.

The easiest approach then would be to build a mobile website which accesses and displays that data. That would be a combination of HTML to create the structure, CSS for styling and Javascript to make it dynamic.

If you really want an app, then it could just be a basic web browser (in Xcode / Objective C) which loads the mobile site. The only real benefit of the app is the kudos of having an app and its presence on the App Store. It might give you extra options in storing the user's information locally etc., if needed.

You might struggle to find one person with all the skills required, I don't know if it's left-side / right-side of the brain but most of the people who are good at creating databases & back-end code tend not to have great design skills for the site, and vice versa. (Or maybe that's just me!)
 
You'll need someone to create the database and write the code to write to/read from it (so maybe a combination of MySql and PHP, or MS SQL and .Net). I'd guess that could take the most time/money.

this part I think we have covered since I am partnering with a friend who has Oracle database knowledge and PL/SQL. License wise probably .Net and MS SQL might be cheaper though... I agree and we think this is the heavz lifting part of the project (probably 60-70% of the effort/cost).

The easiest approach then would be to build a mobile website which accesses and displays that data. That would be a combination of HTML to create the structure, CSS for styling and Javascript to make it dynamic.

good idea!

If you really want an app, then it could just be a basic web browser (in Xcode / Objective C) which loads the mobile site. The only real benefit of the app is the kudos of having an app and its presence on the App Store. It might give you extra options in storing the user's information locally etc., if needed.

Could be a quick win until we get an app running. Our monetization plan does fit better with an app mainly as we might want some offline capability and plug into iOS features like location services, maps, and who knows ibeacon :)


You might struggle to find one person with all the skills required, I don't know if it's left-side / right-side of the brain but most of the people who are good at creating databases & back-end code tend not to have great design skills for the site, and vice versa. (Or maybe that's just me!)

you are probably right if we want to be serious about it. We are still in the very initial stages and we'll find hurdles along the way but the enthusiasm is there so who knows... we are trying to figure out who much this will cost and what is our payback period to see if we take this forward... right now our thought process is we might do it anyway just for the fun of it

thanks for your valuable feedback
 
If you really want an app, then it could just be a basic web browser (in Xcode / Objective C) which loads the mobile site. The only real benefit of the app is the kudos of having an app and its presence on the App Store. It might give you extra options in storing the user's information locally etc., if needed.

I agree with what whooleytoo said in terms of the database information, but disagree with the app vs. website part. Kayak (and many other sites/apps) has a different navigation and use pattern on their site vs. app. Having a native app for iPhones is usually a lot better than navigating a website on your phone. As long as you focus on usability and feature parity in the app, it is very appreciated by your users (I use kayak on the web and my phone).
 
Last edited:
Could be a quick win until we get an app running. Our monetization plan does fit better with an app mainly as we might want some offline capability and plug into iOS features like location services, maps, and who knows ibeacon

Some of my AppStore apps use UIWebView to display HTML + CSS menu (and, then, I use [absUrl hasSuffix:] to quickly differentiate between the menu items in shouldStartLoadWithRequest, where the suffix is generated via JS in my HTML file).

This allows for any kind of layout achievable via HTML + CSS. The downside is the time needed for the initial menu presentation, which, because of UIWebView's sluggishness, is considerably slower than with a simple, native VC. The "flashing" is particularly visible on slower devices.

I use the online refreshes + offline catching approach, which requires no Internet connection for the app to work but, when it's available, can connect to my back-end server to download possibly new HTML markup and refresh the local, offline copy with it.
 
I agree with what whooleytoo said in terms of the database information, but disagree with the app vs. website part. Kayak (and many other sites/apps) has a different navigation and use pattern on their site vs. app. Having a native app for iPhones is usually a lot better than navigation a website on your phone. As long as you focus on usability and feature parity in the app, it is very appreciated by your users (I use kayak on the web and my phone).

Yeah certainly, it's not an approach that works for everyone. You may want the app to look/act differently to the mobile site. And site-based apps can be sluggish if the DOM model (the site structure/hierarchy for any non-techies) is complex. Though, on mobile devices you probably should be keeping things relatively simple.

I mentioned that approach because it can be an easy-win. You don't require a big budget for app developers (which would have to be repeated for each platform you support), you're not dependent on a 3rd party for approval / propagation of updates once the initial app is approved, and crucially it means any time you're redesigning/rebranding you only have to do it once, not once for the site, once for iPhone, once for Android etc.
 
this part I think we have covered since I am partnering with a friend who has Oracle database knowledge and PL/SQL. License wise probably .Net and MS SQL might be cheaper though... I agree and we think this is the heavz lifting part of the project (probably 60-70% of the effort/cost).

You probably don’t want to pursue either of those technologies for the kind of app/business you’re looking at starting. There are powerful open source tools that have zero licensing costs associated with them. There’s also what I’d call a “cultural” consideration for startups, mobile, etc., that I believe is more driven by non-enterprise tool community. Just my $0.02, I’ve been in the tech/dev sector for a long time, I current do work both in the startup/mobile space (see below), as well as the Federal sector (where I use .NET/MS-SQL/Oracle).

I’m going to cheat a little and reuse a previous post of mine - I’m pretty familiar with Kayak (and related services), and while this was in response to a “social media application”, the recommendations are very close.

by me a few weeks ago :) said:
A few recommendations:

Build a RESTful API for handling backend services. It’s easily consumed by iOS, plus, it’ll give you an API for other native clients or a web interface should you choose to pursue it.

Use a PaaS provider like Heroku. Platform as a Service moves most of the administrative overhead out of your hands. There’s a number of good services out there, most support several stacks, but you’ll see that there’s “faves” for specific languages. They all support really easy to use plugins for performance monitoring, logs, notifications, etc.

Heroku offers a free level of service too: single dyno/proc, a dev database costs nothing. There’s a few limits, but nothing you wouldn’t expect at a dev/test level, and scaling to a production level of service is _fantastically_ simple.

Choose a stack/framework that reinforces +good+ dev patterns (MVC, DRY), I’m a big fan of Rails (i.e., Ruby on Rails), but would also consider Python + <framework> (probably Django). If you go with something like PHP, drop a framework on top of it: Zend, CakePHP, Yii. All of these are open-source as well, so you won’t have to worry about licensing, just infrastructure costs.

If you want to use a traditional SQL database, vs. a KVP/no-SQL (like Redis, Mongo), then I’d suggest Postgres (any of those state/storage solutions are easily provisioned through a PaaS).

For storage of content, you’ll want to look into a cloud based storage solution, like AWS S3. Not only is that easily integrated into a project, it scales well, and has high availability options for CDN right in the AWS solution stack.

Look into the open source community of the tech you pursue for pre-existing solutions for authentication, S3, image handling, social integration, or any of the major modules you’ll need. No need to reinvent the wheel.

FWIW, one my startups is a social product (including a native iOS app), that has many of the same moving parts. Let me know if you have any specific questions
 
You probably don’t want to pursue either of those technologies for the kind of app/business you’re looking at starting. There are powerful open source tools that have zero licensing costs associated with them. There’s also what I’d call a “cultural” consideration for startups, mobile, etc., that I believe is more driven by non-enterprise tool community. Just my $0.02, I’ve been in the tech/dev sector for a long time, I current do work both in the startup/mobile space (see below), as well as the Federal sector (where I use .NET/MS-SQL/Oracle).

I’m going to cheat a little and reuse a previous post of mine - I’m pretty familiar with Kayak (and related services), and while this was in response to a “social media application”, the recommendations are very close.

thanks D.T for this input. I have to admit I am not familiar with all the details you mentioned but the concept and approach you laid out is very clear to me. I do work in IT but in the enterprise application space (think Oracle eBS) so very different from mobile/statup arena.

I'd be interested in trying some of your apps just to get a feel. Could you tell me what apps you've deployed (by PM if you prefer)

Also I'll put you on the spot ;). If I had to ask you a high level ballpark figure for building this out what number would you throw out there (in $ or in man days)?
 
250K without backend services seems outdated. D.T. alluded to earlier that costs have come down quite a bit with open source options. Ray Wenderlich also posted end of 2012 http://www.raywenderlich.com/20482/how-to-choose-the-best-backend-provider-for-your-ios-app-parse-vs-stackmob-vs-appcelerator-cloud-and-more which gives some options on piloting backend providers. Free options obviously have limitations and get expensive as they grow but they do give a chance to "play around"

My ballpark figure for end to end having a playground app with backend integration would be anywhere between 100-200K.... but I've never done this before :)
 
Some more recent articles on the cost of developing an app:

scroll down to an survey of actual costs on this one:
http://www.formotus.com/14018/blog-...sts-of-custom-mobile-business-app-development

another one:

http://fueled.com/blog/how-much-does-it-cost-to-develop-an-app/

So, sure you might be able get a cheap low-feature template-generated iOS game done by an offshore consultant for $3k. But I also know companies that have spent well over $500k in developer/designer salaries for a team that developed just one major app.
 
But note the wide variation. Many apps turn out not be be of "average" complexity or difficulty. Thus a bonus... or a very busted budget.

Of course, but as a hobby 100K seems good enough :D

FWIW as mentioned earlier I do eRP enterprise project and I've seen these from 300K USD for a simple Oracle Financials fastforward to 50M USD for the full supply chain, manufacturing and financials... it's all about scope and requirements no doubt
 
...what are the key skills a developer should have?

For a consultant/contractor, an app already in the App store, which they developed, that does a lot of what you need done, and to the quality level you expect. (In addition to Objective C and Xcode experience.) Look at their app portfolio, and beware any iOS dev who does not have one. Actually download/buy one of their apps, and see if it's good enough for you to put your name on it.
 
Hey!

Sorry, I kind of checked out - had several projects I was juggling, catching up on some shows, yoga, beach, etc. :D

Anyway ...

An iOS app (per that link) can easily get into the $200K+ if you’re dealing with a premium shop, custom design, a well architected backend, etc. Now you might be able to manage a much smaller “real dollars” figure by bringing in friends, etc., os more “soft dollars” with stock, but that’s a pretty typical figure in terms of cost-equivalency.

There’s an old adage, “You can have it good, fast or cheap ... pick two”, and that’s very applicable to development work. You want to get into the marketspace quickly? Be prepared to pay. Want a beautiful custom UI and a robust, scalable backend? It’s costly.

That doesn’t really factor in licensing costs, but as I suggested earlier, you probably want to pursue tech that doesn’t cost anyway, so then most of the escalating costs are more services related (how many dynos are you running on Heroku, how much is data is your S3 bucket transacting and storing)

I can answer any specific questions, but our app for example, is a custom iOS app, that communicates to a web service/API, uses Amazon S3 for asset storage (along with CloudFront for a CDN), Postgres for a database, and also has a web UI, a customer web portal, and a mobile web UI (for Android, non-IOS clients, ultimately, we’ll probably have a native Android app).

So there are several, let’s call them, general technologies and skillets needed:

iOS development
Web services
Database design
Web design
Understanding of various cloud services
Monitoring (both general availability and performance/throughput)
Social network integration
Analytics/reporting (GA, custom)
General infrastructure support like backup, scaling, etc.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.