Hacker News new | past | comments | ask | show | jobs | submit login
Creating an iPhone Application - Tutorial 1 (experimentgarden.blogspot.com)
47 points by InkweaverReview on June 27, 2009 | hide | past | favorite | 14 comments



Has anyone given appcelerator a look? It seems you can develop native iphone apps using js/html/css using their mobile sdk. This would be great for simple apps I would think.

http://www.appcelerator.com/


I am in the beta program. It has a certain promise to the interface and the team is very responsive when it comes to bugs. However, there are frequent and sometimes significant bugs that have really made it impossible to do serious development. Everything is essentially in a webview with no low level socket connections and only limited native controls. All this being said, it's a lot better than phonegap and will likely win out in the long run.


Here is another potential one that is in beta. Ansca's development environment is based on the Lua game programming environment and compiles to native iPhone. Have not yet had time to check it out yet but it seems to be very promising.

http://www.anscamobile.com/corona/


For those who just want to make their site friendly to iPhone users, consider generating your HTML with http://www.aptana.com/iphone instead of a full featured iPhone SDK in Objective C approach.


As an iPhone user, I strongly prefer native applications. They can integrate with the built-in technologies (address book, location, P2P, MDNS, etc), and they don't simply stop working for 30 minutes while I ride the subway.


Good point. Web apps are going to be unavailable wherever wireless access is limited.

I didn't even think about that.


It's actually not that good a point. Using JQuery you can get a web app as low as 1k so slow connection isn't that big a problem. Web apps can integrate into most of the iPhone's features like contacts (notable exceptions being location and camera). The other stuff he mentions like p2p, mDNS, etc... are very specialized applications that to the best of my knowledge only work on unlocked iPhones (I could be wrong though I know bit torrent has been banned from the app store)

A web app is never going to work for edge case style applications but for the majority of web sites it's probably a good idea just to spend a day customizing their site for an iPhone (I've become fond of iWebkit: http://iwebkit.net/) rather than buying a mac, learning objective-c, etc...

Bottom Line: Look at your requirements and decide if a Webapp will do. Don't just jump to native.


It's actually not that good a point. Using JQuery you can get a web app as low as 1k so slow connection isn't that big a problem.

1k is still a pretty unpleasant wait when you're looking for 'instant', and unfortunately, if I exit Safari to use another app (which I often will), Safari will very likely need to reload that page.

Web apps can integrate into most of the iPhone's features like contacts (notable exceptions being location and camera).

Web applications can't integrate with the address book, actually.

The other stuff he mentions like p2p, mDNS, etc... are very specialized applications that to the best of my knowledge only work on unlocked iPhones (I could be wrong though I know bit torrent has been banned from the app store)

The P2P I was referring to is WiFi/Bluetooth zero-configuration phone-to-phone 'networking', for magically connecting applications on two or more phones. It's pretty neat.

A web app is never going to work for edge case style applications but for the majority of web sites it's probably a good idea just to spend a day customizing their site for an iPhone (I've become fond of iWebkit: http://iwebkit.net/) rather than buying a mac, learning objective-c, etc...

I really don't think they should be considered 'edge cases'. There are so many ways that the user experience is better via integration opportunities, speed, and native look and feel, that I don't think anyone should consider a mobile webapp to be a viable replacement.

Webapps are a reasonable substitute assuming nothing else is available and you can't afford to produce a proper application, but I'm not convinced that you'll spend more time and money producing a native app than you'd spend producing an equivalently high-quality webapp alternative.


"Webapps are a reasonable substitute assuming nothing else is available and you can't afford to produce a proper application, but I'm not convinced that you'll spend more time and money producing a native app than you'd spend producing an equivalently high-quality webapp alternative."

I'm sorry but are you kidding here? You think a web developer who already has experience in all the tools used to create a web app is going to spend the equivalent amount of time learning a completely new languange, platform, developer tools et al AND THEN using them to program an app. I'm sorry but that's really a ridiculous thing to say.

(and I don't mean to be rude but really, who voted this comment up? If you don't know how software development works you shouldn't comment or vote on posts that involve it)

As for the rest of your argument,AT&T's Edge connection downloads at around 25KB. So a 1K page (which you claim causes an "unpleasant wait") would download in 1/25th of a second even on a slow connection.

As for the rest, my point still stands. Everything you spoke of requires a cracked iPhone which the great majority of people don't have anyway.

For the record, you're wrong below but I can't reply to you and I don't know why. But the short of it is anyone who is ACTUALLY a developer knows there's a lot more than picking up a language to development (though again there will be time to pick up the language and that will be time a web app developer wouldn't need to spend). You have all your tools including your editor, unit testing tool, etc... So again you're wrong. And yes there might be overhead to a web app but at 1k it's still going to come down in about a second or two. And Latency, this is the first link I found off google: http://www.engadget.com/2007/06/28/atandt-customers-seeing-s... I don't think .91 seconds is going to kill anyone


I'm sorry but are you kidding here? You think a web developer who already has experience in all the tools used to create a web app is going to spend the equivalent amount of time learning a completely new languange, platform, developer tools et al AND THEN using them to program an app. I'm sorry but that's really a ridiculous thing to say.

As a software developer, Objective-C is just another imperative C-derived language (a pure superset of C, actually), with Smalltalk-decedent OO features. It's not (or shouldn't be) an alien experience.

My comment assumed a baseline software developer proficiency. If simple high-level webapp development is all you've ever done, then of course -- writing an Objective-C application will be more difficult. Perhaps that's a good reason to write one.

As for the rest of your argument,AT&T's Edge connection downloads at around 25KB. So a 1K page (which you claim causes an "unpleasant wait") would download in 1/25th of a second even on a slow connection.

In addition to failing to account for additional resources (the page won't be 1K in total), you forgot to account for latency (there's quite a bit).

As for the rest, my point still stands. Everything you spoke of requires a cracked iPhone which the great majority of people don't have anyway.

Nothing I've mentioned requires a jailbroken phone for any purpose.


I couldn't agree with you more. So many well-known sites are publishing terrible native apps for the iPhone which could have been much more effectively implemented by some CSS/js tweaks.

For instance, the PayPal app is utterly terrible, and gives only a fraction of the functionality you get from PayPal's full site. A few weeks, at most, could turn the PayPal site into an incredible custom iPhone web app.

And to add insult to injury, they don't even take advantage of the benefits that a native app gives you on the iPhone. For instance, they don't use the keychain to securely store login credentials so you don't have to re-login each time you launch the application (if the user requests it).


The two reasons why you would want to use the Objective C iPhone SDK are:

access to advanced multi-touch gestures, the ability to store data on the iPhone.

If your app is simple, though, a web application running in Safari might be a feasible solution.


High-performance applications? 3D? Accelerometer usage? Access to data on the iPhone (contact list and such)?


Also, push notifications, in app purchases, simply being able to generate a second revenue stream...




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

Search: