EINFÜHRUNG IN DIE




   Entwicklung
       http://pomcast.biz
     [iPhone developers]
WER IST DIESER STUFF MC?




            flickr.com/fasttorwa
WER IST DIESER STUFF MC?




            flickr.com/fasttorwa
WER IST DIESER STUFF MC?

Mai 2005: Pomcast.fr




                       flickr.com/fasttorwa
WER IST DIESER STUFF MC?

Mai 2005: Pomcast.fr

  Podcast #1 über Apple auf Französisch




                       flickr.c...
WER IST DIESER STUFF MC?

Mai 2005: Pomcast.fr

  Podcast #1 über Apple auf Französisch

Später: Deutsch, Englisch, Spanis...
WER IST DIESER STUFF MC?

Mai 2005: Pomcast.fr

  Podcast #1 über Apple auf Französisch

Später: Deutsch, Englisch, Spanis...
WER IST DIESER STUFF MC?

Mai 2005: Pomcast.fr

  Podcast #1 über Apple auf Französisch

Später: Deutsch, Englisch, Spanis...
WER IST DIESER STUFF MC?

Mai 2005: Pomcast.fr

  Podcast #1 über Apple auf Französisch

Später: Deutsch, Englisch, Spanis...
flickr.com/fasttorwa
WER IST DIESER MANUEL CARRA




           flickr.com/fasttorwa
WER IST DIESER MANUEL CARRA

Spanier in Belgien geboren...




                         flickr.com/fasttorwa
WER IST DIESER MANUEL CARRA

Spanier in Belgien geboren...

Wohnaft in Deutschland seit 2003




                         ...
WER IST DIESER MANUEL CARRA

Spanier in Belgien geboren...

Wohnaft in Deutschland seit 2003

Deutsche “Frau” + 2x2sprachi...
WER IST DIESER MANUEL CARRA

Spanier in Belgien geboren...

Wohnaft in Deutschland seit 2003

Deutsche “Frau” + 2x2sprachi...
WER IST DIESER MANUEL CARRA

Spanier in Belgien geboren...

Wohnaft in Deutschland seit 2003

Deutsche “Frau” + 2x2sprachi...
MOMENT... MICROSOFT???
STUFF MC: “JETZT MIT
COCOA® POWERS INSIDE”




              Source: moillusions.com
STUFF MC: “JETZT MIT
COCOA® POWERS INSIDE”




              Source: moillusions.com
STUFF MC: “JETZT MIT
COCOA® POWERS INSIDE”




              Source: moillusions.com
STUFF MC: “JETZT MIT
COCOA® POWERS INSIDE”

Seit Sommer ’08
iPhone Entwickler




                    Source: moillusions....
STUFF MC: “JETZT MIT
COCOA® POWERS INSIDE”

Seit Sommer ’08
iPhone Entwickler

Familie zu füttern :)




                 ...
STUFF MC: “JETZT MIT
COCOA® POWERS INSIDE”

Seit Sommer ’08
iPhone Entwickler

Familie zu füttern :)

Manchmal ist Cocoa
w...
STUFF MC: “JETZT MIT
COCOA® POWERS INSIDE”

Seit Sommer ’08
iPhone Entwickler

Familie zu füttern :)

Manchmal ist Cocoa
w...
Wie viele hier haben...


• Grundkenntnisse in O.O. Programmierung?
• schon mit .Net / Java entwickelt?
• schon für Mac / ...
FRÜHER MIT .NET/C#
FRÜHER MIT .NET/C#

Der Compiler war mein Schutz-Engel
FRÜHER MIT .NET/C#

Der Compiler war mein Schutz-Engel

  Kompiliert == Funktioniert...
FRÜHER MIT .NET/C#

Der Compiler war mein Schutz-Engel

  Kompiliert == Funktioniert...



Speicherverwaltung? Wie meinst ...
FRÜHER MIT .NET/C#

Der Compiler war mein Schutz-Engel

  Kompiliert == Funktioniert...



Speicherverwaltung? Wie meinst ...
FRÜHER MIT .NET/C#
FRÜHER MIT .NET/C#
FRÜHER MIT .NET/C#
FRÜHER MIT .NET/C#
COCOA / OBJ. C


 “Ich mag dich trotzdem”
FRAMEWORK: COCOA
FRAMEWORK: COCOA
 Mac OS X

    Cocoa

    Media

 Core Services

   Core OS
FRAMEWORK: COCOA
 Mac OS X

    Cocoa
                                       iPhone OS
    Media
                         ...
Core OS
iPhone OS
                OS X Kernel   Power Mgmt
Cocoa Touch
                Mach 3.0      Keychain
   Media
   ...
Core Services
iPhone OS
                Collections    Core Location
Cocoa Touch
                Address Book   Net Servic...
Media
iPhone OS
                Core Audio       JPG, PNG, TIFF
Cocoa Touch
                OpenAL           PDF
   Media
...
Cocoa Touch
iPhone OS
                Multi-Touch Events   Alerts
Cocoa Touch
                Multi-Touch Controls Web Vie...
COCOA TOUCH =
COCOA TOUCH =

NSString
COCOA TOUCH =

NSString

NSArray
COCOA TOUCH =

NSString

NSArray

NSUserDefault
COCOA TOUCH =

NSString

NSArray

NSUserDefault

NSXML
COCOA TOUCH =

NSString

NSArray

NSUserDefault
______
NSXML
COCOA TOUCH =

NSString

NSArray

NSUserDefault
______
NSXML

  TouchXML (Google ist dein Freund...)
COCOA TOUCH =

NSString

NSArray

NSUserDefault
______
NSXML

  TouchXML (Google ist dein Freund...)

... (und ...++?: Goo...
COCOA TOUCH =

                             FO
NSString

                                    U
NSArray
                   ...
FOUNDATION + ...?
FOUNDATION + ...?
FOUNDATION + ...?
FOUNDATION + ...?
FOUNDATION + ...?
FOUNDATION + ...?
FOUNDATION + ...?
FOUNDATION + ...?




UISearchBar
FOUNDATION + ...?



                            UIPickerView




UISearchBar
FOUNDATION + ...?



                            UIPickerView




UISearchBar
FOUNDATION + ...?



                            UIPickerView




UISearchBar
FOUNDATION + ...?



                UIKit                  UIPickerView
                 (Viel coolerer Name
            ...
TOOLS: XCODE & IB
TOOLS: XCODE & IB
TOOLS: XCODE & IB
TOOLS: XCODE & IB
TOOLS: XCODE & IB
TOOLS: XCODE & IB
TOOLS: XCODE & IB

  Jean-Marie Hullot
TOOLS: XCODE & IB
Interface Builder ist zum 1. Mal 1988 als Teil von
NeXTSTEP 0.8 in Erscheinung getreten. Es wurde
von Je...
TOOLS: XCODE & IB
Interface Builder ist zum 1. Mal 1988 als Teil von
NeXTSTEP 0.8 in Erscheinung getreten. Es wurde
von Je...
TOOLS: XCODE & IB
Interface Builder ist zum 1. Mal 1988 als Teil von
NeXTSTEP 0.8 in Erscheinung getreten. Es wurde
von Je...
INTERFACE BUILDER 3.1
INTERFACE BUILDER 3.1

Library & Inspektor
INTERFACE BUILDER 3.1

Library & Inspektor
INTERFACE BUILDER 3.1

Library & Inspektor

Dokument Window
INTERFACE BUILDER 3.1

Library & Inspektor

Dokument Window

Window, views, ...
SPRACHE: OBJECTIVE C
SPRACHE: OBJECTIVE C


Superset von C... mit Objects
SPRACHE: OBJECTIVE C


Superset von C... mit Objects

  @interface, @implementation
SPRACHE: OBJECTIVE C


Superset von C... mit Objects

  @interface, @implementation

Die “Square bracket gang”!
SPRACHE: OBJECTIVE C


Superset von C... mit Objects

  @interface, @implementation

Die “Square bracket gang”!
SPRACHE: OBJECTIVE C


Superset von C... mit Objects

  @interface, @implementation

Die “Square bracket gang”!

“Loosely ...
+-[]:
+-[]:

- (int)count; // instance Method
+-[]:

- (int)count; // instance Method

+ (NSString *)stringWithFormat:...; // class Method
+-[]:

- (int)count; // instance Method

+ (NSString *)stringWithFormat:...; // class Method


Methodenaufruf:
        • [...
+-[]:

- (int)count; // instance Method

+ (NSString *)stringWithFormat:...; // class Method


Methodenaufruf:
        • [...
+-[]:

- (int)count; // instance Method

+ (NSString *)stringWithFormat:...; // class Method


Methodenaufruf:
        • [...
+-[]:

- (int)count; // instance Method

+ (NSString *)stringWithFormat:...; // class Method


Methodenaufruf:
        • [...
+-[]:

- (int)count; // instance Method

+ (NSString *)stringWithFormat:...; // class Method


Methodenaufruf:
        • [...
+-[]:

- (int)count; // instance Method

+ (NSString *)stringWithFormat:...; // class Method


Methodenaufruf:
        • [...
HEADER DATEI
HEADER DATEI
HEADER DATEI
     @interface Person : NSObject
     {
       // instance variables
         NSString *name;
         int a...
HEADER DATEI
     @interface Person : NSObject
     {
       // instance variables
         NSString *name;
         int a...
HEADER DATEI
                                    @interface Person : NSObject
                                    {
      ...
HEADER DATEI
                                    @interface Person : NSObject
                                    {
      ...
HEADER DATEI
                                    @interface Person : NSObject
                                    {
      ...
HEADER DATEI
                                    @interface Person : NSObject
                                    {
      ...
HEADER DATEI
                                    @interface Person : NSObject
                                    {
      ...
HEADER DATEI
                                    @interface Person : NSObject
                                    {
      ...
HEADER DATEI
     @interface Person : NSObject
     {
       // instance variables
         NSString *name;
         int a...
HEADER DATEI
     @interface Person : NSObject
     {
       // instance variables
         NSString *name;
         int a...
HEADER DATEI
     @interface Person : NSObject
     {
       // instance variables
         NSString *name;
         int a...
IMMMPLEMATION
IMMMPLEMATION
IMMMPLEMATION
      #import quot;Person.hquot;

      @implementation Person

      - (int)age {
        return age;
     ...
IMMMPLEMATION
      #import quot;Person.hquot;

      @implementation Person

             age
      - (int)age {
        ...
IMMMPLEMATION
      #import quot;Person.hquot;

      @implementation Person

             age
      - (int)age {
      @s...
APP DELEGATE
APP DELEGATE

UIApplicationDelegate
APP DELEGATE

UIApplicationDelegate
Delegate? “Lass mich wissen, wenn...”
APP DELEGATE

  UIApplicationDelegate
  Delegate? “Lass mich wissen, wenn...”




- (void)applicationDidFinishLaunching:(U...
APP DELEGATE

  UIApplicationDelegate
  Delegate? “Lass mich wissen, wenn...”




- (void)applicationDidFinishLaunching:(U...
APP DELEGATE

  UIApplicationDelegate
  Delegate? “Lass mich wissen, wenn...”




- (void)applicationDidFinishLaunching:(U...
TARGET-ACTION
TARGET-ACTION
TARGET-ACTION

UIControlEventValueChanged
TARGET-ACTION

UIControlEventValueChanged




                                Controller
                                (...
TARGET-ACTION

UIControlEventValueChanged




                                                    Controller
             ...
TARGET-ACTION

UIControlEventValueChanged




                                                    Controller
             ...
TARGET-ACTION

UIControlEventValueChanged




                                                                   Controlle...
TARGET-ACTION

                                                         DEMO!
UIControlEventValueChanged
                 ...
TARGET-ACTION

UIControlEventValueChanged




                                                                   Controlle...
MEMORY MANAGEMENT
(NICHTS MIT GARBAGE COLLECTION AUF DER IPHONE...)
MEMORY MANAGEMENT
       (NICHTS MIT GARBAGE COLLECTION AUF DER IPHONE...)




Person *person = [[Person alloc] init];
MEMORY MANAGEMENT
       (NICHTS MIT GARBAGE COLLECTION AUF DER IPHONE...)




Person *person = [[Person alloc] init];

...
MEMORY MANAGEMENT
       (NICHTS MIT GARBAGE COLLECTION AUF DER IPHONE...)




Person *person = [[Person alloc] init];

.....
MEMORY MANAGEMENT
       (NICHTS MIT GARBAGE COLLECTION AUF DER IPHONE...)




Person *person = [[Person alloc] init];

.....
MEMORY MANAGEMENT
       (NICHTS MIT GARBAGE COLLECTION AUF DER IPHONE...)




Person *person = [[Person alloc] init];

.....
MEMORY MANAGEMENT
       (NICHTS MIT GARBAGE COLLECTION AUF DER IPHONE...)




Person *person = [[Person alloc] init];

.....
MEMORY MANAGEMENT
       (NICHTS MIT GARBAGE COLLECTION AUF DER IPHONE...)




Person *person = [[Person alloc] init];

.....
MEMORY MANAGEMENT
       (NICHTS MIT GARBAGE COLLECTION AUF DER IPHONE...)




Person *person = [[Person alloc] init];

.....
MEMORY MANAGEMENT
       (NICHTS MIT GARBAGE COLLECTION AUF DER IPHONE...)




Person *person = [[Person alloc] init];

.....
MEMORY MANAGEMENT
       (NICHTS MIT GARBAGE COLLECTION AUF DER IPHONE...)




Person *person = [[Person alloc] init];

.....
MEMORY MANAGEMENT
       (NICHTS MIT GARBAGE COLLECTION AUF DER IPHONE...)




Person *person = [[Person alloc] init];

.....
AUTO-RELEASE
(IMMER NOCH KEIN GARBAGE COLLECTION ABER FAST...)
AUTO-RELEASE
     (IMMER NOCH KEIN GARBAGE COLLECTION ABER FAST...)




Beispiel mit Strings

string = [[NSString alloc] i...
AUTO-RELEASE
     (IMMER NOCH KEIN GARBAGE COLLECTION ABER FAST...)




Beispiel mit Strings

string = [[NSString alloc] i...
AUTO-RELEASE
     (IMMER NOCH KEIN GARBAGE COLLECTION ABER FAST...)




Beispiel mit Strings

string = [[NSString alloc] i...
AUTO-RELEASE
     (IMMER NOCH KEIN GARBAGE COLLECTION ABER FAST...)




Beispiel mit Strings

string = [[NSString alloc] i...
WAS IST EIN VIEW?
WAS IST EIN VIEW?

Rechteckige Zone auf dem Bildschirm
WAS IST EIN VIEW?

Rechteckige Zone auf dem Bildschirm

Subklasse von UIResponder (Event handling class)
WAS IST EIN VIEW?

Rechteckige Zone auf dem Bildschirm

Subklasse von UIResponder (Event handling class)

Views hierarchis...
WAS IST EIN VIEW?

Rechteckige Zone auf dem Bildschirm

Subklasse von UIResponder (Event handling class)

Views hierarchis...
WAS IST EIN VIEW?

  Rechteckige Zone auf dem Bildschirm

  Subklasse von UIResponder (Event handling class)

  Views hier...
WAS IST EIN VIEW?

  Rechteckige Zone auf dem Bildschirm

  Subklasse von UIResponder (Event handling class)

  Views hier...
GEOMETRY
GEOMETRY
GEOMETRY
GEOMETRY
GEOMETRY




CGRectMake (x, y, width, height)
CGRect rect = CGRectMake (80.0, 54.0, 144.0, 72.0);
GEOMETRY



                                                       DEMO!
                                                 ...
CUSTOM VIEWS
CUSTOM VIEWS

Override - (void)drawRect:(CGRect)rect;
CUSTOM VIEWS

Override - (void)drawRect:(CGRect)rect;

CGContextMoveToPoint
CUSTOM VIEWS

Override - (void)drawRect:(CGRect)rect;

CGContextMoveToPoint

CGContextAddLineToPoint
CUSTOM VIEWS

Override - (void)drawRect:(CGRect)rect;

CGContextMoveToPoint

CGContextAddLineToPoint

CGContextClosePath
CUSTOM VIEWS

Override - (void)drawRect:(CGRect)rect;

CGContextMoveToPoint

CGContextAddLineToPoint

CGContextClosePath
CUSTOM VIEWS

Override - (void)drawRect:(CGRect)rect;

CGContextMoveToPoint

CGContextAddLineToPoint

CGContextClosePath

...
CUSTOM VIEWS

Override - (void)drawRect:(CGRect)rect;

CGContextMoveToPoint

CGContextAddLineToPoint

CGContextClosePath

...
BESSER ALS CORE
  ANIMATION
BESSER ALS CORE
          ANIMATION

UIViewAnimation
BESSER ALS CORE
                ANIMATION

UIViewAnimation
[UIView beginAnimations:nil context:nil];
BESSER ALS CORE
                ANIMATION

UIViewAnimation
[UIView beginAnimations:nil context:nil];

CGRect polygonFrame ...
BESSER ALS CORE
                ANIMATION

UIViewAnimation
[UIView beginAnimations:nil context:nil];

CGRect polygonFrame ...
BESSER ALS CORE
                ANIMATION

UIViewAnimation
[UIView beginAnimations:nil context:nil];

CGRect polygonFrame ...
BESSER ALS CORE
                ANIMATION

UIViewAnimation
[UIView beginAnimations:nil context:nil];

CGRect polygonFrame ...
BESSER ALS CORE
                ANIMATION

UIViewAnimation
[UIView beginAnimations:nil context:nil];

CGRect polygonFrame ...
BESSER ALS CORE
                ANIMATION

UIViewAnimation
[UIView beginAnimations:nil context:nil];

CGRect polygonFrame ...
SAVING STATE




           Demo
             7
SAVING STATE

NSUserDefaults




                      Demo
                        7
SAVING STATE

NSUserDefaults

XML WebServices (Rest, Json, ...)




                                    Demo
             ...
SAVING STATE

NSUserDefaults

XML WebServices (Rest, Json, ...)

SQLite DB (oder z.B. BaseTen)




                       ...
SAVING STATE

NSUserDefaults

XML WebServices (Rest, Json, ...)

SQLite DB (oder z.B. BaseTen)




                       ...
SAVING STATE

NSUserDefaults

XML WebServices (Rest, Json, ...)

SQLite DB (oder z.B. BaseTen)



Wäre nett, wenn das Prog...
EIN IPHONE IST KEIN MAC

        3.5” != 30”
     ( 320x480 != 2560x1600 )
BEISPIEL: MAIL
VIEWS & VIEW CONTROLLERS
VIEWS & VIEW CONTROLLERS

Basic Elemente (Views, Data, Logic)
VIEWS & VIEW CONTROLLERS

Basic Elemente (Views, Data, Logic)

Starting point (muss subklass werden)
VIEWS & VIEW CONTROLLERS

Basic Elemente (Views, Data, Logic)

Starting point (muss subklass werden)

Ist (kann) durch ein...
VIEWS & VIEW CONTROLLERS

Basic Elemente (Views, Data, Logic)

Starting point (muss subklass werden)

Ist (kann) durch ein...
VIEWS & VIEW CONTROLLERS

Basic Elemente (Views, Data, Logic)

Starting point (muss subklass werden)

Ist (kann) durch ein...
VIEWS & VIEW CONTROLLERS

Basic Elemente (Views, Data, Logic)

Starting point (muss subklass werden)

Ist (kann) durch ein...
VIEWS & VIEW CONTROLLERS

Basic Elemente (Views, Data, Logic)

Starting point (muss subklass werden)

Ist (kann) durch ein...
ZWEI WICHTIGE ELEMENTE
ZWEI WICHTIGE ELEMENTE
ZWEI WICHTIGE ELEMENTE




Navigation Controller
ZWEI WICHTIGE ELEMENTE



                      r
                  lle
                 o
              ntr
             ...
ZWEI WICHTIGE ELEMENTE



                      r
                  lle
                 o
              ntr
             ...
ZWEI WICHTIGE ELEMENTE



                      r
                  lle
                 o
              ntr
             ...
ZWEI WICHTIGE ELEMENTE



                                   r
                               lle
                        ...
ZWEI WICHTIGE ELEMENTE



                      r
                  lle
                 o
              ntr
             ...
ZWEI WICHTIGE ELEMENTE



                      r
                  lle
                 o
              ntr
             ...
ZWEI WICHTIGE ELEMENTE



                      r
                  lle
                 o
              ntr
             ...
ZWEI WICHTIGE ELEMENTE



                      r
                  lle
                 o
              ntr
             ...
ZWEI WICHTIGE ELEMENTE



                      r
                  lle
                 o
              ntr
             ...
ZWEI WICHTIGE ELEMENTE



                      r
                  lle
                 o
              ntr
             ...
ZWEI WICHTIGE ELEMENTE



                      r
                  lle
                 o
              ntr
             ...
BEIDE GLEICHZEITIG?
BEIDE GLEICHZEITIG?


  TabBarController
       NavigationController

       NavigationController

         ViewController
TABLE VIEWS
Table View Anatomy
                TABLE VIEWS
                   Plain Style

Table Header
                              ...
Table View Anatomy
                   Grouped Style

Table Header
                                    Section Header


   ...
WIE BEKOMME ICH MEINE
     DATEN DRIN?
WIE BEKOMME ICH MEINE
      DATEN DRIN?


- (NSInteger)tableView:(UITableView *)tableView
WIE BEKOMME ICH MEINE
        DATEN DRIN?


  - (NSInteger)tableView:(UITableView *)tableView
numberOfRowsInSection:(NSInt...
WIE BEKOMME ICH MEINE
        DATEN DRIN?


  - (NSInteger)tableView:(UITableView *)tableView
numberOfRowsInSection:(NSInt...
WIE BEKOMME ICH MEINE
        DATEN DRIN?


  - (NSInteger)tableView:(UITableView *)tableView
numberOfRowsInSection:(NSInt...
WIE BEKOMME ICH MEINE
         DATEN DRIN?


   - (NSInteger)tableView:(UITableView *)tableView
 numberOfRowsInSection:(NS...
WIE BEKOMME ICH MEINE
         DATEN DRIN?


   - (NSInteger)tableView:(UITableView *)tableView
 numberOfRowsInSection:(NS...
ONE MORE THING
ONE MORE THING

In diesem Vortrag wird über zwei Themen gesprochen: Die
Erfahrung als quot;Switcherquot; von .NET zu Cocoa...
ONE MORE THING

In diesem Vortrag wird über zwei Themen gesprochen: Die
Erfahrung als quot;Switcherquot; von .NET zu Cocoa...
ONE MORE THING

In diesem Vortrag wird über zwei Themen gesprochen: Die
Erfahrung als quot;Switcherquot; von .NET zu Cocoa...
DANKE!

FRAGEN?
Einfürung iPhone Entwicklung
Upcoming SlideShare
Loading in …5
×

Einfürung iPhone Entwicklung

2,715 views

Published on

Die Slides von meine Talk bei die Mac@Camp und DevHouseFriday in Köln.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,715
On SlideShare
0
From Embeds
0
Number of Embeds
133
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

  • “StuFF mc” bekannt als PodcasterPomcast.de: Podcast #1 über Apple mit eine lostiger französiche Akzent auf Deutsch
  • “StuFF mc” bekannt als PodcasterPomcast.de: Podcast #1 über Apple mit eine lostiger französiche Akzent auf Deutsch
  • “StuFF mc” bekannt als PodcasterPomcast.de: Podcast #1 über Apple mit eine lostiger französiche Akzent auf Deutsch
  • “StuFF mc” bekannt als PodcasterPomcast.de: Podcast #1 über Apple mit eine lostiger französiche Akzent auf Deutsch
  • “StuFF mc” bekannt als PodcasterPomcast.de: Podcast #1 über Apple mit eine lostiger französiche Akzent auf Deutsch
  • “StuFF mc” bekannt als PodcasterPomcast.de: Podcast #1 über Apple mit eine lostiger französiche Akzent auf Deutsch
  • “StuFF mc” bekannt als PodcasterPomcast.de: Podcast #1 über Apple mit eine lostiger französiche Akzent auf Deutsch






  • http://www.deviceguru.com/first-12-microsofties-then-and-now/
  • Weil jeder Microsoft Entwickler irgendwo einen Mac versteckt hat!
  • Weil jeder Microsoft Entwickler irgendwo einen Mac versteckt hat!
  • Weil jeder Microsoft Entwickler irgendwo einen Mac versteckt hat!
  • Weil jeder Microsoft Entwickler irgendwo einen Mac versteckt hat!
  • Weil jeder Microsoft Entwickler irgendwo einen Mac versteckt hat!
  • Weil jeder Microsoft Entwickler irgendwo einen Mac versteckt hat!

  • Maybe a small Object Oriented Note ?
  • http://en.wikipedia.org/wiki/RAM
    http://2.bp.blogspot.com/_FwEekRGWPs8/SYbv75XarwI/AAAAAAAAAhc/cXtc38IZzp0/S1600-R/Schutzengel_klein2.png
    http://www.priceindia.in/computer/wp-content/uploads/2008/10/ddr-ram.png
  • http://en.wikipedia.org/wiki/RAM
    http://2.bp.blogspot.com/_FwEekRGWPs8/SYbv75XarwI/AAAAAAAAAhc/cXtc38IZzp0/S1600-R/Schutzengel_klein2.png
    http://www.priceindia.in/computer/wp-content/uploads/2008/10/ddr-ram.png
  • http://en.wikipedia.org/wiki/RAM
    http://2.bp.blogspot.com/_FwEekRGWPs8/SYbv75XarwI/AAAAAAAAAhc/cXtc38IZzp0/S1600-R/Schutzengel_klein2.png
    http://www.priceindia.in/computer/wp-content/uploads/2008/10/ddr-ram.png
  • http://en.wikipedia.org/wiki/RAM
    http://2.bp.blogspot.com/_FwEekRGWPs8/SYbv75XarwI/AAAAAAAAAhc/cXtc38IZzp0/S1600-R/Schutzengel_klein2.png
    http://www.priceindia.in/computer/wp-content/uploads/2008/10/ddr-ram.png
  • http://en.wikipedia.org/wiki/RAM
    http://2.bp.blogspot.com/_FwEekRGWPs8/SYbv75XarwI/AAAAAAAAAhc/cXtc38IZzp0/S1600-R/Schutzengel_klein2.png
    http://www.priceindia.in/computer/wp-content/uploads/2008/10/ddr-ram.png
  • http://en.wikipedia.org/wiki/RAM
    http://2.bp.blogspot.com/_FwEekRGWPs8/SYbv75XarwI/AAAAAAAAAhc/cXtc38IZzp0/S1600-R/Schutzengel_klein2.png
    http://www.priceindia.in/computer/wp-content/uploads/2008/10/ddr-ram.png
  • http://en.wikipedia.org/wiki/RAM
    http://2.bp.blogspot.com/_FwEekRGWPs8/SYbv75XarwI/AAAAAAAAAhc/cXtc38IZzp0/S1600-R/Schutzengel_klein2.png
    http://www.priceindia.in/computer/wp-content/uploads/2008/10/ddr-ram.png
  • http://en.wikipedia.org/wiki/RAM
    http://2.bp.blogspot.com/_FwEekRGWPs8/SYbv75XarwI/AAAAAAAAAhc/cXtc38IZzp0/S1600-R/Schutzengel_klein2.png
    http://www.priceindia.in/computer/wp-content/uploads/2008/10/ddr-ram.png
  • http://en.wikipedia.org/wiki/RAM
    http://2.bp.blogspot.com/_FwEekRGWPs8/SYbv75XarwI/AAAAAAAAAhc/cXtc38IZzp0/S1600-R/Schutzengel_klein2.png
    http://www.priceindia.in/computer/wp-content/uploads/2008/10/ddr-ram.png
  • http://en.wikipedia.org/wiki/RAM
    http://2.bp.blogspot.com/_FwEekRGWPs8/SYbv75XarwI/AAAAAAAAAhc/cXtc38IZzp0/S1600-R/Schutzengel_klein2.png
    http://www.priceindia.in/computer/wp-content/uploads/2008/10/ddr-ram.png
  • http://en.wikipedia.org/wiki/RAM
    http://2.bp.blogspot.com/_FwEekRGWPs8/SYbv75XarwI/AAAAAAAAAhc/cXtc38IZzp0/S1600-R/Schutzengel_klein2.png
    http://www.priceindia.in/computer/wp-content/uploads/2008/10/ddr-ram.png







  • Beim aller 1. iPhone Projekt alles mit NSXML im Simulator :)
    Show some examples of NSString & NSArray methods (see Stanford Lecture 2)
    Insert some graphics showing that foundation on the iPhone is a SUBSET of foundation on the Mac
    NSXMLParser!
  • Beim aller 1. iPhone Projekt alles mit NSXML im Simulator :)
    Show some examples of NSString & NSArray methods (see Stanford Lecture 2)
    Insert some graphics showing that foundation on the iPhone is a SUBSET of foundation on the Mac
    NSXMLParser!
  • Beim aller 1. iPhone Projekt alles mit NSXML im Simulator :)
    Show some examples of NSString & NSArray methods (see Stanford Lecture 2)
    Insert some graphics showing that foundation on the iPhone is a SUBSET of foundation on the Mac
    NSXMLParser!
  • Beim aller 1. iPhone Projekt alles mit NSXML im Simulator :)
    Show some examples of NSString & NSArray methods (see Stanford Lecture 2)
    Insert some graphics showing that foundation on the iPhone is a SUBSET of foundation on the Mac
    NSXMLParser!
  • Beim aller 1. iPhone Projekt alles mit NSXML im Simulator :)
    Show some examples of NSString & NSArray methods (see Stanford Lecture 2)
    Insert some graphics showing that foundation on the iPhone is a SUBSET of foundation on the Mac
    NSXMLParser!
  • Beim aller 1. iPhone Projekt alles mit NSXML im Simulator :)
    Show some examples of NSString & NSArray methods (see Stanford Lecture 2)
    Insert some graphics showing that foundation on the iPhone is a SUBSET of foundation on the Mac
    NSXMLParser!
  • Beim aller 1. iPhone Projekt alles mit NSXML im Simulator :)
    Show some examples of NSString & NSArray methods (see Stanford Lecture 2)
    Insert some graphics showing that foundation on the iPhone is a SUBSET of foundation on the Mac
    NSXMLParser!
  • Beim aller 1. iPhone Projekt alles mit NSXML im Simulator :)
    Show some examples of NSString & NSArray methods (see Stanford Lecture 2)
    Insert some graphics showing that foundation on the iPhone is a SUBSET of foundation on the Mac
    NSXMLParser!
  • auch: UILabel, UIImageView, UIWebView, ...
  • auch: UILabel, UIImageView, UIWebView, ...
  • auch: UILabel, UIImageView, UIWebView, ...
  • auch: UILabel, UIImageView, UIWebView, ...
  • auch: UILabel, UIImageView, UIWebView, ...
  • auch: UILabel, UIImageView, UIWebView, ...
  • auch: UILabel, UIImageView, UIWebView, ...
  • auch: UILabel, UIImageView, UIWebView, ...
  • auch: UILabel, UIImageView, UIWebView, ...
  • auch: UILabel, UIImageView, UIWebView, ...
  • auch: UILabel, UIImageView, UIWebView, ...
  • ==> NACHER:

    - Xcode starten
    - Settings zeigen
    - Neue Projekt Box...
  • ==> NACHER:

    - Xcode starten
    - Settings zeigen
    - Neue Projekt Box...
  • ==> NACHER:

    - Xcode starten
    - Settings zeigen
    - Neue Projekt Box...
  • ==> NACHER:

    - Xcode starten
    - Settings zeigen
    - Neue Projekt Box...
  • http://docs.sun.com/app/docs/doc/802-2110/6i63kq4sf?a=view
  • http://docs.sun.com/app/docs/doc/802-2110/6i63kq4sf?a=view
  • http://docs.sun.com/app/docs/doc/802-2110/6i63kq4sf?a=view
  • http://docs.sun.com/app/docs/doc/802-2110/6i63kq4sf?a=view
  • ==> NACHER:

    - Neue Window based Projekt
    - “Poly.xcodeproj”
    - MainWindow.xib anklicken
    - Library & Inspector zeigen
    - UILabel & UISlider hinzufugen
    - In Xcode starten... (Demo1)
  • ==> NACHER:

    - Neue Window based Projekt
    - “Poly.xcodeproj”
    - MainWindow.xib anklicken
    - Library & Inspector zeigen
    - UILabel & UISlider hinzufugen
    - In Xcode starten... (Demo1)
  • ==> NACHER:

    - Neue Window based Projekt
    - “Poly.xcodeproj”
    - MainWindow.xib anklicken
    - Library & Inspector zeigen
    - UILabel & UISlider hinzufugen
    - In Xcode starten... (Demo1)
  • ==> NACHER:

    - Neue Window based Projekt
    - “Poly.xcodeproj”
    - MainWindow.xib anklicken
    - Library & Inspector zeigen
    - UILabel & UISlider hinzufugen
    - In Xcode starten... (Demo1)
  • ==> NACHER:

    - Neue Window based Projekt
    - “Poly.xcodeproj”
    - MainWindow.xib anklicken
    - Library & Inspector zeigen
    - UILabel & UISlider hinzufugen
    - In Xcode starten... (Demo1)
  • ==> NACHER:

    - Neue Window based Projekt
    - “Poly.xcodeproj”
    - MainWindow.xib anklicken
    - Library & Inspector zeigen
    - UILabel & UISlider hinzufugen
    - In Xcode starten... (Demo1)
  • ==> NACHER:

    - Neue Window based Projekt
    - “Poly.xcodeproj”
    - MainWindow.xib anklicken
    - Library & Inspector zeigen
    - UILabel & UISlider hinzufugen
    - In Xcode starten... (Demo1)
  • ==> NACHER:

    - Neue Window based Projekt
    - “Poly.xcodeproj”
    - MainWindow.xib anklicken
    - Library & Inspector zeigen
    - UILabel & UISlider hinzufugen
    - In Xcode starten... (Demo1)
  • Error from Debugger: Reply contains invalid hex digit 116
    - main.m zeigen (“es ist C”)
    - Eckige Klammern zeigen
    - [self notExistingFunction] -> compiler warning aber runtime error...
  • Error from Debugger: Reply contains invalid hex digit 116
    - main.m zeigen (“es ist C”)
    - Eckige Klammern zeigen
    - [self notExistingFunction] -> compiler warning aber runtime error...
  • Error from Debugger: Reply contains invalid hex digit 116
    - main.m zeigen (“es ist C”)
    - Eckige Klammern zeigen
    - [self notExistingFunction] -> compiler warning aber runtime error...
  • Error from Debugger: Reply contains invalid hex digit 116
    - main.m zeigen (“es ist C”)
    - Eckige Klammern zeigen
    - [self notExistingFunction] -> compiler warning aber runtime error...
  • Error from Debugger: Reply contains invalid hex digit 116
    - main.m zeigen (“es ist C”)
    - Eckige Klammern zeigen
    - [self notExistingFunction] -> compiler warning aber runtime error...














  • Maybe not even show properties...
  • Maybe not even show properties...
  • Maybe not even show properties...
  • Maybe not even show properties...
  • Maybe not even show properties...
  • Maybe not even show properties...
  • Maybe not even show properties...
  • Maybe not even show properties...
  • Maybe not even show properties...
  • Maybe not even show properties...
  • Maybe not even show properties...
  • Maybe not even show properties...









  • (Demo2)
    IBOutlet UISlider *slider;
    IBOutlet UILabel *label;
    int sides;

    - (IBAction)updateNumber;
    {
    sides = (int)[slider value];
    NSString *string = [NSString stringWithFormat:@\"%d sides\", sides];
    label.text = string;
    }

    (Demo3)
    // remove IBOutlet UISlider

    sides = (int)((UISlider*)sender).value;
    @interface UIControl
    - (void)addTarget:(id)target action:(SEL)action
    forControlEvents:(UIControlEvents)controlEvents;
    - (void)removeTarget:(id)target action:(SEL)action
    forControlEvents:(UIControlEvents)controlEvents;
    @end

  • (Demo2)
    IBOutlet UISlider *slider;
    IBOutlet UILabel *label;
    int sides;

    - (IBAction)updateNumber;
    {
    sides = (int)[slider value];
    NSString *string = [NSString stringWithFormat:@\"%d sides\", sides];
    label.text = string;
    }

    (Demo3)
    // remove IBOutlet UISlider

    sides = (int)((UISlider*)sender).value;
    @interface UIControl
    - (void)addTarget:(id)target action:(SEL)action
    forControlEvents:(UIControlEvents)controlEvents;
    - (void)removeTarget:(id)target action:(SEL)action
    forControlEvents:(UIControlEvents)controlEvents;
    @end

  • (Demo2)
    IBOutlet UISlider *slider;
    IBOutlet UILabel *label;
    int sides;

    - (IBAction)updateNumber;
    {
    sides = (int)[slider value];
    NSString *string = [NSString stringWithFormat:@\"%d sides\", sides];
    label.text = string;
    }

    (Demo3)
    // remove IBOutlet UISlider

    sides = (int)((UISlider*)sender).value;
    @interface UIControl
    - (void)addTarget:(id)target action:(SEL)action
    forControlEvents:(UIControlEvents)controlEvents;
    - (void)removeTarget:(id)target action:(SEL)action
    forControlEvents:(UIControlEvents)controlEvents;
    @end

  • (Demo2)
    IBOutlet UISlider *slider;
    IBOutlet UILabel *label;
    int sides;

    - (IBAction)updateNumber;
    {
    sides = (int)[slider value];
    NSString *string = [NSString stringWithFormat:@\"%d sides\", sides];
    label.text = string;
    }

    (Demo3)
    // remove IBOutlet UISlider

    sides = (int)((UISlider*)sender).value;
    @interface UIControl
    - (void)addTarget:(id)target action:(SEL)action
    forControlEvents:(UIControlEvents)controlEvents;
    - (void)removeTarget:(id)target action:(SEL)action
    forControlEvents:(UIControlEvents)controlEvents;
    @end

  • (Demo2)
    IBOutlet UISlider *slider;
    IBOutlet UILabel *label;
    int sides;

    - (IBAction)updateNumber;
    {
    sides = (int)[slider value];
    NSString *string = [NSString stringWithFormat:@\"%d sides\", sides];
    label.text = string;
    }

    (Demo3)
    // remove IBOutlet UISlider

    sides = (int)((UISlider*)sender).value;
    @interface UIControl
    - (void)addTarget:(id)target action:(SEL)action
    forControlEvents:(UIControlEvents)controlEvents;
    - (void)removeTarget:(id)target action:(SEL)action
    forControlEvents:(UIControlEvents)controlEvents;
    @end

  • (Demo2)
    IBOutlet UISlider *slider;
    IBOutlet UILabel *label;
    int sides;

    - (IBAction)updateNumber;
    {
    sides = (int)[slider value];
    NSString *string = [NSString stringWithFormat:@\"%d sides\", sides];
    label.text = string;
    }

    (Demo3)
    // remove IBOutlet UISlider

    sides = (int)((UISlider*)sender).value;
    @interface UIControl
    - (void)addTarget:(id)target action:(SEL)action
    forControlEvents:(UIControlEvents)controlEvents;
    - (void)removeTarget:(id)target action:(SEL)action
    forControlEvents:(UIControlEvents)controlEvents;
    @end

  • (Demo2)
    IBOutlet UISlider *slider;
    IBOutlet UILabel *label;
    int sides;

    - (IBAction)updateNumber;
    {
    sides = (int)[slider value];
    NSString *string = [NSString stringWithFormat:@\"%d sides\", sides];
    label.text = string;
    }

    (Demo3)
    // remove IBOutlet UISlider

    sides = (int)((UISlider*)sender).value;
    @interface UIControl
    - (void)addTarget:(id)target action:(SEL)action
    forControlEvents:(UIControlEvents)controlEvents;
    - (void)removeTarget:(id)target action:(SEL)action
    forControlEvents:(UIControlEvents)controlEvents;
    @end

  • (Demo2)
    IBOutlet UISlider *slider;
    IBOutlet UILabel *label;
    int sides;

    - (IBAction)updateNumber;
    {
    sides = (int)[slider value];
    NSString *string = [NSString stringWithFormat:@\"%d sides\", sides];
    label.text = string;
    }

    (Demo3)
    // remove IBOutlet UISlider

    sides = (int)((UISlider*)sender).value;
    @interface UIControl
    - (void)addTarget:(id)target action:(SEL)action
    forControlEvents:(UIControlEvents)controlEvents;
    - (void)removeTarget:(id)target action:(SEL)action
    forControlEvents:(UIControlEvents)controlEvents;
    @end

  • (Demo2)
    IBOutlet UISlider *slider;
    IBOutlet UILabel *label;
    int sides;

    - (IBAction)updateNumber;
    {
    sides = (int)[slider value];
    NSString *string = [NSString stringWithFormat:@\"%d sides\", sides];
    label.text = string;
    }

    (Demo3)
    // remove IBOutlet UISlider

    sides = (int)((UISlider*)sender).value;
    @interface UIControl
    - (void)addTarget:(id)target action:(SEL)action
    forControlEvents:(UIControlEvents)controlEvents;
    - (void)removeTarget:(id)target action:(SEL)action
    forControlEvents:(UIControlEvents)controlEvents;
    @end


  • http://cocoadevcentral.com/d/learn_objectivec/
    * NIE dealloc selber aufrufen, außer für [super dealloc]
  • http://cocoadevcentral.com/d/learn_objectivec/
    * NIE dealloc selber aufrufen, außer für [super dealloc]
  • http://cocoadevcentral.com/d/learn_objectivec/
    * NIE dealloc selber aufrufen, außer für [super dealloc]
  • http://cocoadevcentral.com/d/learn_objectivec/
    * NIE dealloc selber aufrufen, außer für [super dealloc]
  • http://cocoadevcentral.com/d/learn_objectivec/
    * NIE dealloc selber aufrufen, außer für [super dealloc]
  • http://cocoadevcentral.com/d/learn_objectivec/
    * NIE dealloc selber aufrufen, außer für [super dealloc]
  • http://cocoadevcentral.com/d/learn_objectivec/
    * NIE dealloc selber aufrufen, außer für [super dealloc]
  • http://cocoadevcentral.com/d/learn_objectivec/
    * NIE dealloc selber aufrufen, außer für [super dealloc]
  • http://cocoadevcentral.com/d/learn_objectivec/
    * NIE dealloc selber aufrufen, außer für [super dealloc]
  • http://cocoadevcentral.com/d/learn_objectivec/
    * NIE dealloc selber aufrufen, außer für [super dealloc]
  • http://cocoadevcentral.com/d/learn_objectivec/
    * NIE dealloc selber aufrufen, außer für [super dealloc]




  • Model: Weiß nur über Data
    View: Weiß nichts (fast) über Data
    Controller: Glue...
  • HIER SIND WIR MIT STEPHIE...
  • HIER SIND WIR MIT STEPHIE...
  • HIER SIND WIR MIT STEPHIE...
  • HIER SIND WIR MIT STEPHIE...
  • HIER SIND WIR MIT STEPHIE...
  • HIER SIND WIR MIT STEPHIE...





  • !! NIE drawRect aufrufen!

    DEMO 5
  • !! NIE drawRect aufrufen!

    DEMO 5
  • !! NIE drawRect aufrufen!

    DEMO 5
  • !! NIE drawRect aufrufen!

    DEMO 5
  • !! NIE drawRect aufrufen!

    DEMO 5
  • !! NIE drawRect aufrufen!

    DEMO 5
  • !! NIE drawRect aufrufen!

    DEMO 5










  • Bitte Soap vergessen :)
  • Bitte Soap vergessen :)
  • Bitte Soap vergessen :)
  • Bitte Soap vergessen :)
  • Bitte Soap vergessen :)











  • Nav Bar : Stack
    Hint: self.navigationItem.backButtonItem

    Wenn noch zeit: TableViews!

  • Nav Bar : Stack
    Hint: self.navigationItem.backButtonItem

    Wenn noch zeit: TableViews!

  • Nav Bar : Stack
    Hint: self.navigationItem.backButtonItem

    Wenn noch zeit: TableViews!

  • Nav Bar : Stack
    Hint: self.navigationItem.backButtonItem

    Wenn noch zeit: TableViews!

  • Nav Bar : Stack
    Hint: self.navigationItem.backButtonItem

    Wenn noch zeit: TableViews!

  • Nav Bar : Stack
    Hint: self.navigationItem.backButtonItem

    Wenn noch zeit: TableViews!

  • Nav Bar : Stack
    Hint: self.navigationItem.backButtonItem

    Wenn noch zeit: TableViews!

  • Nav Bar : Stack
    Hint: self.navigationItem.backButtonItem

    Wenn noch zeit: TableViews!

  • Nav Bar : Stack
    Hint: self.navigationItem.backButtonItem

    Wenn noch zeit: TableViews!

  • Nav Bar : Stack
    Hint: self.navigationItem.backButtonItem

    Wenn noch zeit: TableViews!

  • Nav Bar : Stack
    Hint: self.navigationItem.backButtonItem

    Wenn noch zeit: TableViews!

  • Nav Bar : Stack
    Hint: self.navigationItem.backButtonItem

    Wenn noch zeit: TableViews!

  • Nav Bar : Stack
    Hint: self.navigationItem.backButtonItem

    Wenn noch zeit: TableViews!















  • Einfürung iPhone Entwicklung

    1. 1. EINFÜHRUNG IN DIE Entwicklung http://pomcast.biz [iPhone developers]
    2. 2. WER IST DIESER STUFF MC? flickr.com/fasttorwa
    3. 3. WER IST DIESER STUFF MC? flickr.com/fasttorwa
    4. 4. WER IST DIESER STUFF MC? Mai 2005: Pomcast.fr flickr.com/fasttorwa
    5. 5. WER IST DIESER STUFF MC? Mai 2005: Pomcast.fr Podcast #1 über Apple auf Französisch flickr.com/fasttorwa
    6. 6. WER IST DIESER STUFF MC? Mai 2005: Pomcast.fr Podcast #1 über Apple auf Französisch Später: Deutsch, Englisch, Spanisch flickr.com/fasttorwa
    7. 7. WER IST DIESER STUFF MC? Mai 2005: Pomcast.fr Podcast #1 über Apple auf Französisch Später: Deutsch, Englisch, Spanisch Video Interviews flickr.com/fasttorwa
    8. 8. WER IST DIESER STUFF MC? Mai 2005: Pomcast.fr Podcast #1 über Apple auf Französisch Später: Deutsch, Englisch, Spanisch Video Interviews flickr.com/fasttorwa
    9. 9. WER IST DIESER STUFF MC? Mai 2005: Pomcast.fr Podcast #1 über Apple auf Französisch Später: Deutsch, Englisch, Spanisch Video Interviews StuFF mc? flickr.com/fasttorwa
    10. 10. flickr.com/fasttorwa
    11. 11. WER IST DIESER MANUEL CARRA flickr.com/fasttorwa
    12. 12. WER IST DIESER MANUEL CARRA Spanier in Belgien geboren... flickr.com/fasttorwa
    13. 13. WER IST DIESER MANUEL CARRA Spanier in Belgien geboren... Wohnaft in Deutschland seit 2003 flickr.com/fasttorwa
    14. 14. WER IST DIESER MANUEL CARRA Spanier in Belgien geboren... Wohnaft in Deutschland seit 2003 Deutsche “Frau” + 2x2sprachige Töchter flickr.com/fasttorwa
    15. 15. WER IST DIESER MANUEL CARRA Spanier in Belgien geboren... Wohnaft in Deutschland seit 2003 Deutsche “Frau” + 2x2sprachige Töchter Beruflich Informatiker seit 1997 als... flickr.com/fasttorwa
    16. 16. WER IST DIESER MANUEL CARRA Spanier in Belgien geboren... Wohnaft in Deutschland seit 2003 Deutsche “Frau” + 2x2sprachige Töchter Beruflich Informatiker seit 1997 als... Microsoft Entwickler... flickr.com/fasttorwa
    17. 17. MOMENT... MICROSOFT???
    18. 18. STUFF MC: “JETZT MIT COCOA® POWERS INSIDE” Source: moillusions.com
    19. 19. STUFF MC: “JETZT MIT COCOA® POWERS INSIDE” Source: moillusions.com
    20. 20. STUFF MC: “JETZT MIT COCOA® POWERS INSIDE” Source: moillusions.com
    21. 21. STUFF MC: “JETZT MIT COCOA® POWERS INSIDE” Seit Sommer ’08 iPhone Entwickler Source: moillusions.com
    22. 22. STUFF MC: “JETZT MIT COCOA® POWERS INSIDE” Seit Sommer ’08 iPhone Entwickler Familie zu füttern :) Source: moillusions.com
    23. 23. STUFF MC: “JETZT MIT COCOA® POWERS INSIDE” Seit Sommer ’08 iPhone Entwickler Familie zu füttern :) Manchmal ist Cocoa wie Windows... Source: moillusions.com
    24. 24. STUFF MC: “JETZT MIT COCOA® POWERS INSIDE” Seit Sommer ’08 iPhone Entwickler Familie zu füttern :) Manchmal ist Cocoa wie Windows... Learning Curve ist nicht soooo einfach... Source: moillusions.com
    25. 25. Wie viele hier haben... • Grundkenntnisse in O.O. Programmierung? • schon mit .Net / Java entwickelt? • schon für Mac / iPhone entwickelt?
    26. 26. FRÜHER MIT .NET/C#
    27. 27. FRÜHER MIT .NET/C# Der Compiler war mein Schutz-Engel
    28. 28. FRÜHER MIT .NET/C# Der Compiler war mein Schutz-Engel Kompiliert == Funktioniert...
    29. 29. FRÜHER MIT .NET/C# Der Compiler war mein Schutz-Engel Kompiliert == Funktioniert... Speicherverwaltung? Wie meinst du das?
    30. 30. FRÜHER MIT .NET/C# Der Compiler war mein Schutz-Engel Kompiliert == Funktioniert... Speicherverwaltung? Wie meinst du das? Visual Studio.NET!!!
    31. 31. FRÜHER MIT .NET/C#
    32. 32. FRÜHER MIT .NET/C#
    33. 33. FRÜHER MIT .NET/C#
    34. 34. FRÜHER MIT .NET/C#
    35. 35. COCOA / OBJ. C “Ich mag dich trotzdem”
    36. 36. FRAMEWORK: COCOA
    37. 37. FRAMEWORK: COCOA Mac OS X Cocoa Media Core Services Core OS
    38. 38. FRAMEWORK: COCOA Mac OS X Cocoa iPhone OS Media Cocoa Touch Core Services Media Core OS Core Services Core OS Thursday, April 2, 2009
    39. 39. Core OS iPhone OS OS X Kernel Power Mgmt Cocoa Touch Mach 3.0 Keychain Media BSD Certificates Core Services Sockets File System Security Bonjour Core OS
    40. 40. Core Services iPhone OS Collections Core Location Cocoa Touch Address Book Net Services Media Networking Threading Core Services File Access Preferences SQLite URL utilities Core OS
    41. 41. Media iPhone OS Core Audio JPG, PNG, TIFF Cocoa Touch OpenAL PDF Media Audio Mixing Quartz (2D) Core Services Audio Recording Core Animation Video Playback OpenGL ES Core OS
    42. 42. Cocoa Touch iPhone OS Multi-Touch Events Alerts Cocoa Touch Multi-Touch Controls Web Views Media Accelerometer People Picker Core Services View Hierarchy Image Picker Localization Controllers Core OS
    43. 43. COCOA TOUCH =
    44. 44. COCOA TOUCH = NSString
    45. 45. COCOA TOUCH = NSString NSArray
    46. 46. COCOA TOUCH = NSString NSArray NSUserDefault
    47. 47. COCOA TOUCH = NSString NSArray NSUserDefault NSXML
    48. 48. COCOA TOUCH = NSString NSArray NSUserDefault ______ NSXML
    49. 49. COCOA TOUCH = NSString NSArray NSUserDefault ______ NSXML TouchXML (Google ist dein Freund...)
    50. 50. COCOA TOUCH = NSString NSArray NSUserDefault ______ NSXML TouchXML (Google ist dein Freund...) ... (und ...++?: Google ist dein Freund)
    51. 51. COCOA TOUCH = FO NSString U NSArray N DA NSUserDefault TI ______ NSXML ON TouchXML (Google ist dein Freund...) ... (und ...++?: Google ist dein Freund)
    52. 52. FOUNDATION + ...?
    53. 53. FOUNDATION + ...?
    54. 54. FOUNDATION + ...?
    55. 55. FOUNDATION + ...?
    56. 56. FOUNDATION + ...?
    57. 57. FOUNDATION + ...?
    58. 58. FOUNDATION + ...?
    59. 59. FOUNDATION + ...? UISearchBar
    60. 60. FOUNDATION + ...? UIPickerView UISearchBar
    61. 61. FOUNDATION + ...? UIPickerView UISearchBar
    62. 62. FOUNDATION + ...? UIPickerView UISearchBar
    63. 63. FOUNDATION + ...? UIKit UIPickerView (Viel coolerer Name - und Prefix - als AppKit) UISearchBar
    64. 64. TOOLS: XCODE & IB
    65. 65. TOOLS: XCODE & IB
    66. 66. TOOLS: XCODE & IB
    67. 67. TOOLS: XCODE & IB
    68. 68. TOOLS: XCODE & IB
    69. 69. TOOLS: XCODE & IB
    70. 70. TOOLS: XCODE & IB Jean-Marie Hullot
    71. 71. TOOLS: XCODE & IB Interface Builder ist zum 1. Mal 1988 als Teil von NeXTSTEP 0.8 in Erscheinung getreten. Es wurde von Jean-Marie Hullot erfunden und entwickelt.
    72. 72. TOOLS: XCODE & IB Interface Builder ist zum 1. Mal 1988 als Teil von NeXTSTEP 0.8 in Erscheinung getreten. Es wurde von Jean-Marie Hullot erfunden und entwickelt.
    73. 73. TOOLS: XCODE & IB Interface Builder ist zum 1. Mal 1988 als Teil von NeXTSTEP 0.8 in Erscheinung getreten. Es wurde von Jean-Marie Hullot erfunden und entwickelt.
    74. 74. INTERFACE BUILDER 3.1
    75. 75. INTERFACE BUILDER 3.1 Library & Inspektor
    76. 76. INTERFACE BUILDER 3.1 Library & Inspektor
    77. 77. INTERFACE BUILDER 3.1 Library & Inspektor Dokument Window
    78. 78. INTERFACE BUILDER 3.1 Library & Inspektor Dokument Window Window, views, ...
    79. 79. SPRACHE: OBJECTIVE C
    80. 80. SPRACHE: OBJECTIVE C Superset von C... mit Objects
    81. 81. SPRACHE: OBJECTIVE C Superset von C... mit Objects @interface, @implementation
    82. 82. SPRACHE: OBJECTIVE C Superset von C... mit Objects @interface, @implementation Die “Square bracket gang”!
    83. 83. SPRACHE: OBJECTIVE C Superset von C... mit Objects @interface, @implementation Die “Square bracket gang”!
    84. 84. SPRACHE: OBJECTIVE C Superset von C... mit Objects @interface, @implementation Die “Square bracket gang”! “Loosely Typed”, d.h. “Welche Compiler?” :)
    85. 85. +-[]:
    86. 86. +-[]: - (int)count; // instance Method
    87. 87. +-[]: - (int)count; // instance Method + (NSString *)stringWithFormat:...; // class Method
    88. 88. +-[]: - (int)count; // instance Method + (NSString *)stringWithFormat:...; // class Method Methodenaufruf: • [receiver tuDas]
    89. 89. +-[]: - (int)count; // instance Method + (NSString *)stringWithFormat:...; // class Method Methodenaufruf: • [receiver tuDas]
    90. 90. +-[]: - (int)count; // instance Method + (NSString *)stringWithFormat:...; // class Method Methodenaufruf: • [receiver tuDas] • [receiver tuDas:aberSo]
    91. 91. +-[]: - (int)count; // instance Method + (NSString *)stringWithFormat:...; // class Method Methodenaufruf: • [receiver tuDas] • [receiver tuDas:aberSo]
    92. 92. +-[]: - (int)count; // instance Method + (NSString *)stringWithFormat:...; // class Method Methodenaufruf: • [receiver tuDas] • [receiver tuDas:aberSo] • [receiver tuDas:aberSo undMit:jemand]
    93. 93. +-[]: - (int)count; // instance Method + (NSString *)stringWithFormat:...; // class Method Methodenaufruf: • [receiver tuDas] • [receiver tuDas:aberSo] • [receiver tuDas:aberSo undMit:jemand]
    94. 94. HEADER DATEI
    95. 95. HEADER DATEI
    96. 96. HEADER DATEI @interface Person : NSObject { // instance variables NSString *name; int age; } // method declarations - (NSString *)name; - (void)setName:(NSString *)value; - (int)age; - (void)setAge:(int)age; - (BOOL)canLegallyVote; - (void)castBallot; @end
    97. 97. HEADER DATEI @interface Person : NSObject { // instance variables NSString *name; int age; } // method declarations - (NSString *)name; - (void)setName:(NSString *)value; - (int)age; - (void)setAge:(int)age; - (BOOL)canLegallyVote; - (void)castBallot; @end
    98. 98. HEADER DATEI @interface Person : NSObject { // instance variables NSString *name; int age; } // method declarations - (NSString *)name; - (void)setName:(NSString *)value; - (int)age; - (void)setAge:(int)age; - (BOOL)canLegallyVote; Person *myPerson = [Person new]; - (void)castBallot; NSString *name = [myPerson name]; @end [myPerson setName:@“New Name”];
    99. 99. HEADER DATEI @interface Person : NSObject { // instance variables NSString *name; int age; } // method declarations - (NSString *)name; - (void)setName:(NSString *)value; - (int)age; - (void)setAge:(int)age; - (BOOL)canLegallyVote; Person *myPerson = [Person new]; - (void)castBallot; NSString *name = [myPerson name]; @end [myPerson setName:@“New Name”];
    100. 100. HEADER DATEI @interface Person : NSObject { // instance variables NSString *name; int age; } // method declarations - (NSString *)name; - (void)setName:(NSString *)value; - (int)age; - (void)setAge:(int)age; - (BOOL)canLegallyVote; Person *myPerson = [Person new]; - (void)castBallot; NSString *name = [myPerson name]; @end [myPerson setName:@“New Name”];
    101. 101. HEADER DATEI @interface Person : NSObject { // instance variables NSString *name; int age; } // method declarations - (NSString *)name; - (void)setName:(NSString *)value; - (int)age; - (void)setAge:(int)age; - (BOOL)canLegallyVote; Person *myPerson = [Person new]; - (void)castBallot; NSString *name = [myPerson name]; @end [myPerson setName:@“New Name”];
    102. 102. HEADER DATEI @interface Person : NSObject { // instance variables NSString *name; int age; } // method declarations - (NSString *)name; - (void)setName:(NSString *)value; - (int)age; - (void)setAge:(int)age; - (BOOL)canLegallyVote; Person *myPerson = [Person new]; - (void)castBallot; NSString *name = [myPerson name]; @end [myPerson setName:@“New Name”];
    103. 103. HEADER DATEI @interface Person : NSObject { // instance variables NSString *name; int age; } // method declarations - (NSString *)name; - (void)setName:(NSString *)value; - (int)age; - (void)setAge:(int)age; - (BOOL)canLegallyVote; Person *myPerson = [Person new]; - (void)castBallot; NSString *name = [myPerson name]; @end [myPerson setName:@“New Name”];
    104. 104. HEADER DATEI @interface Person : NSObject { // instance variables NSString *name; int age; } // method declarations - (NSString *)name; - (void)setName:(NSString *)value; - (int)age; - (void)setAge:(int)age; - (BOOL)canLegallyVote; - (void)castBallot; @end
    105. 105. HEADER DATEI @interface Person : NSObject { // instance variables NSString *name; int age; } // method declarations name - (NSString *)name; - (void)setName:(NSString *)value; age - (int)age; - (void)setAge:(int)age; canLegallyVote - (BOOL)canLegallyVote; - (void)castBallot; @end
    106. 106. HEADER DATEI @interface Person : NSObject { // instance variables NSString *name; int age; } // method declarations (ObjC 2.0) //property declarations name - (NSString *)name; - (void)setName:(NSString *)value; @property int age; age - (int)age; @property NSString *name - (void)setAge:(int)age; @property (readonly) canLegallyVote; canLegallyVote - (BOOL)canLegallyVote; - (void)castBallot; @end
    107. 107. IMMMPLEMATION
    108. 108. IMMMPLEMATION
    109. 109. IMMMPLEMATION #import quot;Person.hquot; @implementation Person - (int)age { return age; } - (void)setAge:(int)value { age = value; } - (BOOL)canLegallyVote { return ([self age] >= 18); } @end
    110. 110. IMMMPLEMATION #import quot;Person.hquot; @implementation Person age - (int)age { return age; } - (void)setAge:(int)value { age = value; } canLegallyVote - (BOOL)canLegallyVote { return ([self age] >= 18); } @end
    111. 111. IMMMPLEMATION #import quot;Person.hquot; @implementation Person age - (int)age { @synthetise name; return age; } - (void)setAge:(int)value { age = value; } canLegallyVote - (BOOL)canLegallyVote { return ([self age] >= 18); } @end
    112. 112. APP DELEGATE
    113. 113. APP DELEGATE UIApplicationDelegate
    114. 114. APP DELEGATE UIApplicationDelegate Delegate? “Lass mich wissen, wenn...”
    115. 115. APP DELEGATE UIApplicationDelegate Delegate? “Lass mich wissen, wenn...” - (void)applicationDidFinishLaunching:(UIApplication *)application;
    116. 116. APP DELEGATE UIApplicationDelegate Delegate? “Lass mich wissen, wenn...” - (void)applicationDidFinishLaunching:(UIApplication *)application; - (void)applicationWillTerminate:(UIApplication *)application;
    117. 117. APP DELEGATE UIApplicationDelegate Delegate? “Lass mich wissen, wenn...” - (void)applicationDidFinishLaunching:(UIApplication *)application; - (void)applicationWillTerminate:(UIApplication *)application; - (void)applicationDidReceiveMemoryWarning:(UIApplication *)application;
    118. 118. TARGET-ACTION
    119. 119. TARGET-ACTION
    120. 120. TARGET-ACTION UIControlEventValueChanged
    121. 121. TARGET-ACTION UIControlEventValueChanged Controller (myObject)
    122. 122. TARGET-ACTION UIControlEventValueChanged Controller (myObject) - (void)updateNumber
    123. 123. TARGET-ACTION UIControlEventValueChanged Controller (myObject) - (void)updateNumber target: myObject action: @selector(updateNumber) event: UIControlEventValueChanged
    124. 124. TARGET-ACTION UIControlEventValueChanged Controller (myObject) - (void)updateNumber - (IBAction)updateNumber; target: myObject - (IBAction)updateNumber:(id)sender; action: @selector(updateNumber) - (IBAction)updateNumber:(id)sender withEvent:(UIEvent *)event; event: UIControlEventValueChanged
    125. 125. TARGET-ACTION DEMO! UIControlEventValueChanged “SLIDE ME BABY” Controller (myObject) - (void)updateNumber - (IBAction)updateNumber; target: myObject - (IBAction)updateNumber:(id)sender; action: @selector(updateNumber) - (IBAction)updateNumber:(id)sender withEvent:(UIEvent *)event; event: UIControlEventValueChanged
    126. 126. TARGET-ACTION UIControlEventValueChanged Controller (myObject) - (void)updateNumber - (IBAction)updateNumber; target: myObject - (IBAction)updateNumber:(id)sender; action: @selector(updateNumber) - (IBAction)updateNumber:(id)sender withEvent:(UIEvent *)event; event: UIControlEventValueChanged
    127. 127. MEMORY MANAGEMENT (NICHTS MIT GARBAGE COLLECTION AUF DER IPHONE...)
    128. 128. MEMORY MANAGEMENT (NICHTS MIT GARBAGE COLLECTION AUF DER IPHONE...) Person *person = [[Person alloc] init];
    129. 129. MEMORY MANAGEMENT (NICHTS MIT GARBAGE COLLECTION AUF DER IPHONE...) Person *person = [[Person alloc] init]; ...
    130. 130. MEMORY MANAGEMENT (NICHTS MIT GARBAGE COLLECTION AUF DER IPHONE...) Person *person = [[Person alloc] init]; ... Allocation Destruction C malloc free ObjC alloc dealloc (release)
    131. 131. MEMORY MANAGEMENT (NICHTS MIT GARBAGE COLLECTION AUF DER IPHONE...) Person *person = [[Person alloc] init]; ... Allocation Destruction [person release]; C malloc free ObjC alloc dealloc (release)
    132. 132. MEMORY MANAGEMENT (NICHTS MIT GARBAGE COLLECTION AUF DER IPHONE...) Person *person = [[Person alloc] init]; ... Allocation Destruction [person release]; C malloc free ObjC alloc dealloc (release)
    133. 133. MEMORY MANAGEMENT (NICHTS MIT GARBAGE COLLECTION AUF DER IPHONE...) Person *person = [[Person alloc] init]; ... Allocation Destruction [person release]; C malloc free ObjC alloc dealloc (release) Retain Count:
    134. 134. MEMORY MANAGEMENT (NICHTS MIT GARBAGE COLLECTION AUF DER IPHONE...) Person *person = [[Person alloc] init]; ... Allocation Destruction [person release]; C malloc free ObjC alloc dealloc (release) Retain Count:
    135. 135. MEMORY MANAGEMENT (NICHTS MIT GARBAGE COLLECTION AUF DER IPHONE...) Person *person = [[Person alloc] init]; ... Allocation Destruction [person release]; C malloc free ObjC alloc dealloc (release) [person tuWas]; Retain Count:
    136. 136. MEMORY MANAGEMENT (NICHTS MIT GARBAGE COLLECTION AUF DER IPHONE...) Person *person = [[Person alloc] init]; ... Allocation Destruction [person release]; C malloc free ObjC alloc dealloc (release) // CRASH! [person tuWas]; Retain Count:
    137. 137. MEMORY MANAGEMENT (NICHTS MIT GARBAGE COLLECTION AUF DER IPHONE...) Person *person = [[Person alloc] init]; ... Allocation Destruction [person release]; C malloc free ObjC alloc dealloc person = nil; (release) // CRASH! [person tuWas]; Retain Count:
    138. 138. MEMORY MANAGEMENT (NICHTS MIT GARBAGE COLLECTION AUF DER IPHONE...) Person *person = [[Person alloc] init]; ... Allocation Destruction [person release]; C malloc free ObjC alloc dealloc person = nil; (release) // // CRASH! Keine Effekt! [person tuWas]; Retain Count:
    139. 139. AUTO-RELEASE (IMMER NOCH KEIN GARBAGE COLLECTION ABER FAST...)
    140. 140. AUTO-RELEASE (IMMER NOCH KEIN GARBAGE COLLECTION ABER FAST...) Beispiel mit Strings string = [[NSString alloc] initWithFormat:@”Hi %@”, person] [label setText:string];
    141. 141. AUTO-RELEASE (IMMER NOCH KEIN GARBAGE COLLECTION ABER FAST...) Beispiel mit Strings string = [[NSString alloc] initWithFormat:@”Hi %@”, person] [label setText:string]; [string release];
    142. 142. AUTO-RELEASE (IMMER NOCH KEIN GARBAGE COLLECTION ABER FAST...) Beispiel mit Strings string = [[NSString alloc] initWithFormat:@”Hi %@”, person] [label setText:string]; [string release]; geht auch so string = [NSString stringWithFormat:@”Hi %@”, person]; [label setText:string];
    143. 143. AUTO-RELEASE (IMMER NOCH KEIN GARBAGE COLLECTION ABER FAST...) Beispiel mit Strings string = [[NSString alloc] initWithFormat:@”Hi %@”, person] [label setText:string]; [string release]; geht auch so string = [NSString stringWithFormat:@”Hi %@”, person]; [label setText:string]; // brauche ich nicht...
    144. 144. WAS IST EIN VIEW?
    145. 145. WAS IST EIN VIEW? Rechteckige Zone auf dem Bildschirm
    146. 146. WAS IST EIN VIEW? Rechteckige Zone auf dem Bildschirm Subklasse von UIResponder (Event handling class)
    147. 147. WAS IST EIN VIEW? Rechteckige Zone auf dem Bildschirm Subklasse von UIResponder (Event handling class) Views hierarchisch arrangiert.
    148. 148. WAS IST EIN VIEW? Rechteckige Zone auf dem Bildschirm Subklasse von UIResponder (Event handling class) Views hierarchisch arrangiert. Jede HAT eine Superview und KANN Subviews haben.
    149. 149. WAS IST EIN VIEW? Rechteckige Zone auf dem Bildschirm Subklasse von UIResponder (Event handling class) Views hierarchisch arrangiert. Jede HAT eine Superview und KANN Subviews haben. - (void)addSubview:(UIView *)view;
    150. 150. WAS IST EIN VIEW? Rechteckige Zone auf dem Bildschirm Subklasse von UIResponder (Event handling class) Views hierarchisch arrangiert. Jede HAT eine Superview und KANN Subviews haben. - (void)addSubview:(UIView *)view; - (void)removeFromSuperview;
    151. 151. GEOMETRY
    152. 152. GEOMETRY
    153. 153. GEOMETRY
    154. 154. GEOMETRY
    155. 155. GEOMETRY CGRectMake (x, y, width, height) CGRect rect = CGRectMake (80.0, 54.0, 144.0, 72.0);
    156. 156. GEOMETRY DEMO! “CLICK ME BABY” CGRectMake (x, y, width, height) CGRect rect = CGRectMake (80.0, 54.0, 144.0, 72.0);
    157. 157. CUSTOM VIEWS
    158. 158. CUSTOM VIEWS Override - (void)drawRect:(CGRect)rect;
    159. 159. CUSTOM VIEWS Override - (void)drawRect:(CGRect)rect; CGContextMoveToPoint
    160. 160. CUSTOM VIEWS Override - (void)drawRect:(CGRect)rect; CGContextMoveToPoint CGContextAddLineToPoint
    161. 161. CUSTOM VIEWS Override - (void)drawRect:(CGRect)rect; CGContextMoveToPoint CGContextAddLineToPoint CGContextClosePath
    162. 162. CUSTOM VIEWS Override - (void)drawRect:(CGRect)rect; CGContextMoveToPoint CGContextAddLineToPoint CGContextClosePath
    163. 163. CUSTOM VIEWS Override - (void)drawRect:(CGRect)rect; CGContextMoveToPoint CGContextAddLineToPoint CGContextClosePath Override touchesBegan...
    164. 164. CUSTOM VIEWS Override - (void)drawRect:(CGRect)rect; CGContextMoveToPoint CGContextAddLineToPoint CGContextClosePath Override touchesBegan...
    165. 165. BESSER ALS CORE ANIMATION
    166. 166. BESSER ALS CORE ANIMATION UIViewAnimation
    167. 167. BESSER ALS CORE ANIMATION UIViewAnimation [UIView beginAnimations:nil context:nil];
    168. 168. BESSER ALS CORE ANIMATION UIViewAnimation [UIView beginAnimations:nil context:nil]; CGRect polygonFrame = polygonView.frame;
    169. 169. BESSER ALS CORE ANIMATION UIViewAnimation [UIView beginAnimations:nil context:nil]; CGRect polygonFrame = polygonView.frame; polygonFrame.origin.y += 200;
    170. 170. BESSER ALS CORE ANIMATION UIViewAnimation [UIView beginAnimations:nil context:nil]; CGRect polygonFrame = polygonView.frame; polygonFrame.origin.y += 200; polygonView.frame = polygonFrame;
    171. 171. BESSER ALS CORE ANIMATION UIViewAnimation [UIView beginAnimations:nil context:nil]; CGRect polygonFrame = polygonView.frame; polygonFrame.origin.y += 200; polygonView.frame = polygonFrame; [UIView commitAnimations];
    172. 172. BESSER ALS CORE ANIMATION UIViewAnimation [UIView beginAnimations:nil context:nil]; CGRect polygonFrame = polygonView.frame; polygonFrame.origin.y += 200; polygonView.frame = polygonFrame; [UIView commitAnimations];
    173. 173. BESSER ALS CORE ANIMATION UIViewAnimation [UIView beginAnimations:nil context:nil]; CGRect polygonFrame = polygonView.frame; polygonFrame.origin.y += 200; polygonView.frame = polygonFrame; [UIView commitAnimations]; Demo 6
    174. 174. SAVING STATE Demo 7
    175. 175. SAVING STATE NSUserDefaults Demo 7
    176. 176. SAVING STATE NSUserDefaults XML WebServices (Rest, Json, ...) Demo 7
    177. 177. SAVING STATE NSUserDefaults XML WebServices (Rest, Json, ...) SQLite DB (oder z.B. BaseTen) Demo 7
    178. 178. SAVING STATE NSUserDefaults XML WebServices (Rest, Json, ...) SQLite DB (oder z.B. BaseTen) Demo 7
    179. 179. SAVING STATE NSUserDefaults XML WebServices (Rest, Json, ...) SQLite DB (oder z.B. BaseTen) Wäre nett, wenn das Programm sich errinnert, ... Demo 7
    180. 180. EIN IPHONE IST KEIN MAC 3.5” != 30” ( 320x480 != 2560x1600 )
    181. 181. BEISPIEL: MAIL
    182. 182. VIEWS & VIEW CONTROLLERS
    183. 183. VIEWS & VIEW CONTROLLERS Basic Elemente (Views, Data, Logic)
    184. 184. VIEWS & VIEW CONTROLLERS Basic Elemente (Views, Data, Logic) Starting point (muss subklass werden)
    185. 185. VIEWS & VIEW CONTROLLERS Basic Elemente (Views, Data, Logic) Starting point (muss subklass werden) Ist (kann) durch ein NIB representiert werden
    186. 186. VIEWS & VIEW CONTROLLERS Basic Elemente (Views, Data, Logic) Starting point (muss subklass werden) Ist (kann) durch ein NIB representiert werden
    187. 187. VIEWS & VIEW CONTROLLERS Basic Elemente (Views, Data, Logic) Starting point (muss subklass werden) Ist (kann) durch ein NIB representiert werden - initWithNibName:bundle:
    188. 188. VIEWS & VIEW CONTROLLERS Basic Elemente (Views, Data, Logic) Starting point (muss subklass werden) Ist (kann) durch ein NIB representiert werden - initWithNibName:bundle: - (void)viewDidLoad
    189. 189. VIEWS & VIEW CONTROLLERS Basic Elemente (Views, Data, Logic) Starting point (muss subklass werden) Ist (kann) durch ein NIB representiert werden - initWithNibName:bundle: - (void)viewDidLoad - (void)viewWillAppear:(BOOL)animated
    190. 190. ZWEI WICHTIGE ELEMENTE
    191. 191. ZWEI WICHTIGE ELEMENTE
    192. 192. ZWEI WICHTIGE ELEMENTE Navigation Controller
    193. 193. ZWEI WICHTIGE ELEMENTE r lle o ntr Co iew tV oo /R p To Navigation Controller
    194. 194. ZWEI WICHTIGE ELEMENTE r lle o ntr Co iew tV oo /R p To Navigation Controller
    195. 195. ZWEI WICHTIGE ELEMENTE r lle o ntr Co iew tV oo /R p To Navigation Controller
    196. 196. ZWEI WICHTIGE ELEMENTE r lle o ntr - (id)initWithRootViewController:(UIViewController *)rootViewController; Co - (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated; iew - (UIViewController *)popViewControllerAnimated:(BOOL)animated; tV oo /R p To Navigation Controller
    197. 197. ZWEI WICHTIGE ELEMENTE r lle o ntr Co iew tV oo /R p To Navigation Controller
    198. 198. ZWEI WICHTIGE ELEMENTE r lle o ntr Co iew tV oo /R DEMO 8! p To PUSH & POP Navigation Controller
    199. 199. ZWEI WICHTIGE ELEMENTE r lle o ntr Co iew tV oo /R p To Navigation Controller
    200. 200. ZWEI WICHTIGE ELEMENTE r lle o ntr Co iew tV oo /R p To Navigation Controller
    201. 201. ZWEI WICHTIGE ELEMENTE r lle o ntr Co iew tV oo /R p To Navigation Controller
    202. 202. ZWEI WICHTIGE ELEMENTE r lle o ntr Co iew tV oo /R p To Navigation Controller Tab Bar Controller
    203. 203. ZWEI WICHTIGE ELEMENTE r lle o ntr Co iew tV oo /R p To Navigation Controller Tab Bar Controller
    204. 204. BEIDE GLEICHZEITIG?
    205. 205. BEIDE GLEICHZEITIG? TabBarController NavigationController NavigationController ViewController
    206. 206. TABLE VIEWS
    207. 207. Table View Anatomy TABLE VIEWS Plain Style Table Header Section Header Table Cell Section Footer Section Table Footer
    208. 208. Table View Anatomy Grouped Style Table Header Section Header Table Cell Section Footer Section Table Footer
    209. 209. WIE BEKOMME ICH MEINE DATEN DRIN?
    210. 210. WIE BEKOMME ICH MEINE DATEN DRIN? - (NSInteger)tableView:(UITableView *)tableView
    211. 211. WIE BEKOMME ICH MEINE DATEN DRIN? - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
    212. 212. WIE BEKOMME ICH MEINE DATEN DRIN? - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
    213. 213. WIE BEKOMME ICH MEINE DATEN DRIN? - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
    214. 214. WIE BEKOMME ICH MEINE DATEN DRIN? - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section; - (UITableViewCell *)tableView:(UITableView *)tableView
    215. 215. WIE BEKOMME ICH MEINE DATEN DRIN? - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section; - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
    216. 216. ONE MORE THING
    217. 217. ONE MORE THING In diesem Vortrag wird über zwei Themen gesprochen: Die Erfahrung als quot;Switcherquot; von .NET zu Cocoa/Obj. C und eine kleine Einführung (mit Demo) in die iPhone Entwicklung.
    218. 218. ONE MORE THING In diesem Vortrag wird über zwei Themen gesprochen: Die Erfahrung als quot;Switcherquot; von .NET zu Cocoa/Obj. C und eine kleine Einführung (mit Demo) in die iPhone Entwicklung. Was kann man alles mit Dingen wie Core Animation, Core Location, und anderen Dingen machen.
    219. 219. ONE MORE THING In diesem Vortrag wird über zwei Themen gesprochen: Die Erfahrung als quot;Switcherquot; von .NET zu Cocoa/Obj. C und eine kleine Einführung (mit Demo) in die iPhone Entwicklung. Was kann man alles mit Dingen wie Core Animation, Core Location, und anderen Dingen machen. CORE LOCATION??? ;)
    220. 220. DANKE! FRAGEN?

    ×