Your SlideShare is downloading. ×
iPhone Coding For Web Developers
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

iPhone Coding For Web Developers

36,351
views

Published 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.

Published in: Technology, News & Politics

4 Comments
51 Likes
Statistics
Notes
No Downloads
Views
Total Views
36,351
On Slideshare
0
From Embeds
0
Number of Embeds
15
Actions
Shares
0
Downloads
538
Comments
4
Likes
51
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/