SlideShare ist ein Scribd-Unternehmen logo
1 von 47
Downloaden Sie, um offline zu lesen
iOS
                       Immersion
                         Pascal Batty




                                        1
mardi 11 décembre 12
Je veux !



                                   2
mardi 11 décembre 12
๏ Idée de génie
                   ๏ Maquettes révolutionnaires
                   ๏ API de fou
                   ๏ App Mobile


                                                  3
mardi 11 décembre 12
Mobile ?
                                  4
mardi 11 décembre 12
6.x
                       69,5 %



                                         5.x
                                        24,8 %
                                 4.x
                                5,7 %




                       Version ?
                                                 5
mardi 11 décembre 12
Moyen ?
                                 6
mardi 11 décembre 12
7
mardi 11 décembre 12
Objective-C : Historique




                                                  8
mardi 11 décembre 12
1980




                       N a is s a n c e d 'Obje c t ive - C
                                                              9
mardi 11 décembre 12
1986




                       NeXTs te p
mardi 11 décembre 12
2001




                       M acOS X
                                  11
mardi 11 décembre 12
2007




                       iphone
                                12
mardi 11 décembre 12
2008




                       iP h o ne OS SDK
                                          13
mardi 11 décembre 12
2009 2010               2011       2012

            iOS 3      iOS 4     iOS 5     iOS 6   …

     Xcode 3.2                 Xcode 4.0




mardi 11 décembre 12
Objective-C : Technique




                                                 15
mardi 11 décembre 12
Framework
                                  Runtime




                                   ObjC

                       Compilo               Langage




                                                       16
mardi 11 décembre 12
#define
                       try-catch   enum

        Références                      int main(int argc, char** argv)


                                                       struct
                         char*
     Désallocation
                                                          Headers
            uint
                                                  Allocation
               Pointeurs
                                                        int[]
                              typedef

                   malloc()             #ifdef
                                                                  17
mardi 11 décembre 12
Pointeurs

                                   18
mardi 11 décembre 12
Méthode de classe                  @class

                             nil       Propriétés
        NSString                                      Protocoles

                   Retain
                                                                Release




        Polymorphisme                               Méthode d’instance

  @protocol                        Héritage   @property

                            NSObject
                                                                    19
mardi 11 décembre 12
NSObject

                                  20
mardi 11 décembre 12
nil

                             21
mardi 11 décembre 12
Boîte à outils


                   • NSString
                   • NSArray
                   • NSDictionary
                   • NSSet
                                             22
mardi 11 décembre 12
Boîte à outils


                   • NSString       • NSMutableString
                   • NSArray        • NSMutableArray
                   • NSDictionary   • NSMutableDictionary
                   • NSSet          • NSMutableSet
                                                        22
mardi 11 décembre 12
Syntaxe




                                 23
mardi 11 décembre 12
Déclaration

         #import <Foundation/Foundation.h>

         @interface Person:NSObject

         @property NSString *name;

         - (id)initWithName:(NSString *)name;

         + (id)personWithName:(NSString *)name;

         @end
                                                  24
mardi 11 décembre 12
Implémentation
         #import "Person.h"

         @implementation Person
         @synthesize name = _name;

         - (id)initWithName:(NSString *)name {
         …
         }

         + (id)personWithName:(NSString *)name {
         …
         }
         @end

                                                   25
mardi 11 décembre 12
Envoi de message

              ObjC     [teller sayHello];
     Java/C#           teller.sayHello();

              ObjC     [teller sayHelloTo:person];
     Java/C#           teller.sayHello(person);


                                                  26
mardi 11 décembre 12
Envoi de message
                             ObjC

   [teller say:message to:person];


           teller.say(message, person);
                            Java/C#




                                          27
mardi 11 décembre 12
Sélecteur



                       say:to:

                                     28
mardi 11 décembre 12
Initialisation, Propriétés
   Person *person1 = [[Person alloc] init];
   Person *person2 = [[Person alloc] initWithName:@"Noé"];

   Person *person3 = [Person personWithName:@"Jim"];


                        [person1 setName:@"Jen"];
        Setter
                        person2.name = @"Pam"];


                        NSString *name = [person1 name];
        Getter
                        NSString *otherName = person2.name;



                                                              29
mardi 11 décembre 12
Gestion de la mémoire




                                               30
mardi 11 décembre 12
mardi 11 décembre 12
Reference Counting




                                            32
mardi 11 décembre 12
Setter (retain)

      - (void)setText:(NSString *)textValue {
               if (textValue != _text) {
                       [textValue retain];
                       [_text release];
                       _text = textValue;
               }
      }
                                               33
mardi 11 décembre 12
Ouf…




          Automatic Reference Counting

                                     34
mardi 11 décembre 12
Anatomie d’une App




                                            35
mardi 11 décembre 12
Révisions

                              Controller




                       View                Model


                                                   36
mardi 11 décembre 12
Interface Utilisateur

                               Outlets


                               Actions



              ViewController             Interface


                                                     37
mardi 11 décembre 12
View
                            ≠
                       ViewController

                                        38
mardi 11 décembre 12
Délégation
                               UITextField

     @protocol UITextFieldDelegate
          • textFieldShouldBeginEditing:
          • textFieldDidBeginEditing:
          • textFieldShouldEndEditing:
          • textFieldDidEndEditing:
          • textField:shouldChangeCharactersInRange:replacementString:
          • textFieldShouldClear:
          • textFieldShouldReturn:

                                                                   39
mardi 11 décembre 12
Délégation



                       UITextField        delegate




                                                     40
mardi 11 décembre 12
Délégation
          L’utilisateur a
       appuyé sur Retour !



                       UITextField               delegate
               [delegate textFieldShouldReturn:self]




                                                            40
mardi 11 décembre 12
Délégation
          L’utilisateur a
       appuyé sur Retour !



                       UITextField               delegate
               [delegate textFieldShouldReturn:self]


                                               Ok, je lance une
                                                 recherche

                                                                  40
mardi 11 décembre 12
Là où tout commence…



                            AppDelegate



                                              41
mardi 11 décembre 12
Pause !
                        puis demo


                                    42
mardi 11 décembre 12
Pour commencer
                       http://developer.apple.com/ios




                                                        43
mardi 11 décembre 12
Merci



                               44
mardi 11 décembre 12

Weitere ähnliche Inhalte

Andere mochten auch

Gastronomie lyonnaises ( héberger par Slide Share)
Gastronomie lyonnaises ( héberger par Slide Share)Gastronomie lyonnaises ( héberger par Slide Share)
Gastronomie lyonnaises ( héberger par Slide Share)mjdelary
 
Salut! je m´appelle
Salut! je m´appelleSalut! je m´appelle
Salut! je m´appelleCarol Guedes
 
Partir à la découverte de l’art lyonnais
Partir à la découverte de l’art lyonnaisPartir à la découverte de l’art lyonnais
Partir à la découverte de l’art lyonnaisamelieetpauline
 
Le Cerveau : sa Plasticité & son Adaptation
Le Cerveau : sa Plasticité & son AdaptationLe Cerveau : sa Plasticité & son Adaptation
Le Cerveau : sa Plasticité & son AdaptationIngrid Meucci
 
Comment internet modifie-t-il notre consommation audiovisuelle ?
Comment internet modifie-t-il notre consommation audiovisuelle ?Comment internet modifie-t-il notre consommation audiovisuelle ?
Comment internet modifie-t-il notre consommation audiovisuelle ?asdillrow
 
092304 request interventiondoj (mms flsa matter)
092304 request interventiondoj (mms flsa matter)092304 request interventiondoj (mms flsa matter)
092304 request interventiondoj (mms flsa matter)VogelDenise
 
Backdwarf projet corssmedia utkukaplan versionfinale
Backdwarf projet corssmedia utkukaplan versionfinaleBackdwarf projet corssmedia utkukaplan versionfinale
Backdwarf projet corssmedia utkukaplan versionfinalePascal Minoche
 
Formation réseaux sociaux – Commerce et Ecommerce
Formation réseaux sociaux – Commerce et EcommerceFormation réseaux sociaux – Commerce et Ecommerce
Formation réseaux sociaux – Commerce et EcommerceL'Autre Média - Formation
 
Archiva on glassfish
Archiva on glassfishArchiva on glassfish
Archiva on glassfishMikkaz
 
Les S@PINS
Les S@PINSLes S@PINS
Les S@PINSAldmi
 
Atopica coverage
Atopica coverage Atopica coverage
Atopica coverage atopica
 
Contents page stages
Contents page stagesContents page stages
Contents page stageswilson101
 
French 021912 email tounitedstatescongress
French   021912 email tounitedstatescongressFrench   021912 email tounitedstatescongress
French 021912 email tounitedstatescongressVogelDenise
 
Sinibaldi C&F - Catalogue de formations
Sinibaldi C&F - Catalogue de formationsSinibaldi C&F - Catalogue de formations
Sinibaldi C&F - Catalogue de formationsVéronique Moussa
 
Présentation Michel Agnola 4e table ronde
Présentation Michel Agnola 4e table rondePrésentation Michel Agnola 4e table ronde
Présentation Michel Agnola 4e table rondelpjmn2011
 
Projet de carrière
Projet de carrière Projet de carrière
Projet de carrière cat_rioux
 

Andere mochten auch (20)

Pitch1 lumen
Pitch1 lumenPitch1 lumen
Pitch1 lumen
 
Gastronomie lyonnaises ( héberger par Slide Share)
Gastronomie lyonnaises ( héberger par Slide Share)Gastronomie lyonnaises ( héberger par Slide Share)
Gastronomie lyonnaises ( héberger par Slide Share)
 
Salut! je m´appelle
Salut! je m´appelleSalut! je m´appelle
Salut! je m´appelle
 
Partir à la découverte de l’art lyonnais
Partir à la découverte de l’art lyonnaisPartir à la découverte de l’art lyonnais
Partir à la découverte de l’art lyonnais
 
Le Cerveau : sa Plasticité & son Adaptation
Le Cerveau : sa Plasticité & son AdaptationLe Cerveau : sa Plasticité & son Adaptation
Le Cerveau : sa Plasticité & son Adaptation
 
Comment internet modifie-t-il notre consommation audiovisuelle ?
Comment internet modifie-t-il notre consommation audiovisuelle ?Comment internet modifie-t-il notre consommation audiovisuelle ?
Comment internet modifie-t-il notre consommation audiovisuelle ?
 
092304 request interventiondoj (mms flsa matter)
092304 request interventiondoj (mms flsa matter)092304 request interventiondoj (mms flsa matter)
092304 request interventiondoj (mms flsa matter)
 
Dompter Google
Dompter GoogleDompter Google
Dompter Google
 
Backdwarf projet corssmedia utkukaplan versionfinale
Backdwarf projet corssmedia utkukaplan versionfinaleBackdwarf projet corssmedia utkukaplan versionfinale
Backdwarf projet corssmedia utkukaplan versionfinale
 
Formation réseaux sociaux – Commerce et Ecommerce
Formation réseaux sociaux – Commerce et EcommerceFormation réseaux sociaux – Commerce et Ecommerce
Formation réseaux sociaux – Commerce et Ecommerce
 
Archiva on glassfish
Archiva on glassfishArchiva on glassfish
Archiva on glassfish
 
Les S@PINS
Les S@PINSLes S@PINS
Les S@PINS
 
Atopica coverage
Atopica coverage Atopica coverage
Atopica coverage
 
Contents page stages
Contents page stagesContents page stages
Contents page stages
 
French 021912 email tounitedstatescongress
French   021912 email tounitedstatescongressFrench   021912 email tounitedstatescongress
French 021912 email tounitedstatescongress
 
Jodete noé x d
Jodete noé x dJodete noé x d
Jodete noé x d
 
Sinibaldi C&F - Catalogue de formations
Sinibaldi C&F - Catalogue de formationsSinibaldi C&F - Catalogue de formations
Sinibaldi C&F - Catalogue de formations
 
Présentation Michel Agnola 4e table ronde
Présentation Michel Agnola 4e table rondePrésentation Michel Agnola 4e table ronde
Présentation Michel Agnola 4e table ronde
 
Lectures
LecturesLectures
Lectures
 
Projet de carrière
Projet de carrière Projet de carrière
Projet de carrière
 

Mehr von SOAT

Back from Microsoft //Build 2018
Back from Microsoft //Build 2018Back from Microsoft //Build 2018
Back from Microsoft //Build 2018SOAT
 
L'entreprise libérée
L'entreprise libéréeL'entreprise libérée
L'entreprise libéréeSOAT
 
Amélioration continue, c'est l'affaire de tous !
Amélioration continue, c'est l'affaire de tous !Amélioration continue, c'est l'affaire de tous !
Amélioration continue, c'est l'affaire de tous !SOAT
 
JAVA 8 : Migration et enjeux stratégiques en entreprise
JAVA 8 : Migration et enjeux stratégiques en entrepriseJAVA 8 : Migration et enjeux stratégiques en entreprise
JAVA 8 : Migration et enjeux stratégiques en entrepriseSOAT
 
ARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUES
ARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUESARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUES
ARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUESSOAT
 
3/3 : The path to CDI 2.0 - Antoine Sabot-Durand
3/3 : The path to CDI 2.0 - Antoine Sabot-Durand3/3 : The path to CDI 2.0 - Antoine Sabot-Durand
3/3 : The path to CDI 2.0 - Antoine Sabot-DurandSOAT
 
1/3 : introduction to CDI - Antoine Sabot-Durand
1/3 : introduction to CDI - Antoine Sabot-Durand1/3 : introduction to CDI - Antoine Sabot-Durand
1/3 : introduction to CDI - Antoine Sabot-DurandSOAT
 
2/3 : CDI advanced - Antoine Sabot-Durand
2/3 : CDI advanced - Antoine Sabot-Durand2/3 : CDI advanced - Antoine Sabot-Durand
2/3 : CDI advanced - Antoine Sabot-DurandSOAT
 
Angular JS - Paterne Gaye-Guingnido
Angular JS - Paterne Gaye-Guingnido Angular JS - Paterne Gaye-Guingnido
Angular JS - Paterne Gaye-Guingnido SOAT
 
Dans l'enfer du Web Mobile - un retour d'expérience - Mathieu Parisot
Dans l'enfer du Web Mobile - un retour d'expérience - Mathieu ParisotDans l'enfer du Web Mobile - un retour d'expérience - Mathieu Parisot
Dans l'enfer du Web Mobile - un retour d'expérience - Mathieu ParisotSOAT
 
RxJava, Getting Started - David Wursteisen - 16 Octobre 2014
RxJava, Getting Started - David Wursteisen - 16 Octobre 2014RxJava, Getting Started - David Wursteisen - 16 Octobre 2014
RxJava, Getting Started - David Wursteisen - 16 Octobre 2014SOAT
 
L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...
L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...
L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...SOAT
 
Nio sur Netty par Mouhcine Moulou - 3 avril 2014
Nio sur Netty par Mouhcine Moulou - 3 avril 2014Nio sur Netty par Mouhcine Moulou - 3 avril 2014
Nio sur Netty par Mouhcine Moulou - 3 avril 2014SOAT
 
20140123 java8 lambdas_jose-paumard-soat
20140123 java8 lambdas_jose-paumard-soat20140123 java8 lambdas_jose-paumard-soat
20140123 java8 lambdas_jose-paumard-soatSOAT
 
Développer des applications iOS et Android avec c# grâce à Xamarin par Cyril ...
Développer des applications iOS et Android avec c# grâce à Xamarin par Cyril ...Développer des applications iOS et Android avec c# grâce à Xamarin par Cyril ...
Développer des applications iOS et Android avec c# grâce à Xamarin par Cyril ...SOAT
 
Amazon Web Service par Bertrand Lehurt - 11 mars 2014
Amazon Web Service par Bertrand Lehurt - 11 mars 2014Amazon Web Service par Bertrand Lehurt - 11 mars 2014
Amazon Web Service par Bertrand Lehurt - 11 mars 2014SOAT
 
ASP.Net Web API - Léonard Labat (18 février 2014)
ASP.Net Web API - Léonard Labat (18 février 2014)ASP.Net Web API - Léonard Labat (18 février 2014)
ASP.Net Web API - Léonard Labat (18 février 2014)SOAT
 
Xamarin et le développement natif d’applications Android, iOS et Windows en C#
 Xamarin et le développement natif d’applications Android, iOS et Windows en C# Xamarin et le développement natif d’applications Android, iOS et Windows en C#
Xamarin et le développement natif d’applications Android, iOS et Windows en C#SOAT
 
A la découverte du Responsive Web Design par Mathieu Parisot - Soat
A la découverte du Responsive Web Design par Mathieu Parisot - SoatA la découverte du Responsive Web Design par Mathieu Parisot - Soat
A la découverte du Responsive Web Design par Mathieu Parisot - SoatSOAT
 
MongoDB : la base NoSQL qui réinvente la gestion de données
MongoDB : la base NoSQL qui réinvente la gestion de donnéesMongoDB : la base NoSQL qui réinvente la gestion de données
MongoDB : la base NoSQL qui réinvente la gestion de donnéesSOAT
 

Mehr von SOAT (20)

Back from Microsoft //Build 2018
Back from Microsoft //Build 2018Back from Microsoft //Build 2018
Back from Microsoft //Build 2018
 
L'entreprise libérée
L'entreprise libéréeL'entreprise libérée
L'entreprise libérée
 
Amélioration continue, c'est l'affaire de tous !
Amélioration continue, c'est l'affaire de tous !Amélioration continue, c'est l'affaire de tous !
Amélioration continue, c'est l'affaire de tous !
 
JAVA 8 : Migration et enjeux stratégiques en entreprise
JAVA 8 : Migration et enjeux stratégiques en entrepriseJAVA 8 : Migration et enjeux stratégiques en entreprise
JAVA 8 : Migration et enjeux stratégiques en entreprise
 
ARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUES
ARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUESARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUES
ARCHITECTURE MICROSERVICE : TOUR D’HORIZON DU CONCEPT ET BONNES PRATIQUES
 
3/3 : The path to CDI 2.0 - Antoine Sabot-Durand
3/3 : The path to CDI 2.0 - Antoine Sabot-Durand3/3 : The path to CDI 2.0 - Antoine Sabot-Durand
3/3 : The path to CDI 2.0 - Antoine Sabot-Durand
 
1/3 : introduction to CDI - Antoine Sabot-Durand
1/3 : introduction to CDI - Antoine Sabot-Durand1/3 : introduction to CDI - Antoine Sabot-Durand
1/3 : introduction to CDI - Antoine Sabot-Durand
 
2/3 : CDI advanced - Antoine Sabot-Durand
2/3 : CDI advanced - Antoine Sabot-Durand2/3 : CDI advanced - Antoine Sabot-Durand
2/3 : CDI advanced - Antoine Sabot-Durand
 
Angular JS - Paterne Gaye-Guingnido
Angular JS - Paterne Gaye-Guingnido Angular JS - Paterne Gaye-Guingnido
Angular JS - Paterne Gaye-Guingnido
 
Dans l'enfer du Web Mobile - un retour d'expérience - Mathieu Parisot
Dans l'enfer du Web Mobile - un retour d'expérience - Mathieu ParisotDans l'enfer du Web Mobile - un retour d'expérience - Mathieu Parisot
Dans l'enfer du Web Mobile - un retour d'expérience - Mathieu Parisot
 
RxJava, Getting Started - David Wursteisen - 16 Octobre 2014
RxJava, Getting Started - David Wursteisen - 16 Octobre 2014RxJava, Getting Started - David Wursteisen - 16 Octobre 2014
RxJava, Getting Started - David Wursteisen - 16 Octobre 2014
 
L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...
L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...
L'impact du Responsive Web Design sur vos équipes projet - Mathieu Parisot - ...
 
Nio sur Netty par Mouhcine Moulou - 3 avril 2014
Nio sur Netty par Mouhcine Moulou - 3 avril 2014Nio sur Netty par Mouhcine Moulou - 3 avril 2014
Nio sur Netty par Mouhcine Moulou - 3 avril 2014
 
20140123 java8 lambdas_jose-paumard-soat
20140123 java8 lambdas_jose-paumard-soat20140123 java8 lambdas_jose-paumard-soat
20140123 java8 lambdas_jose-paumard-soat
 
Développer des applications iOS et Android avec c# grâce à Xamarin par Cyril ...
Développer des applications iOS et Android avec c# grâce à Xamarin par Cyril ...Développer des applications iOS et Android avec c# grâce à Xamarin par Cyril ...
Développer des applications iOS et Android avec c# grâce à Xamarin par Cyril ...
 
Amazon Web Service par Bertrand Lehurt - 11 mars 2014
Amazon Web Service par Bertrand Lehurt - 11 mars 2014Amazon Web Service par Bertrand Lehurt - 11 mars 2014
Amazon Web Service par Bertrand Lehurt - 11 mars 2014
 
ASP.Net Web API - Léonard Labat (18 février 2014)
ASP.Net Web API - Léonard Labat (18 février 2014)ASP.Net Web API - Léonard Labat (18 février 2014)
ASP.Net Web API - Léonard Labat (18 février 2014)
 
Xamarin et le développement natif d’applications Android, iOS et Windows en C#
 Xamarin et le développement natif d’applications Android, iOS et Windows en C# Xamarin et le développement natif d’applications Android, iOS et Windows en C#
Xamarin et le développement natif d’applications Android, iOS et Windows en C#
 
A la découverte du Responsive Web Design par Mathieu Parisot - Soat
A la découverte du Responsive Web Design par Mathieu Parisot - SoatA la découverte du Responsive Web Design par Mathieu Parisot - Soat
A la découverte du Responsive Web Design par Mathieu Parisot - Soat
 
MongoDB : la base NoSQL qui réinvente la gestion de données
MongoDB : la base NoSQL qui réinvente la gestion de donnéesMongoDB : la base NoSQL qui réinvente la gestion de données
MongoDB : la base NoSQL qui réinvente la gestion de données
 

Immersion à iOS - Soat

  • 1. iOS Immersion Pascal Batty 1 mardi 11 décembre 12
  • 2. Je veux ! 2 mardi 11 décembre 12
  • 3. ๏ Idée de génie ๏ Maquettes révolutionnaires ๏ API de fou ๏ App Mobile 3 mardi 11 décembre 12
  • 4. Mobile ? 4 mardi 11 décembre 12
  • 5. 6.x 69,5 % 5.x 24,8 % 4.x 5,7 % Version ? 5 mardi 11 décembre 12
  • 6. Moyen ? 6 mardi 11 décembre 12
  • 8. Objective-C : Historique 8 mardi 11 décembre 12
  • 9. 1980 N a is s a n c e d 'Obje c t ive - C 9 mardi 11 décembre 12
  • 10. 1986 NeXTs te p mardi 11 décembre 12
  • 11. 2001 M acOS X 11 mardi 11 décembre 12
  • 12. 2007 iphone 12 mardi 11 décembre 12
  • 13. 2008 iP h o ne OS SDK 13 mardi 11 décembre 12
  • 14. 2009 2010 2011 2012 iOS 3 iOS 4 iOS 5 iOS 6 … Xcode 3.2 Xcode 4.0 mardi 11 décembre 12
  • 15. Objective-C : Technique 15 mardi 11 décembre 12
  • 16. Framework Runtime ObjC Compilo Langage 16 mardi 11 décembre 12
  • 17. #define try-catch enum Références int main(int argc, char** argv) struct char* Désallocation Headers uint Allocation Pointeurs int[] typedef malloc() #ifdef 17 mardi 11 décembre 12
  • 18. Pointeurs 18 mardi 11 décembre 12
  • 19. Méthode de classe @class nil Propriétés NSString Protocoles Retain Release Polymorphisme Méthode d’instance @protocol Héritage @property NSObject 19 mardi 11 décembre 12
  • 20. NSObject 20 mardi 11 décembre 12
  • 21. nil 21 mardi 11 décembre 12
  • 22. Boîte à outils • NSString • NSArray • NSDictionary • NSSet 22 mardi 11 décembre 12
  • 23. Boîte à outils • NSString • NSMutableString • NSArray • NSMutableArray • NSDictionary • NSMutableDictionary • NSSet • NSMutableSet 22 mardi 11 décembre 12
  • 24. Syntaxe 23 mardi 11 décembre 12
  • 25. Déclaration #import <Foundation/Foundation.h> @interface Person:NSObject @property NSString *name; - (id)initWithName:(NSString *)name; + (id)personWithName:(NSString *)name; @end 24 mardi 11 décembre 12
  • 26. Implémentation #import "Person.h" @implementation Person @synthesize name = _name; - (id)initWithName:(NSString *)name { … } + (id)personWithName:(NSString *)name { … } @end 25 mardi 11 décembre 12
  • 27. Envoi de message ObjC [teller sayHello]; Java/C# teller.sayHello(); ObjC [teller sayHelloTo:person]; Java/C# teller.sayHello(person); 26 mardi 11 décembre 12
  • 28. Envoi de message ObjC [teller say:message to:person]; teller.say(message, person); Java/C# 27 mardi 11 décembre 12
  • 29. Sélecteur say:to: 28 mardi 11 décembre 12
  • 30. Initialisation, Propriétés Person *person1 = [[Person alloc] init]; Person *person2 = [[Person alloc] initWithName:@"Noé"]; Person *person3 = [Person personWithName:@"Jim"]; [person1 setName:@"Jen"]; Setter person2.name = @"Pam"]; NSString *name = [person1 name]; Getter NSString *otherName = person2.name; 29 mardi 11 décembre 12
  • 31. Gestion de la mémoire 30 mardi 11 décembre 12
  • 33. Reference Counting 32 mardi 11 décembre 12
  • 34. Setter (retain) - (void)setText:(NSString *)textValue { if (textValue != _text) { [textValue retain]; [_text release]; _text = textValue; } } 33 mardi 11 décembre 12
  • 35. Ouf… Automatic Reference Counting 34 mardi 11 décembre 12
  • 36. Anatomie d’une App 35 mardi 11 décembre 12
  • 37. Révisions Controller View Model 36 mardi 11 décembre 12
  • 38. Interface Utilisateur Outlets Actions ViewController Interface 37 mardi 11 décembre 12
  • 39. View ≠ ViewController 38 mardi 11 décembre 12
  • 40. Délégation UITextField @protocol UITextFieldDelegate • textFieldShouldBeginEditing: • textFieldDidBeginEditing: • textFieldShouldEndEditing: • textFieldDidEndEditing: • textField:shouldChangeCharactersInRange:replacementString: • textFieldShouldClear: • textFieldShouldReturn: 39 mardi 11 décembre 12
  • 41. Délégation UITextField delegate 40 mardi 11 décembre 12
  • 42. Délégation L’utilisateur a appuyé sur Retour ! UITextField delegate [delegate textFieldShouldReturn:self] 40 mardi 11 décembre 12
  • 43. Délégation L’utilisateur a appuyé sur Retour ! UITextField delegate [delegate textFieldShouldReturn:self] Ok, je lance une recherche 40 mardi 11 décembre 12
  • 44. Là où tout commence… AppDelegate 41 mardi 11 décembre 12
  • 45. Pause ! puis demo 42 mardi 11 décembre 12
  • 46. Pour commencer http://developer.apple.com/ios 43 mardi 11 décembre 12
  • 47. Merci 44 mardi 11 décembre 12