Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

My Boss has sold a few 'iPhone apps' to clients, we are a web development shop. I have explained to him that I do not know the first thing about them, but it's such a powerful buzz-word and we need to meet clients expectations. I do have some experience in C, Java and Python which should help if I need to use objective-C. I have even done a few Android tutorials.

These apps will more or less be HTML, in my mind they are not real apps, but faux apps which have the same functionality as the clients' websites. To me a real app is something that uses the phones hardware inputs and outputs, gps, accelerometer, speaker etc.

What resources can I use to get up to speed iOS development and how to build apps in html. I have no idea where to begin.

share|improve this question
Your boss isn't a resource? – JeffO Jan 11 '11 at 2:44
He can't teach me anything about programming, only purchase the resources I need (Mac, Apple dev fees, books). Perhaps we could get a consultant iPhone dev to help out, but I think SO is good enough. – Keyo Jan 11 '11 at 2:58

I made the same switch this year. I've been a web developer since 1998, and last April got hired by a company that basically did the same thing--sold some iPhone projects and then figured out how to deliver them.

It was a solid month before I wrote ANYTHING that ended up in production code. That month was one of the most intense periods of learning I've ever had in my life. I went home each night with my brain leaking out of my ears. I was literally dreaming about iPhone development--I remember a dream one night in which a girl was wearing a one-piece bathing suit made out of a UITableView. It was scrollable and everything.

It's similar to web development in a couple aspects, and a couple aspects ONLY. Control flow within a method is similar. How methods get called is entirely different, but an if statement is still an if statement. It still has all the data types you're used to dealing with (arrays, associative arrays, strings, etc) but it calls them different things, and most of the time they're objects but some gotcha times they're not. It's MVC, but not the way you're used to thinking of. Doing web requests from it sort of feels like writing AJAX calls, though of course the syntax and control flow are pretty different (actually, the new blocks interface in ASIHTTP makes it closer to jQuery than it used to be!).

There are a couple projects mentioned in this thread (PhoneGap, Appcellerator) that basically wrap a UIWebView with your HTML/JS content and make a native app out of that. Compared to the native API, they're not much, but they do flatten the learning curve significantly, and for the apps you describe they might well be sufficient.

share|improve this answer
@ammoQ - It was kind of awesome. The kind of dream you wake up from and realize how much you're actually learning/engraining, you know? – Dan Ray Jan 11 '11 at 14:49
Did you just dive into the official documentation? BTW, some web frameworks do have event driven control flow, Django has signals which can be registered to for callback. I've done some UI programming and the only thing I really dislike is threads. – Keyo Jan 11 '11 at 23:07
I used the Mark and LaMarche books from Apress. Made my way through the samples. I'm not convinced they're the best, but they're what I used. My brother is making the same transition, though a bit less abruptly, and is very much enjoying the Head First book. – Dan Ray Jan 12 '11 at 13:04

Try PhoneGap.

It's a cross-platform framework that lets you build the core application in HTML/JavaScript while still letting you take advantage of phone-specific features, like notifications.

share|improve this answer
PhoneGap is a good idea. – Matthew Frederick Jan 11 '11 at 2:27
I would be interested to see a comparison between phonegap and appcelerator. I have looked at both but without experience cannot make a judgement myself. – Chris Jan 11 '11 at 3:17
After reading some very detailed answers on SO I can see that PhoneGap is going to fit better with the way we already work and has fewer bugs. We're only creating simple apps anyway, so HTML5 in a WebView is good enough. I like native apps, but Appcelorator just seems like the wrong way to do native applications, almost like using Dreamweaver for creating web pages.… – Keyo Jan 11 '11 at 3:24
@Keyo: Appcelerator is nothing like using Dreamweaver. ;) – Josh K Jan 11 '11 at 11:29
PhoneGap is awfully weak compared to the native API, but in this case it's probably the right tool for the job. – Dan Ray Jan 11 '11 at 13:16


Is what I would and have used. Things go much smoother if you have a decent amount of JavaScript experience.

share|improve this answer
+1 for mentioning Appcelerator. You can actually use Python, PHP or Ruby to develop your application and compile to native code. Appcelerator Titanium's API is in js for both mobile and desktop. – dukeofgaming Jan 11 '11 at 17:37

If you have that C and Java experience, pick up Head First iPhone Development (not associated with the book) and you'll be able to pick up the basics fairly easily. If all you're going to do is create an app that displays a UIWebView and loads a web page, you'll be able to figure it out in a matter of days.

If it has to do more than that the there's a fairly steep learning curve, but that book will teach you enough to actually know what you don't know. At that point you'll be able to look things up in the documentation and make sense of them, create decent Google queries that will return what you actually need, ask decent questions on Stack Overflow that will that will result in good answers that you can understand.

share|improve this answer
I think you mean, Head First iPhone Development – Keyo Jan 11 '11 at 2:20
Right you are, I fixed and linked to the publisher, thanks. – Matthew Frederick Jan 11 '11 at 2:26

Sencha Touch is a javascript library that allows for web apps specifically targetet to iDevices and Android; together with the other tools mentioned here you should be able to make a locally-running-native-looking web app without going into Objective-C.

share|improve this answer

Ideally you'd get it outsourced and you'd focus on your field instead of wasting time. Switching fields to do an app - that's good if you plan to do it eg. instead of webdevelopement, but if someone that wants a delphi app will come you do what? Learn delphi?

Your boss isn't really a programmer, correct?

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.