iphone coding for web developers

Post on 07-Dec-2014

40.186 Views

Category:

Technology

4 Downloads

Preview:

Click to see full reader

DESCRIPTION

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.

TRANSCRIPT

iPhone codingfor web developers

Matt Biddulph www.hackdiary.com

From websitesto mobile apps

www.twitter.com

m.twitter.com

Twitterifc, Tweetie and Twitterfon

www.facebook.com

m.facebook.com

native iPhone app

Joe Hewitt on the native Facebook app

Joe Hewitt on the native Facebook app

“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

“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.”

Phonegap

Building native internet apps

Internet app basics

Internet app basics

HTTP

JSON or XML

Regular Expressions

Local storage

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 Hewitthttp://joehewitt.com/post/the-three20-project/

Mac OS X has NSXMLDocument

for DOM parsing.

The iPhone only has NSXML for

SAX parsing. This is hard.

XML

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

JSON

Objective C coders make liberal

use of mix-ins. Ruby coders fondly

call this ‘monkeypatching’.

#import "NSString+SBJSON.h"[@"{\"1\":2}" JSONValue]; (returns an NSDictionary)

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

Regular Expressions

Again, the iPhone’s string handling

has no regular expression builtins.

But it ships with the ICU library

that does.

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/

Regular Expressions

As usual with Objective C, the

method names are rather verbose.

split: componentsSeparatedByRegex

gsub: stringByReplacingOccurrencesOfRegex

backrefs: matchEnumeratorWithRegex

Local Storage

SQLite is the iPhone’s default

database management library.

This is a good thing.

Yet again, it’s a C library that isn’t

integrated with Cocoa.

Local Storage

FMDB is an Objective C wrapper

modeled on Java’s JDBC. It’s

sensible.

FMDatabase* db = [FMDatabase databaseWithPath:@"..."];

[db open];

[db executeUpdate:@”SELECT ...”];

http://code.google.com/p/flycode/source/browse/trunk/fmdb

Local Storage

A few words about event-driven code

The user is in control

UI responsiveness and rendering is a priority

Fallacies of networked computing

Fallacies of networked computing

The network is reliable.

Latency is zero.

Bandwidth is infinite.

The world is asynchronous

But threads are hard

Understand delegation

thank you

Matt Biddulphwww.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/

top related