SlideShare a Scribd company logo
iPhone Application Development 1
           Janet Huang
            2011/11/23
ALL Schedule

       11/23 - iPhone SDK
               - Objective-C Basic
               - Your First iPhone Application

       11/30 - MVC design & UI
               - GPS/MAP Application
                 (CoreLocation & MapKit)
               - Google Map API
               - LBS Application

       12/07 - Network service
               - Facebook API
               - LBS + Facebook Application
How to study?

   - Stanford CS193p
      - videos in iTunes U
     - all resources on website


   - Apple official document


   - Good book
     - iOS Programming The Big Nerd Ranch Guide
Today’s Topics

• iPhone SDK
• Objective-C
• Common Foundation Class
• Your First iPhone Application
iPhone SDK

• Xcode Tools
 • Xcode
 • Instruments
• iOS Simulator
• iOS Developer Library
iPhone OS overview
Iphone course 1
Iphone course 1
Iphone course 1
Iphone course 1
Platform Components
OOP Vocabulary
• Class: define the grouping of data and
  code, the “type” of an object
• Instance: a specific allocation of a class
• Method: a “function” that an object knows
  how to perform
• Instance variable: a specific piece of data
  belonging to an object
OOP Vocabulary
• Encapsulation
 •   keep implementation private and separate from
     interface

• Polymorphism
 •   different object, same interface

• Inheritance
 •   hierarchical organization, share code, customize
     or extend behaviors
Inheritance




- Hierarchical relation between classes
- Subclass “inherit” behavior and data from superclass
- Subclasses can use, augment or replace superclass methods
Objective-C

• Classes & Objects
• Messaging
• Properties
• Protocols
Classes and Instances
• In obj-c, classes and instances are both
  objects
• class is the blueprint to create instances
Classes and Objects
• Classes declare state and behavior
• State (data) is maintained using instance
  variables
• Behavior is implemented using methods
• instance variables typically hidden
  •   accessible only using getter/setter methods
Define a Class
public header                         private implementation
#import <Foundation/Foundation.h>     #import "Person.h"
@interface Person : NSObject {         @implementation Person
    // instance variables              - (int)age {
    NSString *name;                       return age;
    int age;                           }
}                                      - (void)setAge:(int)value {
 // method declarations               age = value; }
 - (NSString *)name;                   //... and other methods
 - (void)setName:(NSString *)value;    @end
 - (int)age;
 - (void)setAge:(int)age;
 - (BOOL)canLegallyVote;
 - (void)castBallot;
@end
                    in .h file                       in .m file
A class declaration
Object Creation
• Two steps
  •   allocate memory to store the object

  •   initialize object state

 +alloc
   class method that knows how much memory is needed

 -init
   instance method to set initial values, perform other setup
Implementing your own -init method
   Person *person = nil;
   person = [[Person alloc] init]


   #import “Person.h”

   @implementation Person

   - (id)init {
       if(self = [super init]){
           age = 0;
           name = @”Janet”;
           // do other initialization
       }
   }
                             Create = Allocate + Initialize
Messaging


• Class method and instance method
• Messaging syntax
Terminology
• Message expression
       [receiver method: argument]

• Message
       [receiver method: argument]

• Selector
       [receiver method: argument]

• Method
       The code selected by a message
Method declaration syntax
Class and Instance
          Methods
• instances respond to instance methods
      - (id) init;
      - (float) height;
      - (void) walk;
•   classes respond to class methods
     + (id) alloc;
     + (id) person;
     + (Person *) sharedPerson;
Messaging
 • message syntax
             [receiver message]

             [receiver message:argument]

             [receiver message:arg1 andArg:arg2]

 • message declaration
- (void)insertObject:(id)anObject atIndex:(NSUInteger)index;

 • call a method or messaging
        [myArray insertObject:anObject atIndex:0]
Instance Variables
• Scope      default @protected only the class and subclass can access
                      @private          only the class can access
                      @public           anyone can access

• Scope syntax
     @interface MyObject : NSObject {
       int foo;
     @private
       int eye;
     @protected                          Protected: foo & bar
       int bar;
                                         Private: eye & jet
     @public
       int forum;                        Public: forum & apology
       int apology;
     @private
       int jet;
     }
•   Forget everything on the previous slide!
    Mark all of your instance variables @private.
    Use @property and “dot notation” to access instance variables.
Accessor methods
•   Create getter/setter methods to access instance
    variable’s value
    @interface MyObject : NSObject {
    @private
    int eye;
    }                          * Note the capitalization
    - (int)eye;                  - instance variables always start with lower case
    - (void)setEye:(int)anInt;   - the letter after “set” MUST be capitalized
    @end

•   Now anyone can access your instance variable using
    “dot syntax”
    someObject.eye = newEyeValue; // set the instance variable
    int eyeValue = someObject.eye; // get the instance variable’s current value
Properties
@property
Let compiler to help you generate setter/getter method
declarations

@interface MyObject : NSObject {   @interface MyObject : NSObject {
@private                           @private
int eye;                           int eye;
}                                  }
@property int eye;                 @property int eye;
- (int)eye;
- (void)setEye:(int)anInt;         @end
@end
Properties
• An @property doesn’t have to match an
    instance variable

@interface MyObject : NSObject {       @interface MyObject : NSObject {
@private                               }
int p_eye;                             @property int eye;
}                                      @end
@property int eye;
@end

                                   *They are all perfectly legal!
Properties
 • Don’t forget to implement it after you
     declare

in .h file                          in .m file
                                   @implementation MyObject
@interface MyObject : NSObject {
                                   - (int)eye {
@private
                                       return eye;
int eye;
                                   }
}
                                   - (void)setEye:(int)anInt {
@property int eye;
                                   eye = anInt;
@end
                                   }
                                   @end
Properties
    @synthesize
     Let compiler to help you with implementation


in .h file                          in .m file
@interface MyObject : NSObject {   @implementation MyObject
@private                           @synthesize eye;
int eye;                           - (int)eye {
}                                      return eye;
@property int eye;                 }
@end                               - (void)setEye:(int)anInt {
                                   eye = anInt;
                                   }
                                   @end
Properties
• Be careful!!
  What’s wrong?
       - (void)setEye:(int)anInt
       {
          self.eye = anInt;
       }                                   Infinite loop!!! :(

  Can happen with the getter too ...

      - (int)eye { if (self.eye > 0) { return eye; } else { return -1; } }
Protocols
@interface MyClass : NSObject <UIApplicationDelegate,
AnotherProtocol> {
}
@end



@protocol MyProtocol
- (void)myProtocolMethod;
@end
Dynamic and static
        typing
• Dynamically-typed object
        id anObject          not id *

• Statically-typed object
        Person * anObject
The null pointer: nil
• explicitly                   if (person == nil) return;

• implicitly                   if (!person) return;

• assignment                   person = nil;

• argument                     [button setTarget: nil];

• send a message to nil
        person = nil;
        [person castBallot];
BOOL typedef
• Obj-C uses a typedef to define BOOL as a
  type
• use YES or NO
           BOOL flag = NO;
           if (flag == YES)
           if (flag)
           if (!flag)
           if (flag != YES)
           flag = YES;
           flag = 1;
Foundation Framework
• NSObject
• Strings
 •   NSString

 •   NSMutableString

• Collections
 •   Array

 •   Dictionary

 •   Set
NSObject
   • Root class
   • Implements many basics
      •   memory management

      •   introspection

      •   object equality

- (NSString *)description is a useful method to override (it’s %@ in NSLog()).
String Constants
• C constant strings
           “c simple strings”

• Obj-C constant strings
          @“obj-c simple strings”

• Constant strings are NSString instances
      NSString *aString = @“Hello World!”;
Format Strings
• use %@ to add objects (similar to printf)
NSString *aString = @”World!”;
NSString *result = [NSString stringWithFormat: @”Hello %@”,
aString];


result: Hello World!


• used for logging
NSLog(@”I am a %@, I have %d items.”, [array className], [array count]);

Log output: I am NSArray, I have 5 items.
NSString
• Create an Obj-C string from a C string
   NSString *fromCString = [NSString stringWithCString:"A C string"
   encoding:NSASCIIStringEncoding];

• Modify an existing string to be a new string
   - (NSString *)stringByAppendingString:(NSString *)string;
   - (NSString *)stringByAppendingFormat:(NSString *)string;
   - (NSString *)stringByDeletingPathComponent;


 for example:
   NSString *myString = @”Hello”;
   NSString *fullString;
   fullString = [myString stringByAppendingString:@” world!”];
NSMutableString
•    Mutable version of NSString
•    Allows a string to be modified
•    Common methods
          + (id)string;
          - (void)appendString:(NSString *)string;
          - (void)appendFormat:(NSString *)format, ...;

for example:
    NSMutableString *newString = [NSMutableString string];
    [newString appendString:@”Hi”];
    [newString appendFormat:@”, my favorite number is: %d”,
    [self favoriteNumber]];
MVC
                          should
                                   did
                       will                 target

                       controller
                                          outlet
                      count
Notification




                                          de
                         data




                                   da
 & KVO




                                             le
                                     ta

                                             ga
                                                        action




                                               te
                                         so
                                           urc
                                           es
              model                                  view
General process for building
iPhone application
         1.	
  Create	
  a	
  simple	
  MVC	
  iPhone	
  applica5on
         2.	
  Build	
  interfaces	
  using	
  Interface	
  builder
         3.	
  Declara5ons
             a.	
  Declaring	
  instance	
  variables
             b.	
  Declaring	
  methods
         4.	
  Make	
  connec5ons
             a.	
  SeDng	
  a	
  pointer
             b.	
  SeDng	
  targets	
  and	
  ac5ons
         5.	
  Implemen5ng	
  methods
             a.	
  Ini5al	
  method
             b.	
  Ac5on	
  methods
         6.	
  Build	
  and	
  run	
  on	
  the	
  simulator
         7.	
  Test	
  applica5on	
  on	
  the	
  device

More Related Content

KEY
Objective-C Crash Course for Web Developers
PPTX
Advanced JavaScript
KEY
Parte II Objective C
PDF
Core concepts-javascript
PPTX
Awesomeness of JavaScript…almost
PPT
Beginning Object-Oriented JavaScript
PPT
Object Oriented JavaScript
PDF
Object Oriented Programming in JavaScript
Objective-C Crash Course for Web Developers
Advanced JavaScript
Parte II Objective C
Core concepts-javascript
Awesomeness of JavaScript…almost
Beginning Object-Oriented JavaScript
Object Oriented JavaScript
Object Oriented Programming in JavaScript

What's hot (20)

PDF
The Xtext Grammar Language
PPT
Advanced JavaScript
PDF
Building DSLs with Xtext - Eclipse Modeling Day 2009
PDF
Prototype
PDF
Xtext Webinar
PDF
Uncommon Design Patterns
PPT
Advanced JavaScript
PDF
Object Oriented JavaScript
PDF
PyFoursquare: Python Library for Foursquare
PDF
Objective-C A Beginner's Dive (with notes)
PDF
Serializing EMF models with Xtext
PPTX
Javascript Prototype Visualized
KEY
iPhone Development Intro
PDF
iPhone Seminar Part 2
PDF
JavaScript Patterns
PDF
Java Script Best Practices
PDF
Exploring Ceylon with Gavin King - JUG BB Talk - Belrin 2014
ODP
What I Love About Ruby
PDF
Powerful JavaScript Tips and Best Practices
KEY
JavaScript Growing Up
The Xtext Grammar Language
Advanced JavaScript
Building DSLs with Xtext - Eclipse Modeling Day 2009
Prototype
Xtext Webinar
Uncommon Design Patterns
Advanced JavaScript
Object Oriented JavaScript
PyFoursquare: Python Library for Foursquare
Objective-C A Beginner's Dive (with notes)
Serializing EMF models with Xtext
Javascript Prototype Visualized
iPhone Development Intro
iPhone Seminar Part 2
JavaScript Patterns
Java Script Best Practices
Exploring Ceylon with Gavin King - JUG BB Talk - Belrin 2014
What I Love About Ruby
Powerful JavaScript Tips and Best Practices
JavaScript Growing Up
Ad

Viewers also liked (9)

PPT
SAJ @ the Movies - Princess Diaries 2 - Paul Gardner
PDF
Planning and enjoying a vacation in alaska
PDF
Iphone course 3
PDF
Of class1
PPT
Message2
PPT
Luke 1:26-35 -Bryan Thomson
PDF
Of class3
PPT
God is Closer Than You Think - Part 2 - Raewyn Gardner
PDF
The power of example
SAJ @ the Movies - Princess Diaries 2 - Paul Gardner
Planning and enjoying a vacation in alaska
Iphone course 3
Of class1
Message2
Luke 1:26-35 -Bryan Thomson
Of class3
God is Closer Than You Think - Part 2 - Raewyn Gardner
The power of example
Ad

Similar to Iphone course 1 (20)

PDF
201005 accelerometer and core Location
PPTX
iOS Basic
PPT
iOS Application Development
PPTX
iOS Session-2
PDF
Никита Корчагин - Programming Apple iOS with Objective-C
PDF
iOS Programming Intro
PDF
Louis Loizides iOS Programming Introduction
ODP
A quick and dirty intro to objective c
PPTX
Presentation 1st
PPT
Objective-C for iOS Application Development
PPT
Objective c
KEY
Fwt ios 5
PPTX
Presentation 3rd
PDF
Objective-C Is Not Java
PDF
Intro to Objective C
PDF
Objective-C for Java Developers, Lesson 1
PPTX
iOS development introduction
PDF
Objective-C talk
PPT
Cocoa for Web Developers
PPTX
Introduction to Objective - C
201005 accelerometer and core Location
iOS Basic
iOS Application Development
iOS Session-2
Никита Корчагин - Programming Apple iOS with Objective-C
iOS Programming Intro
Louis Loizides iOS Programming Introduction
A quick and dirty intro to objective c
Presentation 1st
Objective-C for iOS Application Development
Objective c
Fwt ios 5
Presentation 3rd
Objective-C Is Not Java
Intro to Objective C
Objective-C for Java Developers, Lesson 1
iOS development introduction
Objective-C talk
Cocoa for Web Developers
Introduction to Objective - C

More from Janet Huang (9)

PDF
Transferring Sensing to a Mixed Virtual and Physical Experience
PDF
Collecting a Image Label from Crowds Using Amazon Mechanical Turk
PDF
Art in the Crowd
PDF
How to Program SmartThings
PDF
Designing physical and digital experience in social web
PDF
Of class2
PDF
Iphone course 2
PDF
Responsive web design
PDF
Openframworks x Mobile
Transferring Sensing to a Mixed Virtual and Physical Experience
Collecting a Image Label from Crowds Using Amazon Mechanical Turk
Art in the Crowd
How to Program SmartThings
Designing physical and digital experience in social web
Of class2
Iphone course 2
Responsive web design
Openframworks x Mobile

Recently uploaded (20)

PDF
Hybrid model detection and classification of lung cancer
PDF
A comparative study of natural language inference in Swahili using monolingua...
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PPTX
1. Introduction to Computer Programming.pptx
PPTX
A Presentation on Touch Screen Technology
PDF
DP Operators-handbook-extract for the Mautical Institute
PPTX
Tartificialntelligence_presentation.pptx
PPTX
TLE Review Electricity (Electricity).pptx
PDF
A novel scalable deep ensemble learning framework for big data classification...
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
Encapsulation theory and applications.pdf
PDF
Hindi spoken digit analysis for native and non-native speakers
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
Hybrid model detection and classification of lung cancer
A comparative study of natural language inference in Swahili using monolingua...
Assigned Numbers - 2025 - Bluetooth® Document
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
MIND Revenue Release Quarter 2 2025 Press Release
Digital-Transformation-Roadmap-for-Companies.pptx
NewMind AI Weekly Chronicles - August'25-Week II
1. Introduction to Computer Programming.pptx
A Presentation on Touch Screen Technology
DP Operators-handbook-extract for the Mautical Institute
Tartificialntelligence_presentation.pptx
TLE Review Electricity (Electricity).pptx
A novel scalable deep ensemble learning framework for big data classification...
Encapsulation_ Review paper, used for researhc scholars
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
Encapsulation theory and applications.pdf
Hindi spoken digit analysis for native and non-native speakers
Group 1 Presentation -Planning and Decision Making .pptx

Iphone course 1

  • 1. iPhone Application Development 1 Janet Huang 2011/11/23
  • 2. ALL Schedule 11/23 - iPhone SDK - Objective-C Basic - Your First iPhone Application 11/30 - MVC design & UI - GPS/MAP Application (CoreLocation & MapKit) - Google Map API - LBS Application 12/07 - Network service - Facebook API - LBS + Facebook Application
  • 3. How to study? - Stanford CS193p - videos in iTunes U - all resources on website - Apple official document - Good book - iOS Programming The Big Nerd Ranch Guide
  • 4. Today’s Topics • iPhone SDK • Objective-C • Common Foundation Class • Your First iPhone Application
  • 5. iPhone SDK • Xcode Tools • Xcode • Instruments • iOS Simulator • iOS Developer Library
  • 12. OOP Vocabulary • Class: define the grouping of data and code, the “type” of an object • Instance: a specific allocation of a class • Method: a “function” that an object knows how to perform • Instance variable: a specific piece of data belonging to an object
  • 13. OOP Vocabulary • Encapsulation • keep implementation private and separate from interface • Polymorphism • different object, same interface • Inheritance • hierarchical organization, share code, customize or extend behaviors
  • 14. Inheritance - Hierarchical relation between classes - Subclass “inherit” behavior and data from superclass - Subclasses can use, augment or replace superclass methods
  • 15. Objective-C • Classes & Objects • Messaging • Properties • Protocols
  • 16. Classes and Instances • In obj-c, classes and instances are both objects • class is the blueprint to create instances
  • 17. Classes and Objects • Classes declare state and behavior • State (data) is maintained using instance variables • Behavior is implemented using methods • instance variables typically hidden • accessible only using getter/setter methods
  • 18. Define a Class public header private implementation #import <Foundation/Foundation.h> #import "Person.h" @interface Person : NSObject { @implementation Person // instance variables - (int)age { NSString *name; return age; int age; } } - (void)setAge:(int)value { // method declarations age = value; } - (NSString *)name; //... and other methods - (void)setName:(NSString *)value; @end - (int)age; - (void)setAge:(int)age; - (BOOL)canLegallyVote; - (void)castBallot; @end in .h file in .m file
  • 20. Object Creation • Two steps • allocate memory to store the object • initialize object state +alloc class method that knows how much memory is needed -init instance method to set initial values, perform other setup
  • 21. Implementing your own -init method Person *person = nil; person = [[Person alloc] init] #import “Person.h” @implementation Person - (id)init { if(self = [super init]){ age = 0; name = @”Janet”; // do other initialization } } Create = Allocate + Initialize
  • 22. Messaging • Class method and instance method • Messaging syntax
  • 23. Terminology • Message expression [receiver method: argument] • Message [receiver method: argument] • Selector [receiver method: argument] • Method The code selected by a message
  • 25. Class and Instance Methods • instances respond to instance methods - (id) init; - (float) height; - (void) walk; • classes respond to class methods + (id) alloc; + (id) person; + (Person *) sharedPerson;
  • 26. Messaging • message syntax [receiver message] [receiver message:argument] [receiver message:arg1 andArg:arg2] • message declaration - (void)insertObject:(id)anObject atIndex:(NSUInteger)index; • call a method or messaging [myArray insertObject:anObject atIndex:0]
  • 27. Instance Variables • Scope default @protected only the class and subclass can access @private only the class can access @public anyone can access • Scope syntax @interface MyObject : NSObject { int foo; @private int eye; @protected Protected: foo & bar int bar; Private: eye & jet @public int forum; Public: forum & apology int apology; @private int jet; }
  • 28. Forget everything on the previous slide! Mark all of your instance variables @private. Use @property and “dot notation” to access instance variables.
  • 29. Accessor methods • Create getter/setter methods to access instance variable’s value @interface MyObject : NSObject { @private int eye; } * Note the capitalization - (int)eye; - instance variables always start with lower case - (void)setEye:(int)anInt; - the letter after “set” MUST be capitalized @end • Now anyone can access your instance variable using “dot syntax” someObject.eye = newEyeValue; // set the instance variable int eyeValue = someObject.eye; // get the instance variable’s current value
  • 30. Properties @property Let compiler to help you generate setter/getter method declarations @interface MyObject : NSObject { @interface MyObject : NSObject { @private @private int eye; int eye; } } @property int eye; @property int eye; - (int)eye; - (void)setEye:(int)anInt; @end @end
  • 31. Properties • An @property doesn’t have to match an instance variable @interface MyObject : NSObject { @interface MyObject : NSObject { @private } int p_eye; @property int eye; } @end @property int eye; @end *They are all perfectly legal!
  • 32. Properties • Don’t forget to implement it after you declare in .h file in .m file @implementation MyObject @interface MyObject : NSObject { - (int)eye { @private return eye; int eye; } } - (void)setEye:(int)anInt { @property int eye; eye = anInt; @end } @end
  • 33. Properties @synthesize Let compiler to help you with implementation in .h file in .m file @interface MyObject : NSObject { @implementation MyObject @private @synthesize eye; int eye; - (int)eye { } return eye; @property int eye; } @end - (void)setEye:(int)anInt { eye = anInt; } @end
  • 34. Properties • Be careful!! What’s wrong? - (void)setEye:(int)anInt { self.eye = anInt; } Infinite loop!!! :( Can happen with the getter too ... - (int)eye { if (self.eye > 0) { return eye; } else { return -1; } }
  • 35. Protocols @interface MyClass : NSObject <UIApplicationDelegate, AnotherProtocol> { } @end @protocol MyProtocol - (void)myProtocolMethod; @end
  • 36. Dynamic and static typing • Dynamically-typed object id anObject not id * • Statically-typed object Person * anObject
  • 37. The null pointer: nil • explicitly if (person == nil) return; • implicitly if (!person) return; • assignment person = nil; • argument [button setTarget: nil]; • send a message to nil person = nil; [person castBallot];
  • 38. BOOL typedef • Obj-C uses a typedef to define BOOL as a type • use YES or NO BOOL flag = NO; if (flag == YES) if (flag) if (!flag) if (flag != YES) flag = YES; flag = 1;
  • 39. Foundation Framework • NSObject • Strings • NSString • NSMutableString • Collections • Array • Dictionary • Set
  • 40. NSObject • Root class • Implements many basics • memory management • introspection • object equality - (NSString *)description is a useful method to override (it’s %@ in NSLog()).
  • 41. String Constants • C constant strings “c simple strings” • Obj-C constant strings @“obj-c simple strings” • Constant strings are NSString instances NSString *aString = @“Hello World!”;
  • 42. Format Strings • use %@ to add objects (similar to printf) NSString *aString = @”World!”; NSString *result = [NSString stringWithFormat: @”Hello %@”, aString]; result: Hello World! • used for logging NSLog(@”I am a %@, I have %d items.”, [array className], [array count]); Log output: I am NSArray, I have 5 items.
  • 43. NSString • Create an Obj-C string from a C string NSString *fromCString = [NSString stringWithCString:"A C string" encoding:NSASCIIStringEncoding]; • Modify an existing string to be a new string - (NSString *)stringByAppendingString:(NSString *)string; - (NSString *)stringByAppendingFormat:(NSString *)string; - (NSString *)stringByDeletingPathComponent; for example: NSString *myString = @”Hello”; NSString *fullString; fullString = [myString stringByAppendingString:@” world!”];
  • 44. NSMutableString • Mutable version of NSString • Allows a string to be modified • Common methods + (id)string; - (void)appendString:(NSString *)string; - (void)appendFormat:(NSString *)format, ...; for example: NSMutableString *newString = [NSMutableString string]; [newString appendString:@”Hi”]; [newString appendFormat:@”, my favorite number is: %d”, [self favoriteNumber]];
  • 45. MVC should did will target controller outlet count Notification de data da & KVO le ta ga action te so urc es model view
  • 46. General process for building iPhone application 1.  Create  a  simple  MVC  iPhone  applica5on 2.  Build  interfaces  using  Interface  builder 3.  Declara5ons a.  Declaring  instance  variables b.  Declaring  methods 4.  Make  connec5ons a.  SeDng  a  pointer b.  SeDng  targets  and  ac5ons 5.  Implemen5ng  methods a.  Ini5al  method b.  Ac5on  methods 6.  Build  and  run  on  the  simulator 7.  Test  applica5on  on  the  device