SlideShare ist ein Scribd-Unternehmen logo
1 von 111
iPhoneNewcastle
  BCS development a brief introduction                                       pete goodliffe




                           Hello,
                           world!
                                             iPhone
                                               iOS
                                             Development
                                             a brief introduction
                                                     rkably , very
                                                 rema
                                         really,


                                                                     Pete Goodliffe
                                                                     pete@goodliffe.net
iPhone development a brief introduction                                 pete goodliffe




                                     Pete Goodliffe
                                       A programmer, a columnist,
                                       an author, a teacher. Someone
                                       who cares about code.
                                                              www.goodliffe.net
                                                           goodliffe.blogspot.com
                                                                   @petegoodliffe
iPhone development a brief introduction                                 pete goodliffe




                                     Pete Goodliffe
                                       A programmer, a columnist,
                                       an author, a teacher. Someone
                                       who cares about code.
                                                              www.goodliffe.net
                                                           goodliffe.blogspot.com
                                                                   @petegoodliffe
iPhone development a brief introduction   pete goodliffe
iPhone development a brief introduction                                                           pete goodliffe




    talk synopsis
                  An introduction to iPhone/iOS development
                  An introduction to iPhone development for beginners or those who are casually
                  interested and want a leg up the learning curve.

                  This talk is an overview of how to get started as an iPhone developer, and an
                  introduction to the core technologies, including:

                   ‣   Common iPhone/Mac OS design patterns, idioms, and practices
                   ‣   Becoming a native: how to "think in iPhone"
                   ‣   Overview of the libraries and facilities that exist
                   ‣   Limitations of the development environment
iPhone development a brief introduction                pete goodliffe




                         90 minutes? is that all?!!!
iPhone development a brief introduction                                                       pete goodliffe




in 90 minutes...                                   Demo           Intro
      ‣ Intro
      ‣ The tools                           Tips
      ‣ The language                                                          Tools

      ‣ The UI
      ‣ Key technologies
      ‣ Deploying                         Further info

      ‣ Further info                                                               Language

      ‣ Tips and tricks                            Deploying
      ‣ The demo                                                              UI
                                                               Technologies




                    m… pie
                 Mm
iPhone development a brief introduction                                                       pete goodliffe




in 90 minutes...                                   Demo
                                                                  Intro



      ‣ Intro


          Introduction
      ‣ The tools                           Tips
      ‣ The language                                                          Tools

      ‣ The UI
      ‣ Key technologies
      ‣ Deploying                         Further info

      ‣ Further info                                                               Language

      ‣ Tips and tricks                            Deploying
      ‣ The demo                                                              UI
                                                               Technologies
iPhone development a brief introduction     pete goodliffe




                             who are you?
iPhone development a brief introduction     pete goodliffe




                           why develop
                          for the iPhone?
iPhone development a brief introduction    pete goodliffe




                        the alternatives
iPhone development a brief introduction                                                       pete goodliffe




in 90 minutes...                                   Demo
                                                                  Intro



      ‣ Intro
      ‣ The tools                           Tips
      ‣ The language                                                          Tools

      ‣ The UI
      ‣ Key technologies
      ‣ Deploying                         Further info

      ‣ Further info                                                               Language

      ‣ Tips and tricks                            Deploying
      ‣ The demo                                                              UI
                                                               Technologies
iPhone development a brief introduction                                                       pete goodliffe




in 90 minutes...                                   Demo           Intro
      ‣ Intro
      ‣ The tools                           Tips
      ‣ The language                                                          Tools

      ‣ The UI
      ‣ Key technologies
      ‣ Deploying                         Further info

      ‣ Further info                                                               Language

      ‣ Tips and tricks                            Deploying
      ‣ The demo                                                              UI
                                                               Technologies
iPhone development a brief introduction                                                       pete goodliffe




in 90 minutes...                                   Demo           Intro
      ‣ Intro


                       The tools
      ‣ The tools                           Tips                                    Tools
      ‣ The language
      ‣ The UI
      ‣ Key technologies
      ‣ Deploying                         Further info

      ‣ Further info                                                               Language

      ‣ Tips and tricks                            Deploying
      ‣ The demo                                                              UI
                                                               Technologies
iPhone development a brief introduction                pete goodliffe




                                 ❖        The cast ❖
                            Xcode
                   iPhone/iPod Touch/iPad
                      (Interface builder)
                       iPhone simulator
                      Instruments/Shark
                    iOS Provisioning Portal
                          Other tools
iPhone development a brief introduction           pete goodliffe




                                          Xcode
iPhone development a brief introduction   pete goodliffe
iPhone development a brief introduction   pete goodliffe
iPhone development a brief introduction         pete goodliffe




                                    an iPhone
iPhone development a brief introduction   pete goodliffe




                      Interface Builder
iPhone development a brief introduction   pete goodliffe




                     iPhone simulator
iPhone development a brief introduction   pete goodliffe




                 Instruments/Shark
iPhone development a brief introduction         pete goodliffe




                                  Other tools
iPhone development a brief introduction               pete goodliffe




                        Getting set up...
                                Get a Mac
                              Get the tools
                                 Install
                           Get an ADC account   $$$
                                  Code
                                    …
                                  Profit
iPhone development a brief introduction                                                       pete goodliffe




in 90 minutes...                                   Demo           Intro
      ‣ Intro
      ‣ The tools                           Tips                                    Tools
      ‣ The language
      ‣ The UI
      ‣ Key technologies
      ‣ Deploying                         Further info

      ‣ Further info                                                               Language

      ‣ Tips and tricks                            Deploying
      ‣ The demo                                                              UI
                                                               Technologies
iPhone development a brief introduction                                                       pete goodliffe




in 90 minutes...                                   Demo           Intro
      ‣ Intro
      ‣ The tools                           Tips
      ‣ The language                                                          Tools

      ‣ The UI
      ‣ Key technologies
      ‣ Deploying                         Further info

      ‣ Further info                                                               Language

      ‣ Tips and tricks                            Deploying
      ‣ The demo                                                              UI
                                                               Technologies
iPhone development a brief introduction                                                          pete goodliffe




in 90 minutes...                                   Demo           Intro
      ‣ Intro


      The language
      ‣ The tools                           Tips
      ‣ The language                                                          Tools

      ‣ The UI
      ‣ Key technologies
      ‣ Deploying                         Further info

      ‣ Further info                                                                  Language
      ‣ Tips and tricks                            Deploying
      ‣ The demo                                                              UI
                                                               Technologies
iPhone development a brief introduction                 pete goodliffe




                     (well, languages)
                                              C
                                             C++
                                          Objective-C
iPhone development a brief introduction                 pete goodliffe




                     (well, languages)
                                              C
                                             C++
                                          Objective-C
iPhone development a brief introduction   pete goodliffe
iPhone development a brief introduction                    pete goodliffe




                     a history of
                   objective-c in 14
                 lines and 12 words
                                          (give or take)
iPhone development a brief introduction                               pete goodliffe


                                             algol


                      CPL                               Simula

                    BCPL                   Smalltalk
                     B
                     C
                                          Objective-C
                                                            C++


                                                     Java    C#   D
iPhone development a brief introduction                   pete goodliffe



                           objective C is...
                                   dynamic
                         based on message passing
                        follows C compilation model
                              full of [ ] and @s

                                                       ot too
                                                      n
   - (id) thisIsAMethod:(int)param1                        ry!
              signature:(float)param2                  sca
   {
       for (int n (brace n < 10; ++n)
                   = 0; yourself)
       {
           NSLog(@”N=%d”, n);
           [object callMethod:1 thing:2];
       }
   }
iPhone development a brief introduction             pete goodliffe

                                          .m file

  @implementation MyClass

  - (id) thisIsAMethod:(int)param1
             signature:(float)param2
  {
      for (int n = 0; n < 10; ++n)
      {
          NSLog(@”N=%d”, n);
          [object callMethod:1 thing:2];
      }
  }

  @end
iPhone development a brief introduction    pete goodliffe




  @implementation MyClass

  - (id) thisIsAMethod:(int)param1
        @class
             signature:(float)param2
  {     @interface
        @implementation
      for (int n = 0; n < 10; ++n)
      { @end
          NSLog(@”N=%d”, n);
        @property
          [object callMethod:1 thing:2];
        @private
      }
  }     @protected

  @end
iPhone development a brief introduction    pete goodliffe




  @implementation MyClass

  - (id) thisIsAMethod:(int)param1
             signature:(float)param2
  {
      for (int n = 0; n < 10; ++n)
      {
          NSLog(@”N=%d”, n);
          [object callMethod:1 thing:2];
      }
  }

  @end
iPhone development a brief introduction    pete goodliffe




  @implementation MyClass

  - (id) thisIsAMethod:(int)param1
             signature:(float)param2
  {
      for (int n = 0; n < 10; ++n)
      {
          NSLog(@”N=%d”, n);
          [object callMethod:1 thing:2];
      }
  }

  @end
iPhone development a brief introduction    pete goodliffe




  @implementation MyClass

  - (id) thisIsAMethod:(int)param1
             signature:(float)param2
  {
      for (int n = 0; n < 10; ++n)
      {
          NSLog(@”N=%d”, n);
          [object callMethod:1 thing:2];
      }
  }

  @end
iPhone development a brief introduction            pete goodliffe




  @implementation MyClass

  - (id) thisIsAMethod:(int)param1
             signature:(float)param2
                              C an
  {                                stil
                                        l
                                  C fr write
      for (int n = 0; n < 10; ++n)ee func (and c
                                             tion all)
      {                                          s

          NSLog(@”N=%d”, n);
          [object callMethod:1 thing:2];
      }
  }

  @end
iPhone development a brief introduction    pete goodliffe




  @implementation MyClass

  - (id) thisIsAMethod:(int)param1
             signature:(float)param2
  {
      for (int n = 0; n < 10; ++n)
      {
          NSLog(@”N=%d”, n);
                         NSS
          [object callMethod:1 thing:2];
                             tri
      }                          ng
  }

  @end
iPhone development a brief introduction    pete goodliffe




  @implementation MyClass

  - (id) thisIsAMethod:(int)param1
             signature:(float)param2
  {
      for (int n = 0; n < 10; ++n)
      {
          NSLog(@”N=%d”, n);
          [object callMethod:1 thing:2];
      }
  }

  @end
iPhone development a brief introduction     pete goodliffe




  @implementation MyClass

  - (id) thisIsAMethod:(int)param1
              signature:(float)param2
  {
       for (int n = 0; n < 10; ++n)
       {
           NSLog(@”N=%d”, n);
           [object callMethod:1 thing:2];
       }                  Can
  }                           call
                                   nil
  @end
iPhone development a brief introduction                pete goodliffe



                                          Sending messages

         [object method];
 int i = [object method];
        [[object method1] method2];

                      [object method:10];
                      [object1 method:[object 2:method]];
iPhone development a brief introduction                                   pete goodliffe



                                                   Method names
                                                             parameters

         object


                  [circle setCenterAtX:110 y:675];

                                          method name

                         selector name is: setCenterAtX:y:


                                           method declared as:
     - (void) setCentreAtX:(float)x y:(float)y

            SEL s = @selector(setCenterAtX:y:);
            [circle performSelector:s];
iPhone development a brief introduction                  pete goodliffe




                    parameter types:
                             int, float, unsigned, etc
                              syntax: (return type)
                                          id
iPhone development a brief introduction             pete goodliffe
                                          .h file

  @class ForwardDeclaration;

  @interface MyClass : NSObject
  {
      ForwardDeclaration *member;
      bool                otherMember;
  }

  - (id) init;
  - (id) initWithItems:(NSArray*)array
               enabled:(bool)enabled;

  + (id) myClassWithItems:(NSArray*)array;

  @end
iPhone development a brief introduction   pete goodliffe



  @class ForwardDeclaration;

  @interface MyClass : NSObject
  {
      ForwardDeclaration *member;
      bool                otherMember;
  }

  - (id) init;
  - (id) initWithItems:(NSArray*)array
               enabled:(bool)enabled;

  + (id) myClassWithItems:(NSArray*)array;

  @end
iPhone development a brief introduction   pete goodliffe



  @class ForwardDeclaration;

  @interface MyClass : NSObject
  {
      ForwardDeclaration *member;
      bool                otherMember;
  }

  - (id) init;
  - (id) initWithItems:(NSArray*)array
               enabled:(bool)enabled;

  + (id) myClassWithItems:(NSArray*)array;

  @end
iPhone development a brief introduction   pete goodliffe



  @class ForwardDeclaration;

  @interface MyClass : NSObject
  {
      ForwardDeclaration *member;
      bool                otherMember;
  }

  - (id) init;
  - (id) initWithItems:(NSArray*)array
               enabled:(bool)enabled;

  + (id) myClassWithItems:(NSArray*)array;

  @end
iPhone development a brief introduction   pete goodliffe



  @class ForwardDeclaration;

  @interface MyClass : NSObject
  {
      ForwardDeclaration *member;
      bool                otherMember;
  }

  - (id) init;
  - (id) initWithItems:(NSArray*)array
               enabled:(bool)enabled;

  + (id) myClassWithItems:(NSArray*)array;

  @end
iPhone development a brief introduction     pete goodliffe



  @class ForwardDeclaration;

  @interface MyClass : NSObject
  {
      ForwardDeclaration *member;
      bool                   otherMember;
  }
                       nda nt)
                 (redu
  - (id) init;
  - (id) initWithItems:(NSArray*)array
               enabled:(bool)enabled;

  + (id) myClassWithItems:(NSArray*)array;

  @end
iPhone development a brief introduction   pete goodliffe



  @class ForwardDeclaration;

  @interface MyClass : NSObject
  {
      ForwardDeclaration *member;
      bool                otherMember;
  }

  - (id) init;
  - (id) initWithItems:(NSArray*)array
               enabled:(bool)enabled;

  + (id) myClassWithItems:(NSArray*)array;

  @end
iPhone development a brief introduction              pete goodliffe




                            Objective C++
                          In .mm files
                Classes can contain C++ objects
               May use C++ constructs in functions
                        You can use RAII
                         C++ libraries
iPhone development a brief introduction                 pete goodliffe



Properties
            @interface MyClass
            {
                 int harold;
            }
            @property (nonatomic) int harold;
            @end


        In MyClass.m...
          @interface MyClass
          @synthesize harold;
          @end
                                            This will become
                                          important when we
                                          look at creating UIs
iPhone development a brief introduction               pete goodliffe




                     The tao of objects
                         You don’t call methods
                       You pass messages to objects

            [theObject sendMessage:parameter];
iPhone development a brief introduction                                        pete goodliffe


                                                         Java, C++, C#
  object.myMethod(1066);

                                           MyClass

                                     myMethod(int)
                                                               MyClass *this
                                     another()

                                     more()
                                                          class MyClass
                                                          {
                                          private data        public myMethod(int i)
                                                              {
                                                                  // ...
                                                              }
                                                          };
iPhone development a brief introduction                                        pete goodliffe


                                                           Objective-C
  [object myMethod:1066];

                                             MyClass
           message
            (selector)
                                                              MyClass *self

                                          myMethod(int)

                                          another()
                                                            @implementation MyClass
                                                            - (void) myMethod:(int)i
                                            private data    {
                                                               // ...
                                                            }
                                                            @end
iPhone development a brief introduction     pete goodliffe



Categories

        @interface NSObject (Foo)
        - (void) extraFooMethod;
        @end



        NSArray *array = [NSArray array];
        [array extraFooMethod];
iPhone development a brief introduction                                 pete goodliffe



                                                Object lifetime
                                          All objects are reference counted
                                                               (the retain count)




 NSArray *array1 = [[NSArray alloc] init];
 NSArray *array2 = [NSArray array];

 [array1 release];
 [array2 release]; // wrong

 Circle *circle = [[Circle alloc] initAtCenterX:100
                                              y:100
                                         radius:200];
iPhone development a brief introduction                                 pete goodliffe




                                                               Retain
                                          Action               count



       obj=[[ClassType alloc] init];                             1


                                               [obj retain];     2


       [obj release];                                            1


                                              [obj release];     0

                                                      [object dealloc];
iPhone development a brief introduction                                 pete goodliffe




                                                               Retain
                                          Action               count



       obj=[[ClassType alloc] init];                             1


                                               [obj retain];     2


       [obj release];                                            1


                                              [obj release];     0

                                                      [object dealloc];
iPhone development a brief introduction                    pete goodliffe




                                          ARC
                            automatic reference counting
iPhone development a brief introduction                 pete goodliffe



                                          The usual suspects

       NSObject
       NSString
       NSArray       NSMutableArray
       NSNumber
       NSThread
       NSDictionary NSMutableDictionary
       NSApplication
       NSData        NSMutableData
       NSURL
       NSSet         NSMutableSet
       NSValue
iPhone development a brief introduction                pete goodliffe




                                          Miscellany


       Statically typed my arse
               #import
        Constructor kludgery
iPhone development a brief introduction                   pete goodliffe




                                          Idioms

                   Delegates
               Key-value coding
              Protocol (interfaces)
                                    formal and informal
iPhone development a brief introduction                                   pete goodliffe




                              The libraries
         Objective C
                                          Cocoa Touch             UIKit, etc


                                                          Core Audio, Open GL ES,
                                             Media        Quartz, Core Animation


                                          Core Services

                                            Core OS          Posix, SQLite, Core
                                                              Foundation, BSD
               C
iPhone development a brief introduction                                                          pete goodliffe




in 90 minutes...                                   Demo           Intro
      ‣ Intro
      ‣ The tools                           Tips
      ‣ The language                                                          Tools

      ‣ The UI
      ‣ Key technologies
      ‣ Deploying                         Further info

      ‣ Further info                                                                  Language
      ‣ Tips and tricks                            Deploying
      ‣ The demo                                                              UI
                                                               Technologies
iPhone development a brief introduction                                                       pete goodliffe




in 90 minutes...                                   Demo           Intro
      ‣ Intro
      ‣ The tools                           Tips
      ‣ The language                                                          Tools

      ‣ The UI
      ‣ Key technologies
      ‣ Deploying                         Further info

      ‣ Further info                                                               Language

      ‣ Tips and tricks                            Deploying
      ‣ The demo                                                              UI
                                                               Technologies
iPhone development a brief introduction                                                    pete goodliffe




in 90 minutes...                                   Demo           Intro
      ‣ Intro


                                  The UI
      ‣ The tools                           Tips
      ‣ The language                                                          Tools

      ‣ The UI
      ‣ Key technologies
      ‣ Deploying                         Further info

      ‣ Further info                                                            Language

      ‣ Tips and tricks                            Deploying
      ‣ The demo
                                                               Technologies
                                                                                 UI
iPhone development a brief introduction   pete goodliffe




                      Interface Builder
iPhone development a brief introduction                     pete goodliffe




                                Held in .xib files
                                          (Compiled NIBs)

                    Loaded into application
                     (semi-automatically)

                IB is integrated into Xcode

                              UIKit framework
iPhone development a brief introduction   pete goodliffe
iPhone development a brief introduction          pete goodliffe




                            Create UI elements

            Link to an object reference in
             the XIB through properties
                 marked as IBOutlet

                    Link actions to methods
                       defined IBAction
iPhone development a brief introduction                     pete goodliffe




                                     Storyboards




                                                   (just don’t)
iPhone development a brief introduction                                         pete goodliffe




  //
  //     ExampleAppDelegate.h
  //     Example
  //
  //     Created by Pete Goodliffe on 03/04/2010.
  //     Copyright __MyCompanyName__ 2010. All rights reserved.
  //

  #import <UIKit/UIKit.h>

  @interface ExampleAppDelegate : NSObject <UIApplicationDelegate> {

         UIWindow *window;
         UINavigationController *navigationController;
  }

  @property (nonatomic, retain) IBOutlet UIWindow *window;
  @property (nonatomic, retain) IBOutlet UINavigationController *navigationController;

  @end
iPhone development a brief introduction                                                    pete goodliffe




in 90 minutes...                                   Demo           Intro
      ‣ Intro
      ‣ The tools                           Tips
      ‣ The language                                                          Tools

      ‣ The UI
      ‣ Key technologies
      ‣ Deploying                         Further info

      ‣ Further info                                                            Language

      ‣ Tips and tricks                            Deploying
      ‣ The demo
                                                               Technologies
                                                                                 UI
iPhone development a brief introduction                                                       pete goodliffe




in 90 minutes...                                   Demo           Intro
      ‣ Intro
      ‣ The tools                           Tips
      ‣ The language                                                          Tools

      ‣ The UI
      ‣ Key technologies
      ‣ Deploying                         Further info

      ‣ Further info                                                               Language

      ‣ Tips and tricks                            Deploying
      ‣ The demo                                                              UI
                                                               Technologies
iPhone development a brief introduction                                                       pete goodliffe




      ‣ Intro
              Key
in 90 minutes...
      ‣ The tools
      ‣ The language
      ‣ The UI
                                            Tips
                                                   Demo         Intro




                                                                              Tools




          technologies
      ‣ Key technologies
      ‣ Deploying                         Further info

      ‣ Further info                                                               Language

      ‣ Tips and tricks                            Deploying
      ‣ The demo                                                              UI


                                                               Technologies
iPhone development a brief introduction   pete goodliffe




                        UIKit
               Core Graphics (Quartz)
                   Core Animation
                     Core Audio
              Media Core / AVFoundation
               MapKit / Core Location
                 CoreData (or sqlite)
                     OpenGL ES
                 External Accessory
iPhone development a brief introduction                    pete goodliffe




                                            iOS 1
                                          Remember that?
iPhone development a brief introduction                                    pete goodliffe




                  iOS 2                    New in iOS 3
                                          iPad (popovers, split views)
       Being able to write apps !            Gesture recognizers
                                                  Copy & paste
                                            File sharing via iTunes
                                             Supported file types
                                                External display
     New in iOS 4                                   CoreText
                                                     MMS
          Multitasking
         Blocks & GCD
          Game Center
    EventKit: Calendar access                     New in iOS 5
          In-app SMS                                   iCloud Storage
         Media access                                        ARC
           QuickLook                                       Xcode 4
               iAd                                      Storyboards
     New audio/video APIs                                 Newstand
                                                     Twitter Integration
                                                     Notification Center
                                                         Core Image
                                                      New instruments
                                                     Location Simulation
iPhone development a brief introduction                                                       pete goodliffe




in 90 minutes...                                   Demo         Intro
      ‣ Intro
      ‣ The tools                           Tips
      ‣ The language                                                          Tools

      ‣ The UI
      ‣ Key technologies
      ‣ Deploying                         Further info

      ‣ Further info                                                               Language

      ‣ Tips and tricks                            Deploying
      ‣ The demo                                                              UI


                                                               Technologies
iPhone development a brief introduction                                                       pete goodliffe




in 90 minutes...                                   Demo           Intro
      ‣ Intro
      ‣ The tools                           Tips
      ‣ The language                                                          Tools

      ‣ The UI
      ‣ Key technologies
      ‣ Deploying                         Further info

      ‣ Further info                                                               Language

      ‣ Tips and tricks                            Deploying
      ‣ The demo                                                              UI
                                                               Technologies
iPhone development a brief introduction                                                       pete goodliffe




in 90 minutes...                                    Demo          Intro
      ‣ Intro


                   Deploying
      ‣ The tools                           Tips
      ‣ The language                                                          Tools

      ‣ The UI
      ‣ Key technologies
      ‣ Deploying                         Further info

      ‣ Further info                                                               Language

      ‣ Tips and tricks
      ‣ The demo                                   Deploying
                                                                              UI
                                                               Technologies
iPhone development a brief introduction                                pete goodliffe




                 Deploying
            iPhone
          simulator                                    iPhone

                                                  developer account ($$$)
               free
                                                        “DRM hell”
               x86
                                                  Deployment certificates
      runs at desktop speed
                          different build targets   100 devices per year
         more memory
           network stable
                                           App
                                          store   iTunes Connect
                                                  Another build type
iPhone development a brief introduction                  pete goodliffe




                                              App
                                             store

                                            submit

                                          get rejected

                                             fix it

                                           resubmit


                                            profit
iPhone development a brief introduction   pete goodliffe
iPhone development a brief introduction   pete goodliffe
iPhone development a brief introduction   pete goodliffe
iPhone development a brief introduction   pete goodliffe
iPhone development a brief introduction   pete goodliffe
iPhone development a brief introduction   pete goodliffe
iPhone development a brief introduction   pete goodliffe
iPhone development a brief introduction                                                       pete goodliffe




in 90 minutes...                                    Demo          Intro
      ‣ Intro
      ‣ The tools                           Tips
      ‣ The language                                                          Tools

      ‣ The UI
      ‣ Key technologies
      ‣ Deploying                         Further info

      ‣ Further info                                                               Language

      ‣ Tips and tricks
      ‣ The demo                                   Deploying
                                                                              UI
                                                               Technologies
iPhone development a brief introduction                                                       pete goodliffe




in 90 minutes...                                   Demo           Intro
      ‣ Intro
      ‣ The tools                           Tips
      ‣ The language                                                          Tools

      ‣ The UI
      ‣ Key technologies
      ‣ Deploying                         Further info

      ‣ Further info                                                               Language

      ‣ Tips and tricks                            Deploying
      ‣ The demo                                                              UI
                                                               Technologies
iPhone development a brief introduction                                                             pete goodliffe




in 90 minutes...                                         Demo           Intro
      ‣ Intro


           Further info
      ‣ The tools                                Tips
      ‣ The language                                                                Tools

      ‣ The UI
      ‣ Key technologies
      ‣ Deploying                         Further info

      ‣ Further info                                                                     Language

      ‣ Tips and tricks                                  Deploying
      ‣ The demo                                                                    UI
                                                                     Technologies
iPhone development a brief introduction                            pete goodliffe




                Xcode documentation
             developer.apple.com/iphone
                        Books
                      Websites
                                   Stack Overflow, CocoaDev, ADC

                   Videos on iTunes U
               http://itunes.stanford.edu/
iPhone development a brief introduction                                                             pete goodliffe




in 90 minutes...                                         Demo           Intro
      ‣ Intro
      ‣ The tools                                Tips
      ‣ The language                                                                Tools

      ‣ The UI
      ‣ Key technologies
      ‣ Deploying                         Further info

      ‣ Further info                                                                     Language

      ‣ Tips and tricks                                  Deploying
      ‣ The demo                                                                    UI
                                                                     Technologies
iPhone development a brief introduction                                                       pete goodliffe




in 90 minutes...                                   Demo           Intro
      ‣ Intro
      ‣ The tools                           Tips
      ‣ The language                                                          Tools

      ‣ The UI
      ‣ Key technologies
      ‣ Deploying                         Further info

      ‣ Further info                                                               Language

      ‣ Tips and tricks                            Deploying
      ‣ The demo                                                              UI
                                                               Technologies
iPhone development a brief introduction                                                      pete goodliffe




in 90 minutes...
      ‣ Intro
      ‣ The tools
      ‣ The language
      ‣ The UI
                     Tips                 Tips
                                                    Demo            Intro




                                                                                Tools




                   and tricks
      ‣ Key technologies
      ‣ Deploying                           Further info

      ‣ Further info                                                              Language

      ‣ Tips and tricks                              Deploying
      ‣ The demo                                                                UI
                                                                 Technologies
iPhone development a brief introduction          pete goodliffe




                               Thinking iPhone
iPhone development a brief introduction                          pete goodliffe




                                 Get the UI right
                                             HIG
                                    resource conservation
                                (alpha blending, prerendering)
                                          asynchrony
iPhone development a brief introduction     pete goodliffe




                The network is not always
                        available
iPhone development a brief introduction             pete goodliffe




                          Do not write to disk
                                          (often)
iPhone development a brief introduction                pete goodliffe




                           Conserve resources
                                             RAM
                                              CPU
                                          filesystem
iPhone development a brief introduction                                                      pete goodliffe




in 90 minutes...                                    Demo            Intro
      ‣ Intro
      ‣ The tools                         Tips

      ‣ The language                                                            Tools

      ‣ The UI
      ‣ Key technologies
      ‣ Deploying                           Further info

      ‣ Further info                                                              Language

      ‣ Tips and tricks                              Deploying
      ‣ The demo                                                                UI
                                                                 Technologies
iPhone development a brief introduction                                                       pete goodliffe




in 90 minutes...                                   Demo           Intro
      ‣ Intro
      ‣ The tools                           Tips
      ‣ The language                                                          Tools

      ‣ The UI
      ‣ Key technologies
      ‣ Deploying                         Further info

      ‣ Further info                                                               Language

      ‣ Tips and tricks                            Deploying
      ‣ The demo                                                              UI
                                                               Technologies
iPhone development a brief introduction                                                       pete goodliffe




in 90 minutes...                                Demo

                                                                  Intro
      ‣ Intro


                    The demo
      ‣ The tools                           Tips
      ‣ The language                                                          Tools

      ‣ The UI
      ‣ Key technologies
      ‣ Deploying                         Further info

      ‣ Further info                                                               Language

      ‣ Tips and tricks                            Deploying
      ‣ The demo                                                              UI
                                                               Technologies
iPhone development a brief introduction      pete goodliffe




                           (wish me luck)
                              wasn’t that
                              marvellous?!
iPhone development a brief introduction   pete goodliffe
iPhone development a brief introduction           pete goodliffe




                                          Pete Goodliffe
                                          pete@goodliffe.net

Weitere ähnliche Inhalte

Andere mochten auch

The stage iii of begg technique /certified fixed orthodontic courses by Ind...
The stage iii of begg technique   /certified fixed orthodontic courses by Ind...The stage iii of begg technique   /certified fixed orthodontic courses by Ind...
The stage iii of begg technique /certified fixed orthodontic courses by Ind...Indian dental academy
 
Ceph history, evolotion &amp; landmarks
Ceph history, evolotion &amp; landmarksCeph history, evolotion &amp; landmarks
Ceph history, evolotion &amp; landmarksIndian dental academy
 
Headgear /certified fixed orthodontic courses by Indian dental academy
Headgear /certified fixed orthodontic courses by Indian dental academy Headgear /certified fixed orthodontic courses by Indian dental academy
Headgear /certified fixed orthodontic courses by Indian dental academy Indian dental academy
 
Postero anterior cephalometric / endodontic courses
Postero anterior cephalometric / endodontic coursesPostero anterior cephalometric / endodontic courses
Postero anterior cephalometric / endodontic coursesIndian dental academy
 
Zygomatic anchorage ( mini plates ) in orthodontic
Zygomatic anchorage ( mini plates ) in orthodontic Zygomatic anchorage ( mini plates ) in orthodontic
Zygomatic anchorage ( mini plates ) in orthodontic bilal falahi
 
Cephalometric landmarks
Cephalometric landmarksCephalometric landmarks
Cephalometric landmarksTony Pious
 
"Tesla Motors" marka inceleme
"Tesla Motors" marka inceleme"Tesla Motors" marka inceleme
"Tesla Motors" marka incelemeyaseminbig
 
Class 2 malocclusion /certified fixed orthodontic courses by Indian dental ac...
Class 2 malocclusion /certified fixed orthodontic courses by Indian dental ac...Class 2 malocclusion /certified fixed orthodontic courses by Indian dental ac...
Class 2 malocclusion /certified fixed orthodontic courses by Indian dental ac...Indian dental academy
 
Growth modification of different types of malocclusion
Growth modification  of different types of  malocclusionGrowth modification  of different types of  malocclusion
Growth modification of different types of malocclusionbilal falahi
 
Postero anterior cephalometric analysis /certified fixed orthodontic courses...
Postero anterior cephalometric  analysis /certified fixed orthodontic courses...Postero anterior cephalometric  analysis /certified fixed orthodontic courses...
Postero anterior cephalometric analysis /certified fixed orthodontic courses...Indian dental academy
 
Modelanalysis /certified fixed orthodontic courses by Indian dental academy
Modelanalysis /certified fixed orthodontic courses by Indian dental academy Modelanalysis /certified fixed orthodontic courses by Indian dental academy
Modelanalysis /certified fixed orthodontic courses by Indian dental academy Indian dental academy
 
Hybrid functional appliance/certified fixed orthodontic courses by Indian den...
Hybrid functional appliance/certified fixed orthodontic courses by Indian den...Hybrid functional appliance/certified fixed orthodontic courses by Indian den...
Hybrid functional appliance/certified fixed orthodontic courses by Indian den...Indian dental academy
 
파이썬 확률과 통계 기초 이해하기
파이썬 확률과 통계 기초 이해하기파이썬 확률과 통계 기초 이해하기
파이썬 확률과 통계 기초 이해하기Yong Joon Moon
 

Andere mochten auch (14)

The stage iii of begg technique /certified fixed orthodontic courses by Ind...
The stage iii of begg technique   /certified fixed orthodontic courses by Ind...The stage iii of begg technique   /certified fixed orthodontic courses by Ind...
The stage iii of begg technique /certified fixed orthodontic courses by Ind...
 
Ceph history, evolotion &amp; landmarks
Ceph history, evolotion &amp; landmarksCeph history, evolotion &amp; landmarks
Ceph history, evolotion &amp; landmarks
 
Headgear /certified fixed orthodontic courses by Indian dental academy
Headgear /certified fixed orthodontic courses by Indian dental academy Headgear /certified fixed orthodontic courses by Indian dental academy
Headgear /certified fixed orthodontic courses by Indian dental academy
 
Postero anterior cephalometric / endodontic courses
Postero anterior cephalometric / endodontic coursesPostero anterior cephalometric / endodontic courses
Postero anterior cephalometric / endodontic courses
 
Zygomatic anchorage ( mini plates ) in orthodontic
Zygomatic anchorage ( mini plates ) in orthodontic Zygomatic anchorage ( mini plates ) in orthodontic
Zygomatic anchorage ( mini plates ) in orthodontic
 
Cephalometric landmarks
Cephalometric landmarksCephalometric landmarks
Cephalometric landmarks
 
"Tesla Motors" marka inceleme
"Tesla Motors" marka inceleme"Tesla Motors" marka inceleme
"Tesla Motors" marka inceleme
 
Class 2 malocclusion /certified fixed orthodontic courses by Indian dental ac...
Class 2 malocclusion /certified fixed orthodontic courses by Indian dental ac...Class 2 malocclusion /certified fixed orthodontic courses by Indian dental ac...
Class 2 malocclusion /certified fixed orthodontic courses by Indian dental ac...
 
Growth modification of different types of malocclusion
Growth modification  of different types of  malocclusionGrowth modification  of different types of  malocclusion
Growth modification of different types of malocclusion
 
Postero anterior cephalometric analysis /certified fixed orthodontic courses...
Postero anterior cephalometric  analysis /certified fixed orthodontic courses...Postero anterior cephalometric  analysis /certified fixed orthodontic courses...
Postero anterior cephalometric analysis /certified fixed orthodontic courses...
 
Modelanalysis /certified fixed orthodontic courses by Indian dental academy
Modelanalysis /certified fixed orthodontic courses by Indian dental academy Modelanalysis /certified fixed orthodontic courses by Indian dental academy
Modelanalysis /certified fixed orthodontic courses by Indian dental academy
 
Mascara facial
Mascara facial Mascara facial
Mascara facial
 
Hybrid functional appliance/certified fixed orthodontic courses by Indian den...
Hybrid functional appliance/certified fixed orthodontic courses by Indian den...Hybrid functional appliance/certified fixed orthodontic courses by Indian den...
Hybrid functional appliance/certified fixed orthodontic courses by Indian den...
 
파이썬 확률과 통계 기초 이해하기
파이썬 확률과 통계 기초 이해하기파이썬 확률과 통계 기초 이해하기
파이썬 확률과 통계 기초 이해하기
 

Ähnlich wie iOS Development (BCS Newcastle)

iOS Development (BCS Edinburgh 2011-03-09)
iOS Development (BCS Edinburgh 2011-03-09)iOS Development (BCS Edinburgh 2011-03-09)
iOS Development (BCS Edinburgh 2011-03-09)Pete Goodliffe
 
Advantages And Disadvantages of Python Development
Advantages And Disadvantages of Python DevelopmentAdvantages And Disadvantages of Python Development
Advantages And Disadvantages of Python DevelopmentAppsbee
 
Developer's got talent iPhone
Developer's got talent iPhoneDeveloper's got talent iPhone
Developer's got talent iPhonePiTechnologies
 
JHipster conf : craftsmanship & tdd
JHipster conf : craftsmanship & tddJHipster conf : craftsmanship & tdd
JHipster conf : craftsmanship & tddHippolyte Durix
 
Advanced Speech Delivery - Lesson 4 (t)
Advanced Speech Delivery - Lesson 4 (t)Advanced Speech Delivery - Lesson 4 (t)
Advanced Speech Delivery - Lesson 4 (t)SkimaTalk
 
Mobile Prototyping
Mobile PrototypingMobile Prototyping
Mobile PrototypingDonna Lichaw
 
Storyboard i phone scholz_week_8_
Storyboard i phone scholz_week_8_Storyboard i phone scholz_week_8_
Storyboard i phone scholz_week_8_clscholz
 
Da DevOps a DevSecOps: Servizi applicativi di sicurezza automatizzati con F5 ...
Da DevOps a DevSecOps: Servizi applicativi di sicurezza automatizzati con F5 ...Da DevOps a DevSecOps: Servizi applicativi di sicurezza automatizzati con F5 ...
Da DevOps a DevSecOps: Servizi applicativi di sicurezza automatizzati con F5 ...Emerasoft, solutions to collaborate
 
PhoneGap: a brief history and apologia
PhoneGap: a brief history and apologiaPhoneGap: a brief history and apologia
PhoneGap: a brief history and apologialorinbeer
 
Why Python is the Best Coding Language For PWA Development_.ppt
Why Python is the Best Coding Language For PWA Development_.pptWhy Python is the Best Coding Language For PWA Development_.ppt
Why Python is the Best Coding Language For PWA Development_.pptTechinventive Software
 
Modern mobile development overview
Modern mobile development overviewModern mobile development overview
Modern mobile development overviewDima Maleev
 
Storyboard i phone scholz_week_9
Storyboard i phone scholz_week_9Storyboard i phone scholz_week_9
Storyboard i phone scholz_week_9carolscholz
 
Storyboard I Phone Scholz Week 6 Finalversion
Storyboard I Phone Scholz Week 6 FinalversionStoryboard I Phone Scholz Week 6 Finalversion
Storyboard I Phone Scholz Week 6 Finalversioncarolscholz
 
Storyboard i phone scholz_week_7_finalversion
Storyboard i phone scholz_week_7_finalversionStoryboard i phone scholz_week_7_finalversion
Storyboard i phone scholz_week_7_finalversioncarolscholz
 

Ähnlich wie iOS Development (BCS Newcastle) (20)

iOS Development (BCS Edinburgh 2011-03-09)
iOS Development (BCS Edinburgh 2011-03-09)iOS Development (BCS Edinburgh 2011-03-09)
iOS Development (BCS Edinburgh 2011-03-09)
 
iPhone IN YOUR FACE
iPhone IN YOUR FACEiPhone IN YOUR FACE
iPhone IN YOUR FACE
 
Shooting for Vertical – ONA19
Shooting for Vertical – ONA19Shooting for Vertical – ONA19
Shooting for Vertical – ONA19
 
Advantages And Disadvantages of Python Development
Advantages And Disadvantages of Python DevelopmentAdvantages And Disadvantages of Python Development
Advantages And Disadvantages of Python Development
 
I Phone Session Mufix
I Phone Session MufixI Phone Session Mufix
I Phone Session Mufix
 
Phonegap 1.0
Phonegap 1.0Phonegap 1.0
Phonegap 1.0
 
Developer's got talent iPhone
Developer's got talent iPhoneDeveloper's got talent iPhone
Developer's got talent iPhone
 
JHipster conf : craftsmanship & tdd
JHipster conf : craftsmanship & tddJHipster conf : craftsmanship & tdd
JHipster conf : craftsmanship & tdd
 
Advanced Speech Delivery - Lesson 4 (t)
Advanced Speech Delivery - Lesson 4 (t)Advanced Speech Delivery - Lesson 4 (t)
Advanced Speech Delivery - Lesson 4 (t)
 
Mobile Prototyping
Mobile PrototypingMobile Prototyping
Mobile Prototyping
 
Storyboard i phone scholz_week_8_
Storyboard i phone scholz_week_8_Storyboard i phone scholz_week_8_
Storyboard i phone scholz_week_8_
 
Da DevOps a DevSecOps: Servizi applicativi di sicurezza automatizzati con F5 ...
Da DevOps a DevSecOps: Servizi applicativi di sicurezza automatizzati con F5 ...Da DevOps a DevSecOps: Servizi applicativi di sicurezza automatizzati con F5 ...
Da DevOps a DevSecOps: Servizi applicativi di sicurezza automatizzati con F5 ...
 
The future is hybrid
The future is hybridThe future is hybrid
The future is hybrid
 
PhoneGap: a brief history and apologia
PhoneGap: a brief history and apologiaPhoneGap: a brief history and apologia
PhoneGap: a brief history and apologia
 
Why Python is the Best Coding Language For PWA Development_.ppt
Why Python is the Best Coding Language For PWA Development_.pptWhy Python is the Best Coding Language For PWA Development_.ppt
Why Python is the Best Coding Language For PWA Development_.ppt
 
Modern mobile development overview
Modern mobile development overviewModern mobile development overview
Modern mobile development overview
 
Storyboard i phone scholz_week_9
Storyboard i phone scholz_week_9Storyboard i phone scholz_week_9
Storyboard i phone scholz_week_9
 
Storyboard I Phone Scholz Week 6 Finalversion
Storyboard I Phone Scholz Week 6 FinalversionStoryboard I Phone Scholz Week 6 Finalversion
Storyboard I Phone Scholz Week 6 Finalversion
 
Storyboard i phone scholz_week_7_finalversion
Storyboard i phone scholz_week_7_finalversionStoryboard i phone scholz_week_7_finalversion
Storyboard i phone scholz_week_7_finalversion
 
Features of Python.pdf
Features of Python.pdfFeatures of Python.pdf
Features of Python.pdf
 

Mehr von Pete Goodliffe

Becoming a Better Programmer
Becoming a Better ProgrammerBecoming a Better Programmer
Becoming a Better ProgrammerPete Goodliffe
 
Running Effective Worship Rehearsals
Running Effective Worship RehearsalsRunning Effective Worship Rehearsals
Running Effective Worship RehearsalsPete Goodliffe
 
Becoming a Better Programmer (2013)
Becoming a Better Programmer (2013)Becoming a Better Programmer (2013)
Becoming a Better Programmer (2013)Pete Goodliffe
 
Version Control Done Right
Version Control Done RightVersion Control Done Right
Version Control Done RightPete Goodliffe
 
C++: The Cathedral and the Bizarre
C++: The Cathedral and the BizarreC++: The Cathedral and the Bizarre
C++: The Cathedral and the BizarrePete Goodliffe
 
Three Objectionable Things
Three Objectionable ThingsThree Objectionable Things
Three Objectionable ThingsPete Goodliffe
 
Coping with Complexity
Coping with ComplexityCoping with Complexity
Coping with ComplexityPete Goodliffe
 
Stood at the bottom of a mountain looking up
Stood at the bottom of a mountain looking upStood at the bottom of a mountain looking up
Stood at the bottom of a mountain looking upPete Goodliffe
 
Legacy Code: Learning To Live With It
Legacy Code: Learning To Live With ItLegacy Code: Learning To Live With It
Legacy Code: Learning To Live With ItPete Goodliffe
 

Mehr von Pete Goodliffe (14)

Becoming a Better Programmer
Becoming a Better ProgrammerBecoming a Better Programmer
Becoming a Better Programmer
 
Words in Code
Words in CodeWords in Code
Words in Code
 
Running Effective Worship Rehearsals
Running Effective Worship RehearsalsRunning Effective Worship Rehearsals
Running Effective Worship Rehearsals
 
Becoming a Better Programmer (2013)
Becoming a Better Programmer (2013)Becoming a Better Programmer (2013)
Becoming a Better Programmer (2013)
 
Design Sins
Design SinsDesign Sins
Design Sins
 
Advanced iOS
Advanced iOSAdvanced iOS
Advanced iOS
 
Version Control Done Right
Version Control Done RightVersion Control Done Right
Version Control Done Right
 
Getting Into Git
Getting Into GitGetting Into Git
Getting Into Git
 
C++: The Cathedral and the Bizarre
C++: The Cathedral and the BizarreC++: The Cathedral and the Bizarre
C++: The Cathedral and the Bizarre
 
Three Objectionable Things
Three Objectionable ThingsThree Objectionable Things
Three Objectionable Things
 
Coping with Complexity
Coping with ComplexityCoping with Complexity
Coping with Complexity
 
Manyfestos
ManyfestosManyfestos
Manyfestos
 
Stood at the bottom of a mountain looking up
Stood at the bottom of a mountain looking upStood at the bottom of a mountain looking up
Stood at the bottom of a mountain looking up
 
Legacy Code: Learning To Live With It
Legacy Code: Learning To Live With ItLegacy Code: Learning To Live With It
Legacy Code: Learning To Live With It
 

Kürzlich hochgeladen

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 

Kürzlich hochgeladen (20)

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

iOS Development (BCS Newcastle)

  • 1. iPhoneNewcastle BCS development a brief introduction pete goodliffe Hello, world! iPhone iOS Development a brief introduction rkably , very rema really, Pete Goodliffe pete@goodliffe.net
  • 2. iPhone development a brief introduction pete goodliffe Pete Goodliffe A programmer, a columnist, an author, a teacher. Someone who cares about code. www.goodliffe.net goodliffe.blogspot.com @petegoodliffe
  • 3. iPhone development a brief introduction pete goodliffe Pete Goodliffe A programmer, a columnist, an author, a teacher. Someone who cares about code. www.goodliffe.net goodliffe.blogspot.com @petegoodliffe
  • 4. iPhone development a brief introduction pete goodliffe
  • 5. iPhone development a brief introduction pete goodliffe talk synopsis An introduction to iPhone/iOS development An introduction to iPhone development for beginners or those who are casually interested and want a leg up the learning curve. This talk is an overview of how to get started as an iPhone developer, and an introduction to the core technologies, including: ‣ Common iPhone/Mac OS design patterns, idioms, and practices ‣ Becoming a native: how to "think in iPhone" ‣ Overview of the libraries and facilities that exist ‣ Limitations of the development environment
  • 6. iPhone development a brief introduction pete goodliffe 90 minutes? is that all?!!!
  • 7. iPhone development a brief introduction pete goodliffe in 90 minutes... Demo Intro ‣ Intro ‣ The tools Tips ‣ The language Tools ‣ The UI ‣ Key technologies ‣ Deploying Further info ‣ Further info Language ‣ Tips and tricks Deploying ‣ The demo UI Technologies m… pie Mm
  • 8. iPhone development a brief introduction pete goodliffe in 90 minutes... Demo Intro ‣ Intro Introduction ‣ The tools Tips ‣ The language Tools ‣ The UI ‣ Key technologies ‣ Deploying Further info ‣ Further info Language ‣ Tips and tricks Deploying ‣ The demo UI Technologies
  • 9. iPhone development a brief introduction pete goodliffe who are you?
  • 10. iPhone development a brief introduction pete goodliffe why develop for the iPhone?
  • 11. iPhone development a brief introduction pete goodliffe the alternatives
  • 12. iPhone development a brief introduction pete goodliffe in 90 minutes... Demo Intro ‣ Intro ‣ The tools Tips ‣ The language Tools ‣ The UI ‣ Key technologies ‣ Deploying Further info ‣ Further info Language ‣ Tips and tricks Deploying ‣ The demo UI Technologies
  • 13. iPhone development a brief introduction pete goodliffe in 90 minutes... Demo Intro ‣ Intro ‣ The tools Tips ‣ The language Tools ‣ The UI ‣ Key technologies ‣ Deploying Further info ‣ Further info Language ‣ Tips and tricks Deploying ‣ The demo UI Technologies
  • 14. iPhone development a brief introduction pete goodliffe in 90 minutes... Demo Intro ‣ Intro The tools ‣ The tools Tips Tools ‣ The language ‣ The UI ‣ Key technologies ‣ Deploying Further info ‣ Further info Language ‣ Tips and tricks Deploying ‣ The demo UI Technologies
  • 15. iPhone development a brief introduction pete goodliffe ❖ The cast ❖ Xcode iPhone/iPod Touch/iPad (Interface builder) iPhone simulator Instruments/Shark iOS Provisioning Portal Other tools
  • 16. iPhone development a brief introduction pete goodliffe Xcode
  • 17. iPhone development a brief introduction pete goodliffe
  • 18. iPhone development a brief introduction pete goodliffe
  • 19. iPhone development a brief introduction pete goodliffe an iPhone
  • 20. iPhone development a brief introduction pete goodliffe Interface Builder
  • 21. iPhone development a brief introduction pete goodliffe iPhone simulator
  • 22. iPhone development a brief introduction pete goodliffe Instruments/Shark
  • 23. iPhone development a brief introduction pete goodliffe Other tools
  • 24. iPhone development a brief introduction pete goodliffe Getting set up... Get a Mac Get the tools Install Get an ADC account $$$ Code … Profit
  • 25. iPhone development a brief introduction pete goodliffe in 90 minutes... Demo Intro ‣ Intro ‣ The tools Tips Tools ‣ The language ‣ The UI ‣ Key technologies ‣ Deploying Further info ‣ Further info Language ‣ Tips and tricks Deploying ‣ The demo UI Technologies
  • 26. iPhone development a brief introduction pete goodliffe in 90 minutes... Demo Intro ‣ Intro ‣ The tools Tips ‣ The language Tools ‣ The UI ‣ Key technologies ‣ Deploying Further info ‣ Further info Language ‣ Tips and tricks Deploying ‣ The demo UI Technologies
  • 27. iPhone development a brief introduction pete goodliffe in 90 minutes... Demo Intro ‣ Intro The language ‣ The tools Tips ‣ The language Tools ‣ The UI ‣ Key technologies ‣ Deploying Further info ‣ Further info Language ‣ Tips and tricks Deploying ‣ The demo UI Technologies
  • 28. iPhone development a brief introduction pete goodliffe (well, languages) C C++ Objective-C
  • 29. iPhone development a brief introduction pete goodliffe (well, languages) C C++ Objective-C
  • 30. iPhone development a brief introduction pete goodliffe
  • 31. iPhone development a brief introduction pete goodliffe a history of objective-c in 14 lines and 12 words (give or take)
  • 32. iPhone development a brief introduction pete goodliffe algol CPL Simula BCPL Smalltalk B C Objective-C C++ Java C# D
  • 33. iPhone development a brief introduction pete goodliffe objective C is... dynamic based on message passing follows C compilation model full of [ ] and @s ot too n - (id) thisIsAMethod:(int)param1 ry! signature:(float)param2 sca { for (int n (brace n < 10; ++n) = 0; yourself) { NSLog(@”N=%d”, n); [object callMethod:1 thing:2]; } }
  • 34. iPhone development a brief introduction pete goodliffe .m file @implementation MyClass - (id) thisIsAMethod:(int)param1 signature:(float)param2 { for (int n = 0; n < 10; ++n) { NSLog(@”N=%d”, n); [object callMethod:1 thing:2]; } } @end
  • 35. iPhone development a brief introduction pete goodliffe @implementation MyClass - (id) thisIsAMethod:(int)param1 @class signature:(float)param2 { @interface @implementation for (int n = 0; n < 10; ++n) { @end NSLog(@”N=%d”, n); @property [object callMethod:1 thing:2]; @private } } @protected @end
  • 36. iPhone development a brief introduction pete goodliffe @implementation MyClass - (id) thisIsAMethod:(int)param1 signature:(float)param2 { for (int n = 0; n < 10; ++n) { NSLog(@”N=%d”, n); [object callMethod:1 thing:2]; } } @end
  • 37. iPhone development a brief introduction pete goodliffe @implementation MyClass - (id) thisIsAMethod:(int)param1 signature:(float)param2 { for (int n = 0; n < 10; ++n) { NSLog(@”N=%d”, n); [object callMethod:1 thing:2]; } } @end
  • 38. iPhone development a brief introduction pete goodliffe @implementation MyClass - (id) thisIsAMethod:(int)param1 signature:(float)param2 { for (int n = 0; n < 10; ++n) { NSLog(@”N=%d”, n); [object callMethod:1 thing:2]; } } @end
  • 39. iPhone development a brief introduction pete goodliffe @implementation MyClass - (id) thisIsAMethod:(int)param1 signature:(float)param2 C an { stil l C fr write for (int n = 0; n < 10; ++n)ee func (and c tion all) { s NSLog(@”N=%d”, n); [object callMethod:1 thing:2]; } } @end
  • 40. iPhone development a brief introduction pete goodliffe @implementation MyClass - (id) thisIsAMethod:(int)param1 signature:(float)param2 { for (int n = 0; n < 10; ++n) { NSLog(@”N=%d”, n); NSS [object callMethod:1 thing:2]; tri } ng } @end
  • 41. iPhone development a brief introduction pete goodliffe @implementation MyClass - (id) thisIsAMethod:(int)param1 signature:(float)param2 { for (int n = 0; n < 10; ++n) { NSLog(@”N=%d”, n); [object callMethod:1 thing:2]; } } @end
  • 42. iPhone development a brief introduction pete goodliffe @implementation MyClass - (id) thisIsAMethod:(int)param1 signature:(float)param2 { for (int n = 0; n < 10; ++n) { NSLog(@”N=%d”, n); [object callMethod:1 thing:2]; } Can } call nil @end
  • 43. iPhone development a brief introduction pete goodliffe Sending messages [object method]; int i = [object method]; [[object method1] method2]; [object method:10]; [object1 method:[object 2:method]];
  • 44. iPhone development a brief introduction pete goodliffe Method names parameters object [circle setCenterAtX:110 y:675]; method name selector name is: setCenterAtX:y: method declared as: - (void) setCentreAtX:(float)x y:(float)y SEL s = @selector(setCenterAtX:y:); [circle performSelector:s];
  • 45. iPhone development a brief introduction pete goodliffe parameter types: int, float, unsigned, etc syntax: (return type) id
  • 46. iPhone development a brief introduction pete goodliffe .h file @class ForwardDeclaration; @interface MyClass : NSObject { ForwardDeclaration *member; bool otherMember; } - (id) init; - (id) initWithItems:(NSArray*)array enabled:(bool)enabled; + (id) myClassWithItems:(NSArray*)array; @end
  • 47. iPhone development a brief introduction pete goodliffe @class ForwardDeclaration; @interface MyClass : NSObject { ForwardDeclaration *member; bool otherMember; } - (id) init; - (id) initWithItems:(NSArray*)array enabled:(bool)enabled; + (id) myClassWithItems:(NSArray*)array; @end
  • 48. iPhone development a brief introduction pete goodliffe @class ForwardDeclaration; @interface MyClass : NSObject { ForwardDeclaration *member; bool otherMember; } - (id) init; - (id) initWithItems:(NSArray*)array enabled:(bool)enabled; + (id) myClassWithItems:(NSArray*)array; @end
  • 49. iPhone development a brief introduction pete goodliffe @class ForwardDeclaration; @interface MyClass : NSObject { ForwardDeclaration *member; bool otherMember; } - (id) init; - (id) initWithItems:(NSArray*)array enabled:(bool)enabled; + (id) myClassWithItems:(NSArray*)array; @end
  • 50. iPhone development a brief introduction pete goodliffe @class ForwardDeclaration; @interface MyClass : NSObject { ForwardDeclaration *member; bool otherMember; } - (id) init; - (id) initWithItems:(NSArray*)array enabled:(bool)enabled; + (id) myClassWithItems:(NSArray*)array; @end
  • 51. iPhone development a brief introduction pete goodliffe @class ForwardDeclaration; @interface MyClass : NSObject { ForwardDeclaration *member; bool otherMember; } nda nt) (redu - (id) init; - (id) initWithItems:(NSArray*)array enabled:(bool)enabled; + (id) myClassWithItems:(NSArray*)array; @end
  • 52. iPhone development a brief introduction pete goodliffe @class ForwardDeclaration; @interface MyClass : NSObject { ForwardDeclaration *member; bool otherMember; } - (id) init; - (id) initWithItems:(NSArray*)array enabled:(bool)enabled; + (id) myClassWithItems:(NSArray*)array; @end
  • 53. iPhone development a brief introduction pete goodliffe Objective C++ In .mm files Classes can contain C++ objects May use C++ constructs in functions You can use RAII C++ libraries
  • 54. iPhone development a brief introduction pete goodliffe Properties @interface MyClass { int harold; } @property (nonatomic) int harold; @end In MyClass.m... @interface MyClass @synthesize harold; @end This will become important when we look at creating UIs
  • 55. iPhone development a brief introduction pete goodliffe The tao of objects You don’t call methods You pass messages to objects [theObject sendMessage:parameter];
  • 56. iPhone development a brief introduction pete goodliffe Java, C++, C# object.myMethod(1066); MyClass myMethod(int) MyClass *this another() more() class MyClass { private data public myMethod(int i) { // ... } };
  • 57. iPhone development a brief introduction pete goodliffe Objective-C [object myMethod:1066]; MyClass message (selector) MyClass *self myMethod(int) another() @implementation MyClass - (void) myMethod:(int)i private data { // ... } @end
  • 58. iPhone development a brief introduction pete goodliffe Categories @interface NSObject (Foo) - (void) extraFooMethod; @end NSArray *array = [NSArray array]; [array extraFooMethod];
  • 59. iPhone development a brief introduction pete goodliffe Object lifetime All objects are reference counted (the retain count) NSArray *array1 = [[NSArray alloc] init]; NSArray *array2 = [NSArray array]; [array1 release]; [array2 release]; // wrong Circle *circle = [[Circle alloc] initAtCenterX:100 y:100 radius:200];
  • 60. iPhone development a brief introduction pete goodliffe Retain Action count obj=[[ClassType alloc] init]; 1 [obj retain]; 2 [obj release]; 1 [obj release]; 0 [object dealloc];
  • 61. iPhone development a brief introduction pete goodliffe Retain Action count obj=[[ClassType alloc] init]; 1 [obj retain]; 2 [obj release]; 1 [obj release]; 0 [object dealloc];
  • 62. iPhone development a brief introduction pete goodliffe ARC automatic reference counting
  • 63. iPhone development a brief introduction pete goodliffe The usual suspects NSObject NSString NSArray NSMutableArray NSNumber NSThread NSDictionary NSMutableDictionary NSApplication NSData NSMutableData NSURL NSSet NSMutableSet NSValue
  • 64. iPhone development a brief introduction pete goodliffe Miscellany Statically typed my arse #import Constructor kludgery
  • 65. iPhone development a brief introduction pete goodliffe Idioms Delegates Key-value coding Protocol (interfaces) formal and informal
  • 66. iPhone development a brief introduction pete goodliffe The libraries Objective C Cocoa Touch UIKit, etc Core Audio, Open GL ES, Media Quartz, Core Animation Core Services Core OS Posix, SQLite, Core Foundation, BSD C
  • 67. iPhone development a brief introduction pete goodliffe in 90 minutes... Demo Intro ‣ Intro ‣ The tools Tips ‣ The language Tools ‣ The UI ‣ Key technologies ‣ Deploying Further info ‣ Further info Language ‣ Tips and tricks Deploying ‣ The demo UI Technologies
  • 68. iPhone development a brief introduction pete goodliffe in 90 minutes... Demo Intro ‣ Intro ‣ The tools Tips ‣ The language Tools ‣ The UI ‣ Key technologies ‣ Deploying Further info ‣ Further info Language ‣ Tips and tricks Deploying ‣ The demo UI Technologies
  • 69. iPhone development a brief introduction pete goodliffe in 90 minutes... Demo Intro ‣ Intro The UI ‣ The tools Tips ‣ The language Tools ‣ The UI ‣ Key technologies ‣ Deploying Further info ‣ Further info Language ‣ Tips and tricks Deploying ‣ The demo Technologies UI
  • 70. iPhone development a brief introduction pete goodliffe Interface Builder
  • 71. iPhone development a brief introduction pete goodliffe Held in .xib files (Compiled NIBs) Loaded into application (semi-automatically) IB is integrated into Xcode UIKit framework
  • 72. iPhone development a brief introduction pete goodliffe
  • 73. iPhone development a brief introduction pete goodliffe Create UI elements Link to an object reference in the XIB through properties marked as IBOutlet Link actions to methods defined IBAction
  • 74. iPhone development a brief introduction pete goodliffe Storyboards (just don’t)
  • 75. iPhone development a brief introduction pete goodliffe // // ExampleAppDelegate.h // Example // // Created by Pete Goodliffe on 03/04/2010. // Copyright __MyCompanyName__ 2010. All rights reserved. // #import <UIKit/UIKit.h> @interface ExampleAppDelegate : NSObject <UIApplicationDelegate> { UIWindow *window; UINavigationController *navigationController; } @property (nonatomic, retain) IBOutlet UIWindow *window; @property (nonatomic, retain) IBOutlet UINavigationController *navigationController; @end
  • 76. iPhone development a brief introduction pete goodliffe in 90 minutes... Demo Intro ‣ Intro ‣ The tools Tips ‣ The language Tools ‣ The UI ‣ Key technologies ‣ Deploying Further info ‣ Further info Language ‣ Tips and tricks Deploying ‣ The demo Technologies UI
  • 77. iPhone development a brief introduction pete goodliffe in 90 minutes... Demo Intro ‣ Intro ‣ The tools Tips ‣ The language Tools ‣ The UI ‣ Key technologies ‣ Deploying Further info ‣ Further info Language ‣ Tips and tricks Deploying ‣ The demo UI Technologies
  • 78. iPhone development a brief introduction pete goodliffe ‣ Intro Key in 90 minutes... ‣ The tools ‣ The language ‣ The UI Tips Demo Intro Tools technologies ‣ Key technologies ‣ Deploying Further info ‣ Further info Language ‣ Tips and tricks Deploying ‣ The demo UI Technologies
  • 79. iPhone development a brief introduction pete goodliffe UIKit Core Graphics (Quartz) Core Animation Core Audio Media Core / AVFoundation MapKit / Core Location CoreData (or sqlite) OpenGL ES External Accessory
  • 80. iPhone development a brief introduction pete goodliffe iOS 1 Remember that?
  • 81. iPhone development a brief introduction pete goodliffe iOS 2 New in iOS 3 iPad (popovers, split views) Being able to write apps ! Gesture recognizers Copy & paste File sharing via iTunes Supported file types External display New in iOS 4 CoreText MMS Multitasking Blocks & GCD Game Center EventKit: Calendar access New in iOS 5 In-app SMS iCloud Storage Media access ARC QuickLook Xcode 4 iAd Storyboards New audio/video APIs Newstand Twitter Integration Notification Center Core Image New instruments Location Simulation
  • 82. iPhone development a brief introduction pete goodliffe in 90 minutes... Demo Intro ‣ Intro ‣ The tools Tips ‣ The language Tools ‣ The UI ‣ Key technologies ‣ Deploying Further info ‣ Further info Language ‣ Tips and tricks Deploying ‣ The demo UI Technologies
  • 83. iPhone development a brief introduction pete goodliffe in 90 minutes... Demo Intro ‣ Intro ‣ The tools Tips ‣ The language Tools ‣ The UI ‣ Key technologies ‣ Deploying Further info ‣ Further info Language ‣ Tips and tricks Deploying ‣ The demo UI Technologies
  • 84. iPhone development a brief introduction pete goodliffe in 90 minutes... Demo Intro ‣ Intro Deploying ‣ The tools Tips ‣ The language Tools ‣ The UI ‣ Key technologies ‣ Deploying Further info ‣ Further info Language ‣ Tips and tricks ‣ The demo Deploying UI Technologies
  • 85. iPhone development a brief introduction pete goodliffe Deploying iPhone simulator iPhone developer account ($$$) free “DRM hell” x86 Deployment certificates runs at desktop speed different build targets 100 devices per year more memory network stable App store iTunes Connect Another build type
  • 86. iPhone development a brief introduction pete goodliffe App store submit get rejected fix it resubmit profit
  • 87. iPhone development a brief introduction pete goodliffe
  • 88. iPhone development a brief introduction pete goodliffe
  • 89. iPhone development a brief introduction pete goodliffe
  • 90. iPhone development a brief introduction pete goodliffe
  • 91. iPhone development a brief introduction pete goodliffe
  • 92. iPhone development a brief introduction pete goodliffe
  • 93. iPhone development a brief introduction pete goodliffe
  • 94. iPhone development a brief introduction pete goodliffe in 90 minutes... Demo Intro ‣ Intro ‣ The tools Tips ‣ The language Tools ‣ The UI ‣ Key technologies ‣ Deploying Further info ‣ Further info Language ‣ Tips and tricks ‣ The demo Deploying UI Technologies
  • 95. iPhone development a brief introduction pete goodliffe in 90 minutes... Demo Intro ‣ Intro ‣ The tools Tips ‣ The language Tools ‣ The UI ‣ Key technologies ‣ Deploying Further info ‣ Further info Language ‣ Tips and tricks Deploying ‣ The demo UI Technologies
  • 96. iPhone development a brief introduction pete goodliffe in 90 minutes... Demo Intro ‣ Intro Further info ‣ The tools Tips ‣ The language Tools ‣ The UI ‣ Key technologies ‣ Deploying Further info ‣ Further info Language ‣ Tips and tricks Deploying ‣ The demo UI Technologies
  • 97. iPhone development a brief introduction pete goodliffe Xcode documentation developer.apple.com/iphone Books Websites Stack Overflow, CocoaDev, ADC Videos on iTunes U http://itunes.stanford.edu/
  • 98. iPhone development a brief introduction pete goodliffe in 90 minutes... Demo Intro ‣ Intro ‣ The tools Tips ‣ The language Tools ‣ The UI ‣ Key technologies ‣ Deploying Further info ‣ Further info Language ‣ Tips and tricks Deploying ‣ The demo UI Technologies
  • 99. iPhone development a brief introduction pete goodliffe in 90 minutes... Demo Intro ‣ Intro ‣ The tools Tips ‣ The language Tools ‣ The UI ‣ Key technologies ‣ Deploying Further info ‣ Further info Language ‣ Tips and tricks Deploying ‣ The demo UI Technologies
  • 100. iPhone development a brief introduction pete goodliffe in 90 minutes... ‣ Intro ‣ The tools ‣ The language ‣ The UI Tips Tips Demo Intro Tools and tricks ‣ Key technologies ‣ Deploying Further info ‣ Further info Language ‣ Tips and tricks Deploying ‣ The demo UI Technologies
  • 101. iPhone development a brief introduction pete goodliffe Thinking iPhone
  • 102. iPhone development a brief introduction pete goodliffe Get the UI right HIG resource conservation (alpha blending, prerendering) asynchrony
  • 103. iPhone development a brief introduction pete goodliffe The network is not always available
  • 104. iPhone development a brief introduction pete goodliffe Do not write to disk (often)
  • 105. iPhone development a brief introduction pete goodliffe Conserve resources RAM CPU filesystem
  • 106. iPhone development a brief introduction pete goodliffe in 90 minutes... Demo Intro ‣ Intro ‣ The tools Tips ‣ The language Tools ‣ The UI ‣ Key technologies ‣ Deploying Further info ‣ Further info Language ‣ Tips and tricks Deploying ‣ The demo UI Technologies
  • 107. iPhone development a brief introduction pete goodliffe in 90 minutes... Demo Intro ‣ Intro ‣ The tools Tips ‣ The language Tools ‣ The UI ‣ Key technologies ‣ Deploying Further info ‣ Further info Language ‣ Tips and tricks Deploying ‣ The demo UI Technologies
  • 108. iPhone development a brief introduction pete goodliffe in 90 minutes... Demo Intro ‣ Intro The demo ‣ The tools Tips ‣ The language Tools ‣ The UI ‣ Key technologies ‣ Deploying Further info ‣ Further info Language ‣ Tips and tricks Deploying ‣ The demo UI Technologies
  • 109. iPhone development a brief introduction pete goodliffe (wish me luck) wasn’t that marvellous?!
  • 110. iPhone development a brief introduction pete goodliffe
  • 111. iPhone development a brief introduction pete goodliffe Pete Goodliffe pete@goodliffe.net