iPhone Coding For Web Developers

  • 33,715 views
Uploaded on

A perspective on iPhone development from a server-side developer with very little GUI background. …

A perspective on iPhone development from a server-side developer with very little GUI background.

Given at http://www.lfpug.com in London on 26 March 2009.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • Video of the talk now available: http://www.lfpug.com/iphone-development-for-web-developers/
    Are you sure you want to
    Your message goes here
  • oww..this is a nice presentation about iPhone, web coding into mobile apps i will embed to my blog http://www.indoiphone.com
    Are you sure you want to
    Your message goes here
  • great ! presentation.
    Regards

    http://www.stratbeans.com
    http://www.slideshare.net/sameernigam
    Are you sure you want to
    Your message goes here
  • Nice Presentation
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
33,715
On Slideshare
0
From Embeds
0
Number of Embeds
15

Actions

Shares
Downloads
537
Comments
4
Likes
50

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. iPhone coding for web developers Matt Biddulph www.hackdiary.com
  • 2. From websites to mobile apps
  • 3. www.twitter.com
  • 4. m.twitter.com
  • 5. Twitterifc, Tweetie and Twitterfon
  • 6. www.facebook.com
  • 7. m.facebook.com
  • 8. native iPhone app
  • 9. Joe Hewitt on the native Facebook app
  • 10. “People must have assumed that all I had to do was plug Facebook's data into Apple's ready-to-use UI components and hit the GO button. Joe Hewitt on the native Facebook app
  • 11. “I wish it had been that easy, but unfortunately many of the components I needed were missing from the iPhone SDK, even though they existed in Apple's own apps.” Joe Hewitt on the native Facebook app
  • 12. Phonegap
  • 13. Building native internet apps
  • 14. Internet app basics
  • 15. Internet app basics HTTP JSON or XML Regular Expressions Local storage
  • 16. HTTP NSURLRequest is fiddly. I use GTMHTTPFetcher from Google Toolbox for Mac. http://code.google.com/p/google-toolbox-for-mac/ or TTURLRequest from Joe Hewitt http://joehewitt.com/post/the-three20-project/
  • 17. XML Mac OS X has NSXMLDocument for DOM parsing. The iPhone only has NSXML for SAX parsing. This is hard.
  • 18. XML iPhone ships with libxml2. It is good, fast and has a nasty C API. Convenience wrapper functions make it much easier: NSArray *PerformXMLXPathQuery(NSData *document, NSString *query); http://cocoawithlove.com/2008/10/using-libxml2-for-parsing-and-xpath.html
  • 19. JSON Objective C coders make liberal use of mix-ins. Ruby coders fondly call this ‘monkeypatching’. #import quot;NSString+SBJSON.hquot; [@quot;{quot;1quot;:2}quot; JSONValue]; (returns an NSDictionary)
  • 20. Regular Expressions Some people, when confronted with a problem, think “I know, I'll use regular expressions.” Now they have two problems. —usually attributed to jwz in comp.lang.emacs
  • 21. Regular Expressions Again, the iPhone’s string handling has no regular expression builtins. But it ships with the ICU library that does.
  • 22. Regular Expressions RegexKitLite extends NSString with methods that bridge to ICU. This gives you UTF-safe functions with small memory overhead and caching. http://regexkit.sourceforge.net/RegexKitLite/
  • 23. Regular Expressions As usual with Objective C, the method names are rather verbose. split: componentsSeparatedByRegex gsub: stringByReplacingOccurrencesOfRegex backrefs: matchEnumeratorWithRegex
  • 24. Local Storage SQLite is the iPhone’s default database management library. This is a good thing.
  • 25. Local Storage Yet again, it’s a C library that isn’t integrated with Cocoa.
  • 26. Local Storage FMDB is an Objective C wrapper modeled on Java’s JDBC. It’s sensible. FMDatabase* db = [FMDatabase databaseWithPath:@quot;...quot;]; [db open]; [db executeUpdate:@”SELECT ...”]; http://code.google.com/p/flycode/source/browse/trunk/fmdb
  • 27. A few words about event-driven code
  • 28. The user is in control
  • 29. UI responsiveness and rendering is a priority
  • 30. Fallacies of networked computing
  • 31. Fallacies of networked computing The network is reliable. Latency is zero. Bandwidth is infinite.
  • 32. The world is asynchronous But threads are hard
  • 33. Understand delegation
  • 34. thank you Matt Biddulph www.hackdiary.com Flickr photo heroes: http://www.flickr.com/photos/scobleizer/1215753803/ http://www.flickr.com/photos/envision/3085397880/ http://www.flickr.com/photos/frinky/3236718934/ http://www.flickr.com/photos/nickbilton/2861938380/ http://www.flickr.com/photos/donsolo/2855854548/ http://www.flickr.com/photos/en321/209425860/ http://www.flickr.com/photos/mastrobiggo/2424561037/