Anthony Névo

Antoine Cabot



                3 July 2012
Qui sommes nous ?


                    Antoine Cabot
                    Fondateur
                    Antoine Cabot, diplômé de Télécom Bretagne et passionné de technologie
                    mobile a conçu, développé et déployé des services mobiles pour l’opérateur
                    mobile Orange durant 4 ans avant de fonder Haploid. Il a suivi et analysé la
                    montée en puissance des Smartphones depuis 2004 et a été un des artisans
                    du succès du lancement de l’iPhone en France en tant qu’expert Visual
                    Voicemail pour Orange. Passionné d’innovation, il souhaite apporter aux
                    utilisateurs des services convergents et de qualité. 



                    Anthony Nevo
                    Directeur Technique
                    Anthony Névo, diplômé du Cork Institute of Technology et de l'ISTIC Rennes,
                    est passionné par les nouvelles technologies et les interfaces graphiques depuis
                    toujours. Il a eu la chance de travailler et d'acquérir une large expertise sur les 3
                    principales plateformes de ces 15 dernières années: les applications PC/Mac,
                    les services et technologies sur le web et enfin les "apps" sur smartphones et
                    tablettes. Parmi ses nombreuses expériences, Anthony a été employé chez
                    Motorola, Cap Gemini ou encore Orange.




                                                                                                            2
Haploid en 2 mots




                    iOS   Android   HTML5




                                            3
Quelques chiffres en vrac




                            4
Quelques chiffres en vrac

               valorisation boursière de 527
               milliards de $ (= Microsoft +
                           Google)




                                               4
Quelques chiffres en vrac

               valorisation boursière de 527
               milliards de $ (= Microsoft +
                           Google)

                               150 milliards de $ de
                              revenus annuels sur le
                                     matériel




                                                       4
Quelques chiffres en vrac

               valorisation boursière de 527
               milliards de $ (= Microsoft +
                           Google)

   150 milliards de $ de
                               150 milliards de $ de
            cash
                              revenus annuels sur le
                                     matériel




                                                       4
Quelques chiffres en vrac

               valorisation boursière de 527
               milliards de $ (= Microsoft +
                           Google)

   150 milliards de $ de
                               150 milliards de $ de
            cash
                              revenus annuels sur le
                                     matériel
           3 milliards de $ de
        revenus pour l’AppStore




                                                       4
Quelques chiffres en vrac

               valorisation boursière de 527
               milliards de $ (= Microsoft +
                           Google)

   150 milliards de $ de
                               150 milliards de $ de
            cash
                              revenus annuels sur le
                                     matériel
           3 milliards de $ de
        revenus pour l’AppStore      500 Millions de
                                  terminaux iOS dans le
                                         monde




                                                          4
Quelques chiffres en vrac

               valorisation boursière de 527
               milliards de $ (= Microsoft +
                           Google)

   150 milliards de $ de
                               150 milliards de $ de
            cash
                              revenus annuels sur le      600 000 apps iPhone
                                     matériel
           3 milliards de $ de
        revenus pour l’AppStore      500 Millions de
                                  terminaux iOS dans le
                                         monde




                                                                                4
Quelques chiffres en vrac

               valorisation boursière de 527
               milliards de $ (= Microsoft +
                           Google)

   150 milliards de $ de
                               150 milliards de $ de
            cash
                              revenus annuels sur le      600 000 apps iPhone
                                     matériel
           3 milliards de $ de                             200 000 apps optimisées
        revenus pour l’AppStore      500 Millions de             pour l’iPad
                                  terminaux iOS dans le
                                         monde




                                                                                4
Quelques chiffres en vrac

               valorisation boursière de 527
               milliards de $ (= Microsoft +
                           Google)

   150 milliards de $ de
                               150 milliards de $ de
            cash
                              revenus annuels sur le      600 000 apps iPhone
                                     matériel
           3 milliards de $ de                             200 000 apps optimisées
        revenus pour l’AppStore      500 Millions de             pour l’iPad
                                  terminaux iOS dans le
                                         monde



                                         2000 nouvelles apps chaque
                                                  semaine




                                                                                4
Quelques chiffres en vrac

               valorisation boursière de 527
               milliards de $ (= Microsoft +             46 millions d’applis
                           Google)                 téléchargées chaque jour dans
                                                     le monde (530 par seconde)
   150 milliards de $ de
                               150 milliards de $ de
            cash
                              revenus annuels sur le      600 000 apps iPhone
                                     matériel
           3 milliards de $ de                             200 000 apps optimisées
        revenus pour l’AppStore      500 Millions de             pour l’iPad
                                  terminaux iOS dans le
                                         monde



                                         2000 nouvelles apps chaque
                                                  semaine




                                                                                4
Quelques chiffres en vrac

               valorisation boursière de 527
               milliards de $ (= Microsoft +             46 millions d’applis
                           Google)                 téléchargées chaque jour dans
                                                     le monde (530 par seconde)
   150 milliards de $ de
                               150 milliards de $ de
            cash
                              revenus annuels sur le      600 000 apps iPhone
                                     matériel
           3 milliards de $ de                             200 000 apps optimisées
        revenus pour l’AppStore      500 Millions de             pour l’iPad
                                  terminaux iOS dans le
                                         monde
                                                          26 milliards de
                                                   téléchargements depuis 2008

                                         2000 nouvelles apps chaque
                                                  semaine




                                                                                4
Quelques chiffres en vrac

               valorisation boursière de 527
               milliards de $ (= Microsoft +             46 millions d’applis
                           Google)                 téléchargées chaque jour dans
                                                     le monde (530 par seconde)
   150 milliards de $ de
                               150 milliards de $ de
            cash
                              revenus annuels sur le      600 000 apps iPhone
                                     matériel
           3 milliards de $ de                             200 000 apps optimisées
        revenus pour l’AppStore      500 Millions de             pour l’iPad
                                  terminaux iOS dans le
                                         monde
                                                          26 milliards de
                                                   téléchargements depuis 2008
                   65% d’applications
                       payantes
                                         2000 nouvelles apps chaque
                                                  semaine




                                                                                4
Quelques chiffres en vrac

               valorisation boursière de 527
               milliards de $ (= Microsoft +             46 millions d’applis
                           Google)                 téléchargées chaque jour dans
                                                     le monde (530 par seconde)
   150 milliards de $ de
                               150 milliards de $ de
            cash
                              revenus annuels sur le      600 000 apps iPhone
                                     matériel
           3 milliards de $ de                             200 000 apps optimisées
        revenus pour l’AppStore      500 Millions de             pour l’iPad
                                  terminaux iOS dans le
                                         monde
                                                          26 milliards de
                                                   téléchargements depuis 2008
                   65% d’applications
                       payantes
                                         2000 nouvelles apps chaque
                                                  semaine
        76% des revenus mobiles




                                                                                4
Quelques chiffres en vrac

               valorisation boursière de 527
               milliards de $ (= Microsoft +             46 millions d’applis
                           Google)                 téléchargées chaque jour dans
                                                     le monde (530 par seconde)
   150 milliards de $ de
                               150 milliards de $ de
            cash
                              revenus annuels sur le      600 000 apps iPhone
                                     matériel
           3 milliards de $ de                             200 000 apps optimisées
        revenus pour l’AppStore      500 Millions de             pour l’iPad
                                  terminaux iOS dans le
                                         monde
                                                          26 milliards de
                                                   téléchargements depuis 2008
                   65% d’applications
                       payantes
                                         2000 nouvelles apps chaque
                                                  semaine
        76% des revenus mobiles
                                                  1 milliard de téléchargement
                                                         pour Angry Birds

                                                                                 4
Ou publier son app ?




                       5
L’eco-système post-PC Apple




                              6
iOS - La genèse




   2007           2008   2009   2010   2011   2012


                                                 7
iOS - La genèse




 Lancement
 de l’iPhone

   iOS 1.x



   2007           2008   2009   2010   2011   2012


                                                 7
iOS - La genèse




                  Lancement
                  de l’iPhone
                       3G
                  Ouverture
                       de
                  l’AppStore
 Lancement
 de l’iPhone         iOS 2.x

   iOS 1.x



   2007            2008         2009   2010   2011   2012


                                                        7
iOS - La genèse




                                Lancement
                                de l’iPhone
                                    3GS
                                  100 000
                  Lancement        apps
                  de l’iPhone   disponibles
                       3G
                  Ouverture       iOS 3.x
                       de
                  l’AppStore
 Lancement
 de l’iPhone         iOS 2.x

   iOS 1.x



   2007            2008           2009        2010   2011   2012


                                                               7
iOS - La genèse




                                              Lancement
                                              de l’iPhone
                                                    4
                                Lancement     Lancement
                                de l’iPhone    de l’iPad
                                    3GS
                                  100 000       iOS 4.x
                  Lancement        apps
                  de l’iPhone   disponibles
                       3G
                  Ouverture       iOS 3.x
                       de
                  l’AppStore
 Lancement
 de l’iPhone         iOS 2.x

   iOS 1.x



   2007            2008           2009          2010        2011   2012


                                                                      7
iOS - La genèse


                                                            Lancement
                                                            de l’iPhone
                                                                 4S
                                              Lancement     Lancement
                                              de l’iPhone   de l’iPad 2
                                                    4
                                Lancement     Lancement
                                               de l’iPad      iOS 5.x
                                de l’iPhone
                                    3GS
                                  100 000       iOS 4.x
                  Lancement        apps
                  de l’iPhone   disponibles
                       3G
                  Ouverture       iOS 3.x
                       de
                  l’AppStore
 Lancement
 de l’iPhone         iOS 2.x

   iOS 1.x



   2007            2008           2009          2010          2011        2012


                                                                             7
iOS - La genèse
                                                                          Lancement
                                                                          de l’iPad 3
                                                            Lancement
                                                            de l’iPhone
                                                                 4S
                                              Lancement     Lancement
                                              de l’iPhone   de l’iPad 2
                                                    4
                                Lancement     Lancement
                                               de l’iPad      iOS 5.x
                                de l’iPhone
                                    3GS
                                  100 000       iOS 4.x
                  Lancement        apps
                  de l’iPhone   disponibles
                       3G
                  Ouverture       iOS 3.x
                       de
                  l’AppStore
 Lancement
 de l’iPhone         iOS 2.x

   iOS 1.x



   2007            2008           2009          2010          2011          2012


                                                                                   7
Pourquoi développer sur iOS ?


   ‣   Accéder à 500 millions d’utilisateurs
       potentiels
   ‣   Bénéficier du système de paiement
       iTunes (300 millions de CB)
   ‣   Profiter de l’uniformité des terminaux
       (iPod Touch / iPhone / iPad)
   ‣   La validation Apple garantie la qualité
       de votre application
   ‣   La gestion de la sécurité (sandboxing)
   ‣   Maturité de la plateforme (héritée
       d’Unix et MacOS)




                                                 8
L’environnement de développement


   ‣   Un mac
   ‣   XCode (Mac App Store)
   ‣   1 iPod ou 1 iPhone ou 1 iPad

   ‣   79€ / an pour publier autant
       d’applications que l’on veut

   ‣   3 programmes
       ‣   Individual
       ‣   Company
       ‣   Enterprise ($299/an)
       ‣   University (free)


   ‣   déploiement sur 100 terminaux


                                       9
Processus de validation

‣   Les règles
    «We have over 350,000 apps in the App Store. We don't need any more Fart apps. If your app doesn't do
    something useful or provide some form of lasting entertainment, it may not be accepted.»
    «Apps must comply with all terms and conditions explained in the Apple iOS Human Interface Guidelines»
    «Apps that encourage users to use an Apple Device in a way that may cause damage to the device will be
    rejected»




‣   Choix des pays / choix des prix
‣   Produits In-App / Abonnements
‣   Le temps de validation
‣   Les bonnes pratiques (forum, ticket support)
‣   La validation express



                                                                                                        10
La vie d’une app sur l’App Store

   ‣   Les mises à jour
   ‣   Les notifications
   ‣   Le suivi des usages (Flurry & Google Analytics)
   ‣   Le marketing (screenshots, notes...)
   ‣   Les leviers (AppGratuites & Surikate)
   ‣   Mise en avant Apple en suivant la ligne de produits
   ‣   Les revenus ?
       ‣   Apple vous fait un virement tous les
           mois pour les ventes
       ‣   Monétisation publicitaire (iAd, AdMob)




                                                             11
Etre dans le top 25 ?




                        12
Un peu de technique...




                         13
Avant iOS




            14
Avant iOS



    ‣   NextStep (1988)




                          14
Avant iOS



    ‣   NextStep (1988)




                          14
Avant iOS



    ‣   NextStep (1988)




                          14
Avant iOS



    ‣   NextStep (1988)




                          14
Avant iOS




            15
Avant iOS



    ‣   Mac OS X Cheetah (2001)




                                  15
Avant iOS



    ‣   Mac OS X Cheetah (2001)




                                  15
Avant iOS




            16
Avant iOS



    ‣   OS X Mountain Lion (2012)




                                    16
Avant iOS



    ‣   OS X Mountain Lion (2012)




                                    16
Fondations




             17
Fondations



    ‣   UNIX (BSD + NextStep)




                                17
Fondations



    ‣   UNIX (BSD + NextStep)
    ‣   Langages disponibles:




                                17
Fondations



    ‣   UNIX (BSD + NextStep)
    ‣   Langages disponibles:
        ‣   C / C++




                                17
Fondations



    ‣   UNIX (BSD + NextStep)
    ‣   Langages disponibles:
        ‣   C / C++
        ‣   Objective-C




                                17
Fondations



    ‣   UNIX (BSD + NextStep)
    ‣   Langages disponibles:
        ‣   C / C++
        ‣   Objective-C
        ‣   Web




                                17
Fondations



    ‣   UNIX (BSD + NextStep)
    ‣   Langages disponibles:
        ‣   C / C++
        ‣   Objective-C
        ‣   Web
        ‣   (Flash :)




                                17
Fondations



    ‣   UNIX (BSD + NextStep)
    ‣   Langages disponibles:
        ‣   C / C++
        ‣   Objective-C
        ‣   Web
        ‣   (Flash :)
    ‣   4 niveaux d’abstraction:




                                   17
Fondations



    ‣   UNIX (BSD + NextStep)
    ‣   Langages disponibles:
        ‣   C / C++
        ‣   Objective-C
        ‣   Web
        ‣   (Flash :)
    ‣   4 niveaux d’abstraction:
        ‣   CoreOS




                                   17
Fondations



    ‣   UNIX (BSD + NextStep)
    ‣   Langages disponibles:
        ‣   C / C++
        ‣   Objective-C
        ‣   Web
        ‣   (Flash :)
    ‣   4 niveaux d’abstraction:
        ‣   CoreOS
        ‣   Core Services




                                   17
Fondations



    ‣   UNIX (BSD + NextStep)
    ‣   Langages disponibles:
        ‣   C / C++
        ‣   Objective-C
        ‣   Web
        ‣   (Flash :)
    ‣   4 niveaux d’abstraction:
        ‣   CoreOS
        ‣   Core Services
        ‣   Media


                                   17
Fondations



    ‣   UNIX (BSD + NextStep)
    ‣   Langages disponibles:
        ‣   C / C++
        ‣   Objective-C
        ‣   Web
        ‣   (Flash :)
    ‣   4 niveaux d’abstraction:
        ‣   CoreOS
        ‣   Core Services
        ‣   Media
        ‣   Cocoa Touch

                                   17
Fondations



    ‣   UNIX (BSD + NextStep)
    ‣   Langages disponibles:
        ‣   C / C++
        ‣   Objective-C
        ‣   Web
        ‣   (Flash :)
    ‣   4 niveaux d’abstraction:
        ‣   CoreOS
        ‣   Core Services
        ‣   Media
        ‣   Cocoa Touch

                                   17
Fondations



    ‣   UNIX (BSD + NextStep)
    ‣   Langages disponibles:
        ‣   C / C++
        ‣   Objective-C
        ‣   Web
        ‣   (Flash :)
    ‣   4 niveaux d’abstraction:
        ‣   CoreOS
        ‣   Core Services
        ‣   Media
        ‣   Cocoa Touch

                                   17
Core OS




          18
Core OS



    ‣   Couche la plus basse




                               18
Core OS



    ‣   Couche la plus basse
    ‣   Utilisée principalement pour:




                                        18
Core OS



    ‣   Couche la plus basse
    ‣   Utilisée principalement pour:
          ‣   Communication (bluetooth, accessoires, ...)




                                                            18
Core OS



    ‣   Couche la plus basse
    ‣   Utilisée principalement pour:
          ‣   Communication (bluetooth, accessoires, ...)
          ‣   Sécurité (trousseau d’accès, cryptographie, ...)




                                                                 18
Core OS



    ‣   Couche la plus basse
    ‣   Utilisée principalement pour:
          ‣   Communication (bluetooth, accessoires, ...)
          ‣   Sécurité (trousseau d’accès, cryptographie, ...)
          ‣   Accélération matérielle (via le framework
              Accelerate)




                                                                 18
Core OS



    ‣   Couche la plus basse
    ‣   Utilisée principalement pour:
          ‣   Communication (bluetooth, accessoires, ...)
          ‣   Sécurité (trousseau d’accès, cryptographie, ...)
          ‣   Accélération matérielle (via le framework
              Accelerate)
          ‣   Fonctions systèmes Unix:




                                                                 18
Core OS



    ‣   Couche la plus basse
    ‣   Utilisée principalement pour:
          ‣   Communication (bluetooth, accessoires, ...)
          ‣   Sécurité (trousseau d’accès, cryptographie, ...)
          ‣   Accélération matérielle (via le framework
              Accelerate)
          ‣   Fonctions systèmes Unix:
              ‣
                  Threading




                                                                 18
Core OS



    ‣   Couche la plus basse
    ‣   Utilisée principalement pour:
          ‣   Communication (bluetooth, accessoires, ...)
          ‣   Sécurité (trousseau d’accès, cryptographie, ...)
          ‣   Accélération matérielle (via le framework
              Accelerate)
          ‣   Fonctions systèmes Unix:
              ‣
                  Threading
              ‣
                  Réseau (Sockets, ...)




                                                                 18
Core OS



    ‣   Couche la plus basse
    ‣   Utilisée principalement pour:
          ‣   Communication (bluetooth, accessoires, ...)
          ‣   Sécurité (trousseau d’accès, cryptographie, ...)
          ‣   Accélération matérielle (via le framework
              Accelerate)
          ‣   Fonctions systèmes Unix:
              ‣
                  Threading
              ‣
                  Réseau (Sockets, ...)
              ‣
                  Accès au système de fichiers




                                                                 18
Core OS



    ‣   Couche la plus basse
    ‣   Utilisée principalement pour:
          ‣   Communication (bluetooth, accessoires, ...)
          ‣   Sécurité (trousseau d’accès, cryptographie, ...)
          ‣   Accélération matérielle (via le framework
              Accelerate)
          ‣   Fonctions systèmes Unix:
              ‣
                  Threading
              ‣
                  Réseau (Sockets, ...)
              ‣
                  Accès au système de fichiers
              ‣
                  Gestion de la mémoire



                                                                 18
Core OS



    ‣   Couche la plus basse
    ‣   Utilisée principalement pour:
          ‣   Communication (bluetooth, accessoires, ...)
          ‣   Sécurité (trousseau d’accès, cryptographie, ...)
          ‣   Accélération matérielle (via le framework
              Accelerate)
          ‣   Fonctions systèmes Unix:
              ‣
                  Threading
              ‣
                  Réseau (Sockets, ...)
              ‣
                  Accès au système de fichiers
              ‣
                  Gestion de la mémoire
              ‣
                  ...


                                                                 18
Core Service




               19
Core Service



     ‣   Propose un grand nombre de services:




                                                19
Core Service



     ‣   Propose un grand nombre de services:
         ‣   Réseau (CFNetwork)




                                                19
Core Service



     ‣   Propose un grand nombre de services:
         ‣   Réseau (CFNetwork)
         ‣   Core Data / SQLite




                                                19
Core Service



     ‣   Propose un grand nombre de services:
         ‣   Réseau (CFNetwork)
         ‣   Core Data / SQLite
         ‣   Foundation:




                                                19
Core Service



     ‣   Propose un grand nombre de services:
         ‣   Réseau (CFNetwork)
         ‣   Core Data / SQLite
         ‣   Foundation:
             ‣
                 gestion de types de données complexes (chaines,
                 dates, ...)




                                                                   19
Core Service



     ‣   Propose un grand nombre de services:
         ‣   Réseau (CFNetwork)
         ‣   Core Data / SQLite
         ‣   Foundation:
             ‣
                 gestion de types de données complexes (chaines,
                 dates, ...)
             ‣
                 préférences




                                                                   19
Core Service



     ‣   Propose un grand nombre de services:
         ‣   Réseau (CFNetwork)
         ‣   Core Data / SQLite
         ‣   Foundation:
             ‣
                 gestion de types de données complexes (chaines,
                 dates, ...)
             ‣
                 préférences
             ‣
                 ...




                                                                   19
Core Service



     ‣   Propose un grand nombre de services:
         ‣   Réseau (CFNetwork)
         ‣   Core Data / SQLite
         ‣   Foundation:
             ‣
                 gestion de types de données complexes (chaines,
                 dates, ...)
             ‣
                 préférences
             ‣
                 ...
         ‣   Géolocalisation (Core Location)




                                                                   19
Core Service



     ‣   Propose un grand nombre de services:
         ‣   Réseau (CFNetwork)
         ‣   Core Data / SQLite
         ‣   Foundation:
             ‣
                 gestion de types de données complexes (chaines,
                 dates, ...)
             ‣
                 préférences
             ‣
                 ...
         ‣   Géolocalisation (Core Location)
         ‣   Gestion des achats «In-app»




                                                                   19
Core Service



     ‣   Propose un grand nombre de services:
         ‣   Réseau (CFNetwork)
         ‣   Core Data / SQLite
         ‣   Foundation:
             ‣
                 gestion de types de données complexes (chaines,
                 dates, ...)
             ‣
                 préférences
             ‣
                 ...
         ‣   Géolocalisation (Core Location)
         ‣   Gestion des achats «In-app»
         ‣   Calendrier, Carnet d’adresses, Kiosque, ...



                                                                   19
Media




        20
Media


    ‣   Ensemble de technologies
        permettant la création d’interfaces
        riches:




                                              20
Media


    ‣   Ensemble de technologies
        permettant la création d’interfaces
    ‣   riches:
        Visuel:




                                              20
Media


    ‣   Ensemble de technologies
        permettant la création d’interfaces
    ‣   riches:
        Visuel:
        ‣   Core Graphics (dessin bitmap et vectoriel en
            2D)




                                                           20
Media


    ‣   Ensemble de technologies
        permettant la création d’interfaces
    ‣   riches:
        Visuel:
        ‣   Core Graphics (dessin bitmap et vectoriel en
            2D)
        ‣   Core Animation




                                                           20
Media


    ‣   Ensemble de technologies
        permettant la création d’interfaces
    ‣   riches:
        Visuel:
        ‣   Core Graphics (dessin bitmap et vectoriel en
            2D)
        ‣   Core Animation
        ‣   Core Image (traitement d’image)




                                                           20
Media


    ‣   Ensemble de technologies
        permettant la création d’interfaces
    ‣   riches:
        Visuel:
        ‣   Core Graphics (dessin bitmap et vectoriel en
            2D)
        ‣   Core Animation
        ‣   Core Image (traitement d’image)
        ‣   OpenGL ES (affichage 2D / 3D accéléré)




                                                           20
Media


    ‣   Ensemble de technologies
        permettant la création d’interfaces
    ‣   riches:
        Visuel:
        ‣   Core Graphics (dessin bitmap et vectoriel en
            2D)
        ‣   Core Animation
        ‣   Core Image (traitement d’image)
        ‣   OpenGL ES (affichage 2D / 3D accéléré)
        ‣   Core Text




                                                           20
Media


    ‣   Ensemble de technologies
        permettant la création d’interfaces
    ‣   riches:
        Visuel:
        ‣   Core Graphics (dessin bitmap et vectoriel en
            2D)
        ‣   Core Animation
        ‣   Core Image (traitement d’image)
        ‣   OpenGL ES (affichage 2D / 3D accéléré)
        ‣   Core Text
        ‣   Accès à l’album photo



                                                           20
Media




        21
Media


    ‣   Ensemble de technologies
        permettant la création d’interfaces
        riches:




                                              21
Media


    ‣   Ensemble de technologies
        permettant la création d’interfaces
    ‣   riches:/ Vidéo:
        Audio




                                              21
Media


    ‣   Ensemble de technologies
        permettant la création d’interfaces
    ‣   riches:/ Vidéo:
        Audio
        ‣   Accès à la bibliothèque iTunes




                                              21
Media


    ‣   Ensemble de technologies
        permettant la création d’interfaces
    ‣   riches:/ Vidéo:
        Audio
        ‣   Accès à la bibliothèque iTunes
        ‣   Lecture / enregistrement audio / vidéo




                                                     21
Media


    ‣   Ensemble de technologies
        permettant la création d’interfaces
    ‣   riches:/ Vidéo:
        Audio
        ‣   Accès à la bibliothèque iTunes
        ‣   Lecture / enregistrement audio / vidéo
        ‣   Manipulation / traitement des médias




                                                     21
Media


    ‣   Ensemble de technologies
        permettant la création d’interfaces
    ‣   riches:/ Vidéo:
        Audio
        ‣   Accès à la bibliothèque iTunes
        ‣   Lecture / enregistrement audio / vidéo
        ‣   Manipulation / traitement des médias
        ‣   Spatialisation du son (OpenAL)




                                                     21
Media


    ‣   Ensemble de technologies
        permettant la création d’interfaces
    ‣   riches:/ Vidéo:
        Audio
        ‣   Accès à la bibliothèque iTunes
        ‣   Lecture / enregistrement audio / vidéo
        ‣   Manipulation / traitement des médias
        ‣   Spatialisation du son (OpenAL)




                                                     21
Media


    ‣   Ensemble de technologies
        permettant la création d’interfaces
    ‣   riches:/ Vidéo:
        Audio
        ‣   Accès à la bibliothèque iTunes
        ‣   Lecture / enregistrement audio / vidéo
        ‣   Manipulation / traitement des médias
        ‣   Spatialisation du son (OpenAL)

    ‣   AirPlay



                                                     21
Media


    ‣   Ensemble de technologies
        permettant la création d’interfaces
    ‣   riches:/ Vidéo:
        Audio
        ‣   Accès à la bibliothèque iTunes
        ‣   Lecture / enregistrement audio / vidéo
        ‣   Manipulation / traitement des médias
        ‣   Spatialisation du son (OpenAL)

    ‣   AirPlay
        ‣   Ecran distant



                                                     21
Media


    ‣   Ensemble de technologies
        permettant la création d’interfaces
    ‣   riches:/ Vidéo:
        Audio
        ‣   Accès à la bibliothèque iTunes
        ‣   Lecture / enregistrement audio / vidéo
        ‣   Manipulation / traitement des médias
        ‣   Spatialisation du son (OpenAL)

    ‣   AirPlay
        ‣   Ecran distant
        ‣   Mirroring

                                                     21
Cocoa Touch




              22
Cocoa Touch



    ‣   Couche la plus haute.




                                22
Cocoa Touch



    ‣   Couche la plus haute.
    ‣   Partie visible de l’iceberg.




                                       22
Cocoa Touch



    ‣   Couche la plus haute.
    ‣   Partie visible de l’iceberg.
    ‣   Propose une série de composants déjà
        disponibles:




                                               22
Cocoa Touch



    ‣   Couche la plus haute.
    ‣   Partie visible de l’iceberg.
    ‣   Propose une série de composants déjà
        disponibles:
        ‣   UIKit: élements graphiques de base (listes,
            boutons, labels, ...)




                                                          22
Cocoa Touch



    ‣   Couche la plus haute.
    ‣   Partie visible de l’iceberg.
    ‣   Propose une série de composants déjà
        disponibles:
        ‣   UIKit: élements graphiques de base (listes,
            boutons, labels, ...)
        ‣   Map Kit




                                                          22
Cocoa Touch



    ‣   Couche la plus haute.
    ‣   Partie visible de l’iceberg.
    ‣   Propose une série de composants déjà
        disponibles:
        ‣   UIKit: élements graphiques de base (listes,
            boutons, labels, ...)
        ‣   Map Kit
        ‣   Message UI




                                                          22
Cocoa Touch



    ‣   Couche la plus haute.
    ‣   Partie visible de l’iceberg.
    ‣   Propose une série de composants déjà
        disponibles:
        ‣   UIKit: élements graphiques de base (listes,
            boutons, labels, ...)
        ‣   Map Kit
        ‣   Message UI
        ‣   Game Kit




                                                          22
Cocoa Touch



    ‣   Couche la plus haute.
    ‣   Partie visible de l’iceberg.
    ‣   Propose une série de composants déjà
        disponibles:
        ‣   UIKit: élements graphiques de base (listes,
            boutons, labels, ...)
        ‣   Map Kit
        ‣   Message UI
        ‣   Game Kit
        ‣   iAd



                                                          22
Cocoa Touch



    ‣   Couche la plus haute.
    ‣   Partie visible de l’iceberg.
    ‣   Propose une série de composants déjà
        disponibles:
        ‣   UIKit: élements graphiques de base (listes,
            boutons, labels, ...)
        ‣   Map Kit
        ‣   Message UI
        ‣   Game Kit
        ‣   iAd
        ‣   Twitter, Address Book UI, Event Kit UI

                                                          22
L’Objective-C




                23
L’Objective-C




     ‣   Inventé au début des années 80 par Brad
         Cox




                                                   23
L’Objective-C




     ‣   Inventé au début des années 80 par Brad
         Cox
     ‣   S’inspire de concepts provenant de
         Smalltalk




                                                   23
L’Objective-C




     ‣   Inventé au début des années 80 par Brad
         Cox
     ‣   S’inspire de concepts provenant de
         Smalltalk
     ‣   A l’origine, une simple extension du C




                                                   23
L’Objective-C - Syntaxe




                          24
L’Objective-C - Syntaxe



     ‣   Déclaration de méthodes / fonctions




                                               24
L’Objective-C - Syntaxe



     ‣   Déclaration de méthodes / fonctions




                                               24
L’Objective-C - Syntaxe



     ‣   Déclaration de méthodes / fonctions

         ‣   C




                                               24
L’Objective-C - Syntaxe



     ‣   Déclaration de méthodes / fonctions

         ‣   C
             int calculateSomething(int a, int b);




                                                     24
L’Objective-C - Syntaxe



     ‣   Déclaration de méthodes / fonctions

         ‣   C
             int calculateSomething(int a, int b);
         ‣   Java




                                                     24
L’Objective-C - Syntaxe



     ‣   Déclaration de méthodes / fonctions

         ‣   C
             int calculateSomething(int a, int b);
         ‣   Java
             int calculateSomething(int a, int b);




                                                     24
L’Objective-C - Syntaxe



     ‣   Déclaration de méthodes / fonctions

         ‣   C
             int calculateSomething(int a, int b);
         ‣   Java
             int calculateSomething(int a, int b);
         ‣   Objective-C




                                                     24
L’Objective-C - Syntaxe



     ‣   Déclaration de méthodes / fonctions

         ‣   C
             int calculateSomething(int a, int b);
         ‣   Java
             int calculateSomething(int a, int b);
         ‣   Objective-C
             int calculateSomethingUsing:(int)a and:(int)b;




                                                              24
L’Objective-C - Syntaxe




                          25
L’Objective-C - Syntaxe



     ‣   Appel de méthodes / fonctions




                                         25
L’Objective-C - Syntaxe



     ‣   Appel de méthodes / fonctions




                                         25
L’Objective-C - Syntaxe



     ‣   Appel de méthodes / fonctions

         ‣   C




                                         25
L’Objective-C - Syntaxe



     ‣   Appel de méthodes / fonctions

         ‣   C
             int result;




                                         25
L’Objective-C - Syntaxe



     ‣   Appel de méthodes / fonctions

         ‣   C
             int result;
             result = calculateSomething(42, 12);




                                                    25
L’Objective-C - Syntaxe



     ‣   Appel de méthodes / fonctions

         ‣   C
             int result;
             result = calculateSomething(42, 12);
         ‣   Java




                                                    25
L’Objective-C - Syntaxe



     ‣   Appel de méthodes / fonctions

         ‣   C
             int result;
             result = calculateSomething(42, 12);
         ‣   Java
             int result;




                                                    25
L’Objective-C - Syntaxe



     ‣   Appel de méthodes / fonctions

         ‣   C
             int result;
             result = calculateSomething(42, 12);
         ‣   Java
             int result;
             result = myObject.calculateSomething(42, 12);




                                                             25
L’Objective-C - Syntaxe



     ‣   Appel de méthodes / fonctions

         ‣   C
             int result;
             result = calculateSomething(42, 12);
         ‣   Java
             int result;
             result = myObject.calculateSomething(42, 12);
         ‣   Objective-C




                                                             25
L’Objective-C - Syntaxe



     ‣   Appel de méthodes / fonctions

         ‣   C
             int result;
             result = calculateSomething(42, 12);
         ‣   Java
             int result;
             result = myObject.calculateSomething(42, 12);
         ‣   Objective-C
             int result;




                                                             25
L’Objective-C - Syntaxe



     ‣   Appel de méthodes / fonctions

         ‣   C
             int result;
             result = calculateSomething(42, 12);
         ‣   Java
             int result;
             result = myObject.calculateSomething(42, 12);
         ‣   Objective-C
             int result;
             result = [myObject calculateSomethingUsing:42 and:12];




                                                                      25
L’Objective-C - Syntaxe




                          26
L’Objective-C - Syntaxe




                          26
L’Objective-C - Syntaxe


       Objective-C:




                          26
L’Objective-C - Syntaxe


       Objective-C:
       UIAlertView *alertView = [[UIAlertView alloc]
                               initWithTitle:@"You are not connected to the internet"
                               message:@"An internet connection is required."
                               delegate:nil
                               cancelButtonTitle:@"OK"
                               otherButtonTitles:nil];




                                                                                        26
L’Objective-C - Syntaxe


       Objective-C:
       UIAlertView *alertView = [[UIAlertView alloc]
                               initWithTitle:@"You are not connected to the internet"
                               message:@"An internet connection is required."
                               delegate:nil
                               cancelButtonTitle:@"OK"
                               otherButtonTitles:nil];


                               Java:




                                                                                        26
L’Objective-C - Syntaxe


       Objective-C:
       UIAlertView *alertView = [[UIAlertView alloc]
                               initWithTitle:@"You are not connected to the internet"
                               message:@"An internet connection is required."
                               delegate:nil
                               cancelButtonTitle:@"OK"
                               otherButtonTitles:nil];


                               Java:
                               alertView.init("You are not connected to the internet","An
                               internet connection is required.",NULL,"OK",NULL);




                                                                                        26
DEMO


       27
Design Patterns - MVC




                        28
Design Patterns - MVC



    ‣   Architecture Modèle-Vue-
        Contrôleur (MVC)
        ‣   Modèle: contient les données et
            garantit leur intégrité
        ‣   Vue: présente ce que l'utilisateur
            voit
        ‣   Contrôleur: contrôle la logique de
            l’application




                                                 28
29
Design Patterns - Délégation



     ‣   Délégation




                               30
Design Patterns - Délégation



     ‣   Délégation




                               30
Design Patterns - Délégation



     ‣   Délégation




                               VS




                                    30
Design Patterns - Délégation



     ‣   Délégation




                               VS




                                    30
Design Patterns




                  31
Design Patterns



     ‣   Délégation




                      31
Design Patterns



     ‣   Délégation




                      31
Design Patterns



     ‣   Délégation

         « Un objet A délègue à un objet B la tâche de
         réaliser une action pour lui. »




                                                         31
Design Patterns



     ‣   Délégation

         « Un objet A délègue à un objet B la tâche de
         réaliser une action pour lui. »




                                                         31
Design Patterns



     ‣   Délégation

         « Un objet A délègue à un objet B la tâche de
         réaliser une action pour lui. »

     ‣   Example:




                                                         31
Design Patterns



     ‣   Délégation

         « Un objet A délègue à un objet B la tâche de
         réaliser une action pour lui. »

     ‣   Example:
         ‣   UITableView




                                                         31
DEMO


       32
Gestion de la mémoire




                        33
Gestion de la mémoire



     ‣   Pas de Garbage collector sur iOS




                                            33
Gestion de la mémoire



     ‣   Pas de Garbage collector sur iOS
     ‣   Mais:




                                            33
Gestion de la mémoire



     ‣   Pas de Garbage collector sur iOS
     ‣   Mais:
         ‣   La gestion de la mémoire est simple en
             Objective-C




                                                      33
Gestion de la mémoire



     ‣   Pas de Garbage collector sur iOS
     ‣   Mais:
         ‣   La gestion de la mémoire est simple en
             Objective-C
         ‣   Les objets sont alloués via:




                                                      33
Gestion de la mémoire



     ‣   Pas de Garbage collector sur iOS
     ‣   Mais:
         ‣   La gestion de la mémoire est simple en
             Objective-C
         ‣   Les objets sont alloués via:
             ‣
                 alloc




                                                      33
Gestion de la mémoire



     ‣   Pas de Garbage collector sur iOS
     ‣   Mais:
         ‣   La gestion de la mémoire est simple en
             Objective-C
         ‣   Les objets sont alloués via:
             ‣
                 alloc
             ‣
                 retain




                                                      33
Gestion de la mémoire



     ‣   Pas de Garbage collector sur iOS
     ‣   Mais:
         ‣   La gestion de la mémoire est simple en
             Objective-C
         ‣   Les objets sont alloués via:
             ‣
                 alloc
             ‣
                 retain
             ‣
                 copy




                                                      33
Gestion de la mémoire



     ‣   Pas de Garbage collector sur iOS
     ‣   Mais:
         ‣   La gestion de la mémoire est simple en
             Objective-C
         ‣   Les objets sont alloués via:
             ‣
                 alloc
             ‣
                 retain
             ‣
                 copy
         ‣   Ils sont détruits via:




                                                      33
Gestion de la mémoire



     ‣   Pas de Garbage collector sur iOS
     ‣   Mais:
         ‣   La gestion de la mémoire est simple en
             Objective-C
         ‣   Les objets sont alloués via:
             ‣
                 alloc
             ‣
                 retain
             ‣
                 copy
         ‣   Ils sont détruits via:
             ‣
                 release




                                                      33
Gestion de la mémoire



     ‣   Pas de Garbage collector sur iOS
     ‣   Mais:
         ‣   La gestion de la mémoire est simple en
             Objective-C
         ‣   Les objets sont alloués via:
             ‣
                 alloc
             ‣
                 retain
             ‣
                 copy
         ‣   Ils sont détruits via:
             ‣
                 release
     ‣   Sytème de «Retain Count»


                                                      33
Gestion de la mémoire




                        34
Gestion de la mémoire




                        34
Gestion de la mémoire




                        34
Gestion de la mémoire




                        34
Gestion de la mémoire




                        34
Gestion de la mémoire




                        34
Gestion de la mémoire




                        34
Gestion de la mémoire




                        34
Gestion de la mémoire




                        34
DEMO


       35
4, rue Ampère
22300 LANNION

contact@haploid.fr

+33 9 72 22 51 37

@haploid

www.haploid.fr

Introduction iOS Code d'Armor

  • 1.
  • 2.
    Qui sommes nous? Antoine Cabot Fondateur Antoine Cabot, diplômé de Télécom Bretagne et passionné de technologie mobile a conçu, développé et déployé des services mobiles pour l’opérateur mobile Orange durant 4 ans avant de fonder Haploid. Il a suivi et analysé la montée en puissance des Smartphones depuis 2004 et a été un des artisans du succès du lancement de l’iPhone en France en tant qu’expert Visual Voicemail pour Orange. Passionné d’innovation, il souhaite apporter aux utilisateurs des services convergents et de qualité.  Anthony Nevo Directeur Technique Anthony Névo, diplômé du Cork Institute of Technology et de l'ISTIC Rennes, est passionné par les nouvelles technologies et les interfaces graphiques depuis toujours. Il a eu la chance de travailler et d'acquérir une large expertise sur les 3 principales plateformes de ces 15 dernières années: les applications PC/Mac, les services et technologies sur le web et enfin les "apps" sur smartphones et tablettes. Parmi ses nombreuses expériences, Anthony a été employé chez Motorola, Cap Gemini ou encore Orange. 2
  • 3.
    Haploid en 2mots iOS Android HTML5 3
  • 4.
  • 5.
    Quelques chiffres envrac valorisation boursière de 527 milliards de $ (= Microsoft + Google) 4
  • 6.
    Quelques chiffres envrac valorisation boursière de 527 milliards de $ (= Microsoft + Google) 150 milliards de $ de revenus annuels sur le matériel 4
  • 7.
    Quelques chiffres envrac valorisation boursière de 527 milliards de $ (= Microsoft + Google) 150 milliards de $ de 150 milliards de $ de cash revenus annuels sur le matériel 4
  • 8.
    Quelques chiffres envrac valorisation boursière de 527 milliards de $ (= Microsoft + Google) 150 milliards de $ de 150 milliards de $ de cash revenus annuels sur le matériel 3 milliards de $ de revenus pour l’AppStore 4
  • 9.
    Quelques chiffres envrac valorisation boursière de 527 milliards de $ (= Microsoft + Google) 150 milliards de $ de 150 milliards de $ de cash revenus annuels sur le matériel 3 milliards de $ de revenus pour l’AppStore 500 Millions de terminaux iOS dans le monde 4
  • 10.
    Quelques chiffres envrac valorisation boursière de 527 milliards de $ (= Microsoft + Google) 150 milliards de $ de 150 milliards de $ de cash revenus annuels sur le 600 000 apps iPhone matériel 3 milliards de $ de revenus pour l’AppStore 500 Millions de terminaux iOS dans le monde 4
  • 11.
    Quelques chiffres envrac valorisation boursière de 527 milliards de $ (= Microsoft + Google) 150 milliards de $ de 150 milliards de $ de cash revenus annuels sur le 600 000 apps iPhone matériel 3 milliards de $ de 200 000 apps optimisées revenus pour l’AppStore 500 Millions de pour l’iPad terminaux iOS dans le monde 4
  • 12.
    Quelques chiffres envrac valorisation boursière de 527 milliards de $ (= Microsoft + Google) 150 milliards de $ de 150 milliards de $ de cash revenus annuels sur le 600 000 apps iPhone matériel 3 milliards de $ de 200 000 apps optimisées revenus pour l’AppStore 500 Millions de pour l’iPad terminaux iOS dans le monde 2000 nouvelles apps chaque semaine 4
  • 13.
    Quelques chiffres envrac valorisation boursière de 527 milliards de $ (= Microsoft + 46 millions d’applis Google) téléchargées chaque jour dans le monde (530 par seconde) 150 milliards de $ de 150 milliards de $ de cash revenus annuels sur le 600 000 apps iPhone matériel 3 milliards de $ de 200 000 apps optimisées revenus pour l’AppStore 500 Millions de pour l’iPad terminaux iOS dans le monde 2000 nouvelles apps chaque semaine 4
  • 14.
    Quelques chiffres envrac valorisation boursière de 527 milliards de $ (= Microsoft + 46 millions d’applis Google) téléchargées chaque jour dans le monde (530 par seconde) 150 milliards de $ de 150 milliards de $ de cash revenus annuels sur le 600 000 apps iPhone matériel 3 milliards de $ de 200 000 apps optimisées revenus pour l’AppStore 500 Millions de pour l’iPad terminaux iOS dans le monde 26 milliards de téléchargements depuis 2008 2000 nouvelles apps chaque semaine 4
  • 15.
    Quelques chiffres envrac valorisation boursière de 527 milliards de $ (= Microsoft + 46 millions d’applis Google) téléchargées chaque jour dans le monde (530 par seconde) 150 milliards de $ de 150 milliards de $ de cash revenus annuels sur le 600 000 apps iPhone matériel 3 milliards de $ de 200 000 apps optimisées revenus pour l’AppStore 500 Millions de pour l’iPad terminaux iOS dans le monde 26 milliards de téléchargements depuis 2008 65% d’applications payantes 2000 nouvelles apps chaque semaine 4
  • 16.
    Quelques chiffres envrac valorisation boursière de 527 milliards de $ (= Microsoft + 46 millions d’applis Google) téléchargées chaque jour dans le monde (530 par seconde) 150 milliards de $ de 150 milliards de $ de cash revenus annuels sur le 600 000 apps iPhone matériel 3 milliards de $ de 200 000 apps optimisées revenus pour l’AppStore 500 Millions de pour l’iPad terminaux iOS dans le monde 26 milliards de téléchargements depuis 2008 65% d’applications payantes 2000 nouvelles apps chaque semaine 76% des revenus mobiles 4
  • 17.
    Quelques chiffres envrac valorisation boursière de 527 milliards de $ (= Microsoft + 46 millions d’applis Google) téléchargées chaque jour dans le monde (530 par seconde) 150 milliards de $ de 150 milliards de $ de cash revenus annuels sur le 600 000 apps iPhone matériel 3 milliards de $ de 200 000 apps optimisées revenus pour l’AppStore 500 Millions de pour l’iPad terminaux iOS dans le monde 26 milliards de téléchargements depuis 2008 65% d’applications payantes 2000 nouvelles apps chaque semaine 76% des revenus mobiles 1 milliard de téléchargement pour Angry Birds 4
  • 18.
  • 19.
  • 20.
    iOS - Lagenèse 2007 2008 2009 2010 2011 2012 7
  • 21.
    iOS - Lagenèse Lancement de l’iPhone iOS 1.x 2007 2008 2009 2010 2011 2012 7
  • 22.
    iOS - Lagenèse Lancement de l’iPhone 3G Ouverture de l’AppStore Lancement de l’iPhone iOS 2.x iOS 1.x 2007 2008 2009 2010 2011 2012 7
  • 23.
    iOS - Lagenèse Lancement de l’iPhone 3GS 100 000 Lancement apps de l’iPhone disponibles 3G Ouverture iOS 3.x de l’AppStore Lancement de l’iPhone iOS 2.x iOS 1.x 2007 2008 2009 2010 2011 2012 7
  • 24.
    iOS - Lagenèse Lancement de l’iPhone 4 Lancement Lancement de l’iPhone de l’iPad 3GS 100 000 iOS 4.x Lancement apps de l’iPhone disponibles 3G Ouverture iOS 3.x de l’AppStore Lancement de l’iPhone iOS 2.x iOS 1.x 2007 2008 2009 2010 2011 2012 7
  • 25.
    iOS - Lagenèse Lancement de l’iPhone 4S Lancement Lancement de l’iPhone de l’iPad 2 4 Lancement Lancement de l’iPad iOS 5.x de l’iPhone 3GS 100 000 iOS 4.x Lancement apps de l’iPhone disponibles 3G Ouverture iOS 3.x de l’AppStore Lancement de l’iPhone iOS 2.x iOS 1.x 2007 2008 2009 2010 2011 2012 7
  • 26.
    iOS - Lagenèse Lancement de l’iPad 3 Lancement de l’iPhone 4S Lancement Lancement de l’iPhone de l’iPad 2 4 Lancement Lancement de l’iPad iOS 5.x de l’iPhone 3GS 100 000 iOS 4.x Lancement apps de l’iPhone disponibles 3G Ouverture iOS 3.x de l’AppStore Lancement de l’iPhone iOS 2.x iOS 1.x 2007 2008 2009 2010 2011 2012 7
  • 27.
    Pourquoi développer suriOS ? ‣ Accéder à 500 millions d’utilisateurs potentiels ‣ Bénéficier du système de paiement iTunes (300 millions de CB) ‣ Profiter de l’uniformité des terminaux (iPod Touch / iPhone / iPad) ‣ La validation Apple garantie la qualité de votre application ‣ La gestion de la sécurité (sandboxing) ‣ Maturité de la plateforme (héritée d’Unix et MacOS) 8
  • 28.
    L’environnement de développement ‣ Un mac ‣ XCode (Mac App Store) ‣ 1 iPod ou 1 iPhone ou 1 iPad ‣ 79€ / an pour publier autant d’applications que l’on veut ‣ 3 programmes ‣ Individual ‣ Company ‣ Enterprise ($299/an) ‣ University (free) ‣ déploiement sur 100 terminaux 9
  • 29.
    Processus de validation ‣ Les règles «We have over 350,000 apps in the App Store. We don't need any more Fart apps. If your app doesn't do something useful or provide some form of lasting entertainment, it may not be accepted.» «Apps must comply with all terms and conditions explained in the Apple iOS Human Interface Guidelines» «Apps that encourage users to use an Apple Device in a way that may cause damage to the device will be rejected» ‣ Choix des pays / choix des prix ‣ Produits In-App / Abonnements ‣ Le temps de validation ‣ Les bonnes pratiques (forum, ticket support) ‣ La validation express 10
  • 30.
    La vie d’uneapp sur l’App Store ‣ Les mises à jour ‣ Les notifications ‣ Le suivi des usages (Flurry & Google Analytics) ‣ Le marketing (screenshots, notes...) ‣ Les leviers (AppGratuites & Surikate) ‣ Mise en avant Apple en suivant la ligne de produits ‣ Les revenus ? ‣ Apple vous fait un virement tous les mois pour les ventes ‣ Monétisation publicitaire (iAd, AdMob) 11
  • 31.
    Etre dans letop 25 ? 12
  • 32.
    Un peu detechnique... 13
  • 33.
  • 34.
    Avant iOS ‣ NextStep (1988) 14
  • 35.
    Avant iOS ‣ NextStep (1988) 14
  • 36.
    Avant iOS ‣ NextStep (1988) 14
  • 37.
    Avant iOS ‣ NextStep (1988) 14
  • 38.
  • 39.
    Avant iOS ‣ Mac OS X Cheetah (2001) 15
  • 40.
    Avant iOS ‣ Mac OS X Cheetah (2001) 15
  • 41.
  • 42.
    Avant iOS ‣ OS X Mountain Lion (2012) 16
  • 43.
    Avant iOS ‣ OS X Mountain Lion (2012) 16
  • 44.
  • 45.
    Fondations ‣ UNIX (BSD + NextStep) 17
  • 46.
    Fondations ‣ UNIX (BSD + NextStep) ‣ Langages disponibles: 17
  • 47.
    Fondations ‣ UNIX (BSD + NextStep) ‣ Langages disponibles: ‣ C / C++ 17
  • 48.
    Fondations ‣ UNIX (BSD + NextStep) ‣ Langages disponibles: ‣ C / C++ ‣ Objective-C 17
  • 49.
    Fondations ‣ UNIX (BSD + NextStep) ‣ Langages disponibles: ‣ C / C++ ‣ Objective-C ‣ Web 17
  • 50.
    Fondations ‣ UNIX (BSD + NextStep) ‣ Langages disponibles: ‣ C / C++ ‣ Objective-C ‣ Web ‣ (Flash :) 17
  • 51.
    Fondations ‣ UNIX (BSD + NextStep) ‣ Langages disponibles: ‣ C / C++ ‣ Objective-C ‣ Web ‣ (Flash :) ‣ 4 niveaux d’abstraction: 17
  • 52.
    Fondations ‣ UNIX (BSD + NextStep) ‣ Langages disponibles: ‣ C / C++ ‣ Objective-C ‣ Web ‣ (Flash :) ‣ 4 niveaux d’abstraction: ‣ CoreOS 17
  • 53.
    Fondations ‣ UNIX (BSD + NextStep) ‣ Langages disponibles: ‣ C / C++ ‣ Objective-C ‣ Web ‣ (Flash :) ‣ 4 niveaux d’abstraction: ‣ CoreOS ‣ Core Services 17
  • 54.
    Fondations ‣ UNIX (BSD + NextStep) ‣ Langages disponibles: ‣ C / C++ ‣ Objective-C ‣ Web ‣ (Flash :) ‣ 4 niveaux d’abstraction: ‣ CoreOS ‣ Core Services ‣ Media 17
  • 55.
    Fondations ‣ UNIX (BSD + NextStep) ‣ Langages disponibles: ‣ C / C++ ‣ Objective-C ‣ Web ‣ (Flash :) ‣ 4 niveaux d’abstraction: ‣ CoreOS ‣ Core Services ‣ Media ‣ Cocoa Touch 17
  • 56.
    Fondations ‣ UNIX (BSD + NextStep) ‣ Langages disponibles: ‣ C / C++ ‣ Objective-C ‣ Web ‣ (Flash :) ‣ 4 niveaux d’abstraction: ‣ CoreOS ‣ Core Services ‣ Media ‣ Cocoa Touch 17
  • 57.
    Fondations ‣ UNIX (BSD + NextStep) ‣ Langages disponibles: ‣ C / C++ ‣ Objective-C ‣ Web ‣ (Flash :) ‣ 4 niveaux d’abstraction: ‣ CoreOS ‣ Core Services ‣ Media ‣ Cocoa Touch 17
  • 58.
  • 59.
    Core OS ‣ Couche la plus basse 18
  • 60.
    Core OS ‣ Couche la plus basse ‣ Utilisée principalement pour: 18
  • 61.
    Core OS ‣ Couche la plus basse ‣ Utilisée principalement pour: ‣ Communication (bluetooth, accessoires, ...) 18
  • 62.
    Core OS ‣ Couche la plus basse ‣ Utilisée principalement pour: ‣ Communication (bluetooth, accessoires, ...) ‣ Sécurité (trousseau d’accès, cryptographie, ...) 18
  • 63.
    Core OS ‣ Couche la plus basse ‣ Utilisée principalement pour: ‣ Communication (bluetooth, accessoires, ...) ‣ Sécurité (trousseau d’accès, cryptographie, ...) ‣ Accélération matérielle (via le framework Accelerate) 18
  • 64.
    Core OS ‣ Couche la plus basse ‣ Utilisée principalement pour: ‣ Communication (bluetooth, accessoires, ...) ‣ Sécurité (trousseau d’accès, cryptographie, ...) ‣ Accélération matérielle (via le framework Accelerate) ‣ Fonctions systèmes Unix: 18
  • 65.
    Core OS ‣ Couche la plus basse ‣ Utilisée principalement pour: ‣ Communication (bluetooth, accessoires, ...) ‣ Sécurité (trousseau d’accès, cryptographie, ...) ‣ Accélération matérielle (via le framework Accelerate) ‣ Fonctions systèmes Unix: ‣ Threading 18
  • 66.
    Core OS ‣ Couche la plus basse ‣ Utilisée principalement pour: ‣ Communication (bluetooth, accessoires, ...) ‣ Sécurité (trousseau d’accès, cryptographie, ...) ‣ Accélération matérielle (via le framework Accelerate) ‣ Fonctions systèmes Unix: ‣ Threading ‣ Réseau (Sockets, ...) 18
  • 67.
    Core OS ‣ Couche la plus basse ‣ Utilisée principalement pour: ‣ Communication (bluetooth, accessoires, ...) ‣ Sécurité (trousseau d’accès, cryptographie, ...) ‣ Accélération matérielle (via le framework Accelerate) ‣ Fonctions systèmes Unix: ‣ Threading ‣ Réseau (Sockets, ...) ‣ Accès au système de fichiers 18
  • 68.
    Core OS ‣ Couche la plus basse ‣ Utilisée principalement pour: ‣ Communication (bluetooth, accessoires, ...) ‣ Sécurité (trousseau d’accès, cryptographie, ...) ‣ Accélération matérielle (via le framework Accelerate) ‣ Fonctions systèmes Unix: ‣ Threading ‣ Réseau (Sockets, ...) ‣ Accès au système de fichiers ‣ Gestion de la mémoire 18
  • 69.
    Core OS ‣ Couche la plus basse ‣ Utilisée principalement pour: ‣ Communication (bluetooth, accessoires, ...) ‣ Sécurité (trousseau d’accès, cryptographie, ...) ‣ Accélération matérielle (via le framework Accelerate) ‣ Fonctions systèmes Unix: ‣ Threading ‣ Réseau (Sockets, ...) ‣ Accès au système de fichiers ‣ Gestion de la mémoire ‣ ... 18
  • 70.
  • 71.
    Core Service ‣ Propose un grand nombre de services: 19
  • 72.
    Core Service ‣ Propose un grand nombre de services: ‣ Réseau (CFNetwork) 19
  • 73.
    Core Service ‣ Propose un grand nombre de services: ‣ Réseau (CFNetwork) ‣ Core Data / SQLite 19
  • 74.
    Core Service ‣ Propose un grand nombre de services: ‣ Réseau (CFNetwork) ‣ Core Data / SQLite ‣ Foundation: 19
  • 75.
    Core Service ‣ Propose un grand nombre de services: ‣ Réseau (CFNetwork) ‣ Core Data / SQLite ‣ Foundation: ‣ gestion de types de données complexes (chaines, dates, ...) 19
  • 76.
    Core Service ‣ Propose un grand nombre de services: ‣ Réseau (CFNetwork) ‣ Core Data / SQLite ‣ Foundation: ‣ gestion de types de données complexes (chaines, dates, ...) ‣ préférences 19
  • 77.
    Core Service ‣ Propose un grand nombre de services: ‣ Réseau (CFNetwork) ‣ Core Data / SQLite ‣ Foundation: ‣ gestion de types de données complexes (chaines, dates, ...) ‣ préférences ‣ ... 19
  • 78.
    Core Service ‣ Propose un grand nombre de services: ‣ Réseau (CFNetwork) ‣ Core Data / SQLite ‣ Foundation: ‣ gestion de types de données complexes (chaines, dates, ...) ‣ préférences ‣ ... ‣ Géolocalisation (Core Location) 19
  • 79.
    Core Service ‣ Propose un grand nombre de services: ‣ Réseau (CFNetwork) ‣ Core Data / SQLite ‣ Foundation: ‣ gestion de types de données complexes (chaines, dates, ...) ‣ préférences ‣ ... ‣ Géolocalisation (Core Location) ‣ Gestion des achats «In-app» 19
  • 80.
    Core Service ‣ Propose un grand nombre de services: ‣ Réseau (CFNetwork) ‣ Core Data / SQLite ‣ Foundation: ‣ gestion de types de données complexes (chaines, dates, ...) ‣ préférences ‣ ... ‣ Géolocalisation (Core Location) ‣ Gestion des achats «In-app» ‣ Calendrier, Carnet d’adresses, Kiosque, ... 19
  • 81.
  • 82.
    Media ‣ Ensemble de technologies permettant la création d’interfaces riches: 20
  • 83.
    Media ‣ Ensemble de technologies permettant la création d’interfaces ‣ riches: Visuel: 20
  • 84.
    Media ‣ Ensemble de technologies permettant la création d’interfaces ‣ riches: Visuel: ‣ Core Graphics (dessin bitmap et vectoriel en 2D) 20
  • 85.
    Media ‣ Ensemble de technologies permettant la création d’interfaces ‣ riches: Visuel: ‣ Core Graphics (dessin bitmap et vectoriel en 2D) ‣ Core Animation 20
  • 86.
    Media ‣ Ensemble de technologies permettant la création d’interfaces ‣ riches: Visuel: ‣ Core Graphics (dessin bitmap et vectoriel en 2D) ‣ Core Animation ‣ Core Image (traitement d’image) 20
  • 87.
    Media ‣ Ensemble de technologies permettant la création d’interfaces ‣ riches: Visuel: ‣ Core Graphics (dessin bitmap et vectoriel en 2D) ‣ Core Animation ‣ Core Image (traitement d’image) ‣ OpenGL ES (affichage 2D / 3D accéléré) 20
  • 88.
    Media ‣ Ensemble de technologies permettant la création d’interfaces ‣ riches: Visuel: ‣ Core Graphics (dessin bitmap et vectoriel en 2D) ‣ Core Animation ‣ Core Image (traitement d’image) ‣ OpenGL ES (affichage 2D / 3D accéléré) ‣ Core Text 20
  • 89.
    Media ‣ Ensemble de technologies permettant la création d’interfaces ‣ riches: Visuel: ‣ Core Graphics (dessin bitmap et vectoriel en 2D) ‣ Core Animation ‣ Core Image (traitement d’image) ‣ OpenGL ES (affichage 2D / 3D accéléré) ‣ Core Text ‣ Accès à l’album photo 20
  • 90.
  • 91.
    Media ‣ Ensemble de technologies permettant la création d’interfaces riches: 21
  • 92.
    Media ‣ Ensemble de technologies permettant la création d’interfaces ‣ riches:/ Vidéo: Audio 21
  • 93.
    Media ‣ Ensemble de technologies permettant la création d’interfaces ‣ riches:/ Vidéo: Audio ‣ Accès à la bibliothèque iTunes 21
  • 94.
    Media ‣ Ensemble de technologies permettant la création d’interfaces ‣ riches:/ Vidéo: Audio ‣ Accès à la bibliothèque iTunes ‣ Lecture / enregistrement audio / vidéo 21
  • 95.
    Media ‣ Ensemble de technologies permettant la création d’interfaces ‣ riches:/ Vidéo: Audio ‣ Accès à la bibliothèque iTunes ‣ Lecture / enregistrement audio / vidéo ‣ Manipulation / traitement des médias 21
  • 96.
    Media ‣ Ensemble de technologies permettant la création d’interfaces ‣ riches:/ Vidéo: Audio ‣ Accès à la bibliothèque iTunes ‣ Lecture / enregistrement audio / vidéo ‣ Manipulation / traitement des médias ‣ Spatialisation du son (OpenAL) 21
  • 97.
    Media ‣ Ensemble de technologies permettant la création d’interfaces ‣ riches:/ Vidéo: Audio ‣ Accès à la bibliothèque iTunes ‣ Lecture / enregistrement audio / vidéo ‣ Manipulation / traitement des médias ‣ Spatialisation du son (OpenAL) 21
  • 98.
    Media ‣ Ensemble de technologies permettant la création d’interfaces ‣ riches:/ Vidéo: Audio ‣ Accès à la bibliothèque iTunes ‣ Lecture / enregistrement audio / vidéo ‣ Manipulation / traitement des médias ‣ Spatialisation du son (OpenAL) ‣ AirPlay 21
  • 99.
    Media ‣ Ensemble de technologies permettant la création d’interfaces ‣ riches:/ Vidéo: Audio ‣ Accès à la bibliothèque iTunes ‣ Lecture / enregistrement audio / vidéo ‣ Manipulation / traitement des médias ‣ Spatialisation du son (OpenAL) ‣ AirPlay ‣ Ecran distant 21
  • 100.
    Media ‣ Ensemble de technologies permettant la création d’interfaces ‣ riches:/ Vidéo: Audio ‣ Accès à la bibliothèque iTunes ‣ Lecture / enregistrement audio / vidéo ‣ Manipulation / traitement des médias ‣ Spatialisation du son (OpenAL) ‣ AirPlay ‣ Ecran distant ‣ Mirroring 21
  • 101.
  • 102.
    Cocoa Touch ‣ Couche la plus haute. 22
  • 103.
    Cocoa Touch ‣ Couche la plus haute. ‣ Partie visible de l’iceberg. 22
  • 104.
    Cocoa Touch ‣ Couche la plus haute. ‣ Partie visible de l’iceberg. ‣ Propose une série de composants déjà disponibles: 22
  • 105.
    Cocoa Touch ‣ Couche la plus haute. ‣ Partie visible de l’iceberg. ‣ Propose une série de composants déjà disponibles: ‣ UIKit: élements graphiques de base (listes, boutons, labels, ...) 22
  • 106.
    Cocoa Touch ‣ Couche la plus haute. ‣ Partie visible de l’iceberg. ‣ Propose une série de composants déjà disponibles: ‣ UIKit: élements graphiques de base (listes, boutons, labels, ...) ‣ Map Kit 22
  • 107.
    Cocoa Touch ‣ Couche la plus haute. ‣ Partie visible de l’iceberg. ‣ Propose une série de composants déjà disponibles: ‣ UIKit: élements graphiques de base (listes, boutons, labels, ...) ‣ Map Kit ‣ Message UI 22
  • 108.
    Cocoa Touch ‣ Couche la plus haute. ‣ Partie visible de l’iceberg. ‣ Propose une série de composants déjà disponibles: ‣ UIKit: élements graphiques de base (listes, boutons, labels, ...) ‣ Map Kit ‣ Message UI ‣ Game Kit 22
  • 109.
    Cocoa Touch ‣ Couche la plus haute. ‣ Partie visible de l’iceberg. ‣ Propose une série de composants déjà disponibles: ‣ UIKit: élements graphiques de base (listes, boutons, labels, ...) ‣ Map Kit ‣ Message UI ‣ Game Kit ‣ iAd 22
  • 110.
    Cocoa Touch ‣ Couche la plus haute. ‣ Partie visible de l’iceberg. ‣ Propose une série de composants déjà disponibles: ‣ UIKit: élements graphiques de base (listes, boutons, labels, ...) ‣ Map Kit ‣ Message UI ‣ Game Kit ‣ iAd ‣ Twitter, Address Book UI, Event Kit UI 22
  • 111.
  • 112.
    L’Objective-C ‣ Inventé au début des années 80 par Brad Cox 23
  • 113.
    L’Objective-C ‣ Inventé au début des années 80 par Brad Cox ‣ S’inspire de concepts provenant de Smalltalk 23
  • 114.
    L’Objective-C ‣ Inventé au début des années 80 par Brad Cox ‣ S’inspire de concepts provenant de Smalltalk ‣ A l’origine, une simple extension du C 23
  • 115.
  • 116.
    L’Objective-C - Syntaxe ‣ Déclaration de méthodes / fonctions 24
  • 117.
    L’Objective-C - Syntaxe ‣ Déclaration de méthodes / fonctions 24
  • 118.
    L’Objective-C - Syntaxe ‣ Déclaration de méthodes / fonctions ‣ C 24
  • 119.
    L’Objective-C - Syntaxe ‣ Déclaration de méthodes / fonctions ‣ C int calculateSomething(int a, int b); 24
  • 120.
    L’Objective-C - Syntaxe ‣ Déclaration de méthodes / fonctions ‣ C int calculateSomething(int a, int b); ‣ Java 24
  • 121.
    L’Objective-C - Syntaxe ‣ Déclaration de méthodes / fonctions ‣ C int calculateSomething(int a, int b); ‣ Java int calculateSomething(int a, int b); 24
  • 122.
    L’Objective-C - Syntaxe ‣ Déclaration de méthodes / fonctions ‣ C int calculateSomething(int a, int b); ‣ Java int calculateSomething(int a, int b); ‣ Objective-C 24
  • 123.
    L’Objective-C - Syntaxe ‣ Déclaration de méthodes / fonctions ‣ C int calculateSomething(int a, int b); ‣ Java int calculateSomething(int a, int b); ‣ Objective-C int calculateSomethingUsing:(int)a and:(int)b; 24
  • 124.
  • 125.
    L’Objective-C - Syntaxe ‣ Appel de méthodes / fonctions 25
  • 126.
    L’Objective-C - Syntaxe ‣ Appel de méthodes / fonctions 25
  • 127.
    L’Objective-C - Syntaxe ‣ Appel de méthodes / fonctions ‣ C 25
  • 128.
    L’Objective-C - Syntaxe ‣ Appel de méthodes / fonctions ‣ C int result; 25
  • 129.
    L’Objective-C - Syntaxe ‣ Appel de méthodes / fonctions ‣ C int result; result = calculateSomething(42, 12); 25
  • 130.
    L’Objective-C - Syntaxe ‣ Appel de méthodes / fonctions ‣ C int result; result = calculateSomething(42, 12); ‣ Java 25
  • 131.
    L’Objective-C - Syntaxe ‣ Appel de méthodes / fonctions ‣ C int result; result = calculateSomething(42, 12); ‣ Java int result; 25
  • 132.
    L’Objective-C - Syntaxe ‣ Appel de méthodes / fonctions ‣ C int result; result = calculateSomething(42, 12); ‣ Java int result; result = myObject.calculateSomething(42, 12); 25
  • 133.
    L’Objective-C - Syntaxe ‣ Appel de méthodes / fonctions ‣ C int result; result = calculateSomething(42, 12); ‣ Java int result; result = myObject.calculateSomething(42, 12); ‣ Objective-C 25
  • 134.
    L’Objective-C - Syntaxe ‣ Appel de méthodes / fonctions ‣ C int result; result = calculateSomething(42, 12); ‣ Java int result; result = myObject.calculateSomething(42, 12); ‣ Objective-C int result; 25
  • 135.
    L’Objective-C - Syntaxe ‣ Appel de méthodes / fonctions ‣ C int result; result = calculateSomething(42, 12); ‣ Java int result; result = myObject.calculateSomething(42, 12); ‣ Objective-C int result; result = [myObject calculateSomethingUsing:42 and:12]; 25
  • 136.
  • 137.
  • 138.
  • 139.
    L’Objective-C - Syntaxe Objective-C: UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"You are not connected to the internet" message:@"An internet connection is required." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 26
  • 140.
    L’Objective-C - Syntaxe Objective-C: UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"You are not connected to the internet" message:@"An internet connection is required." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; Java: 26
  • 141.
    L’Objective-C - Syntaxe Objective-C: UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"You are not connected to the internet" message:@"An internet connection is required." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; Java: alertView.init("You are not connected to the internet","An internet connection is required.",NULL,"OK",NULL); 26
  • 142.
  • 143.
  • 144.
    Design Patterns -MVC ‣ Architecture Modèle-Vue- Contrôleur (MVC) ‣ Modèle: contient les données et garantit leur intégrité ‣ Vue: présente ce que l'utilisateur voit ‣ Contrôleur: contrôle la logique de l’application 28
  • 145.
  • 146.
    Design Patterns -Délégation ‣ Délégation 30
  • 147.
    Design Patterns -Délégation ‣ Délégation 30
  • 148.
    Design Patterns -Délégation ‣ Délégation VS 30
  • 149.
    Design Patterns -Délégation ‣ Délégation VS 30
  • 150.
  • 151.
    Design Patterns ‣ Délégation 31
  • 152.
    Design Patterns ‣ Délégation 31
  • 153.
    Design Patterns ‣ Délégation « Un objet A délègue à un objet B la tâche de réaliser une action pour lui. » 31
  • 154.
    Design Patterns ‣ Délégation « Un objet A délègue à un objet B la tâche de réaliser une action pour lui. » 31
  • 155.
    Design Patterns ‣ Délégation « Un objet A délègue à un objet B la tâche de réaliser une action pour lui. » ‣ Example: 31
  • 156.
    Design Patterns ‣ Délégation « Un objet A délègue à un objet B la tâche de réaliser une action pour lui. » ‣ Example: ‣ UITableView 31
  • 157.
  • 158.
    Gestion de lamémoire 33
  • 159.
    Gestion de lamémoire ‣ Pas de Garbage collector sur iOS 33
  • 160.
    Gestion de lamémoire ‣ Pas de Garbage collector sur iOS ‣ Mais: 33
  • 161.
    Gestion de lamémoire ‣ Pas de Garbage collector sur iOS ‣ Mais: ‣ La gestion de la mémoire est simple en Objective-C 33
  • 162.
    Gestion de lamémoire ‣ Pas de Garbage collector sur iOS ‣ Mais: ‣ La gestion de la mémoire est simple en Objective-C ‣ Les objets sont alloués via: 33
  • 163.
    Gestion de lamémoire ‣ Pas de Garbage collector sur iOS ‣ Mais: ‣ La gestion de la mémoire est simple en Objective-C ‣ Les objets sont alloués via: ‣ alloc 33
  • 164.
    Gestion de lamémoire ‣ Pas de Garbage collector sur iOS ‣ Mais: ‣ La gestion de la mémoire est simple en Objective-C ‣ Les objets sont alloués via: ‣ alloc ‣ retain 33
  • 165.
    Gestion de lamémoire ‣ Pas de Garbage collector sur iOS ‣ Mais: ‣ La gestion de la mémoire est simple en Objective-C ‣ Les objets sont alloués via: ‣ alloc ‣ retain ‣ copy 33
  • 166.
    Gestion de lamémoire ‣ Pas de Garbage collector sur iOS ‣ Mais: ‣ La gestion de la mémoire est simple en Objective-C ‣ Les objets sont alloués via: ‣ alloc ‣ retain ‣ copy ‣ Ils sont détruits via: 33
  • 167.
    Gestion de lamémoire ‣ Pas de Garbage collector sur iOS ‣ Mais: ‣ La gestion de la mémoire est simple en Objective-C ‣ Les objets sont alloués via: ‣ alloc ‣ retain ‣ copy ‣ Ils sont détruits via: ‣ release 33
  • 168.
    Gestion de lamémoire ‣ Pas de Garbage collector sur iOS ‣ Mais: ‣ La gestion de la mémoire est simple en Objective-C ‣ Les objets sont alloués via: ‣ alloc ‣ retain ‣ copy ‣ Ils sont détruits via: ‣ release ‣ Sytème de «Retain Count» 33
  • 169.
    Gestion de lamémoire 34
  • 170.
    Gestion de lamémoire 34
  • 171.
    Gestion de lamémoire 34
  • 172.
    Gestion de lamémoire 34
  • 173.
    Gestion de lamémoire 34
  • 174.
    Gestion de lamémoire 34
  • 175.
    Gestion de lamémoire 34
  • 176.
    Gestion de lamémoire 34
  • 177.
    Gestion de lamémoire 34
  • 178.
  • 179.
    4, rue Ampère 22300LANNION contact@haploid.fr +33 9 72 22 51 37 @haploid www.haploid.fr

Notes de l'éditeur

  • #2 \n
  • #3 \n
  • #4 \n
  • #5 \n
  • #6 \n
  • #7 \n
  • #8 \n
  • #9 \n
  • #10 \n
  • #11 \n
  • #12 \n
  • #13 \n
  • #14 \n
  • #15 \n
  • #16 \n
  • #17 \n
  • #18 \n
  • #19 \n
  • #20 \n
  • #21 \n
  • #22 \n
  • #23 \n
  • #24 \n
  • #25 \n
  • #26 \n
  • #27 \n
  • #28 \n
  • #29 \n
  • #30 \n
  • #31 \n
  • #32 \n
  • #33 \n
  • #34 \n
  • #35 \n
  • #36 \n
  • #37 \n
  • #38 \n
  • #39 \n
  • #40 \n
  • #41 \n
  • #42 \n
  • #43 \n
  • #44 \n
  • #45 42% n’utilisent que le top 25\n\n
  • #46 \n
  • #47 \n
  • #48 \n
  • #49 \n
  • #50 \n
  • #51 \n
  • #52 \n
  • #53 \n
  • #54 \n
  • #55 BSD (Berkeley Software Distribution) remonte aux années 80\n
  • #56 BSD (Berkeley Software Distribution) remonte aux années 80\n
  • #57 BSD (Berkeley Software Distribution) remonte aux années 80\n
  • #58 BSD (Berkeley Software Distribution) remonte aux années 80\n
  • #59 BSD (Berkeley Software Distribution) remonte aux années 80\n
  • #60 BSD (Berkeley Software Distribution) remonte aux années 80\n
  • #61 BSD (Berkeley Software Distribution) remonte aux années 80\n
  • #62 BSD (Berkeley Software Distribution) remonte aux années 80\n
  • #63 BSD (Berkeley Software Distribution) remonte aux années 80\n
  • #64 BSD (Berkeley Software Distribution) remonte aux années 80\n
  • #65 BSD (Berkeley Software Distribution) remonte aux années 80\n
  • #66 BSD (Berkeley Software Distribution) remonte aux années 80\n
  • #67 BSD (Berkeley Software Distribution) remonte aux années 80\n
  • #68 trousseau d’accès: partager des mots de passe entre applications\n
  • #69 trousseau d’accès: partager des mots de passe entre applications\n
  • #70 trousseau d’accès: partager des mots de passe entre applications\n
  • #71 trousseau d’accès: partager des mots de passe entre applications\n
  • #72 trousseau d’accès: partager des mots de passe entre applications\n
  • #73 trousseau d’accès: partager des mots de passe entre applications\n
  • #74 trousseau d’accès: partager des mots de passe entre applications\n
  • #75 trousseau d’accès: partager des mots de passe entre applications\n
  • #76 trousseau d’accès: partager des mots de passe entre applications\n
  • #77 trousseau d’accès: partager des mots de passe entre applications\n
  • #78 trousseau d’accès: partager des mots de passe entre applications\n
  • #79 CFNetwork: sockets, SSL / TLS, HTTP, HTTPS avec authentification, FTP, Bonjour\nFoundation (Obj-C. Wrapper class) / CoreFoundation (C)\n
  • #80 CFNetwork: sockets, SSL / TLS, HTTP, HTTPS avec authentification, FTP, Bonjour\nFoundation (Obj-C. Wrapper class) / CoreFoundation (C)\n
  • #81 CFNetwork: sockets, SSL / TLS, HTTP, HTTPS avec authentification, FTP, Bonjour\nFoundation (Obj-C. Wrapper class) / CoreFoundation (C)\n
  • #82 CFNetwork: sockets, SSL / TLS, HTTP, HTTPS avec authentification, FTP, Bonjour\nFoundation (Obj-C. Wrapper class) / CoreFoundation (C)\n
  • #83 CFNetwork: sockets, SSL / TLS, HTTP, HTTPS avec authentification, FTP, Bonjour\nFoundation (Obj-C. Wrapper class) / CoreFoundation (C)\n
  • #84 CFNetwork: sockets, SSL / TLS, HTTP, HTTPS avec authentification, FTP, Bonjour\nFoundation (Obj-C. Wrapper class) / CoreFoundation (C)\n
  • #85 CFNetwork: sockets, SSL / TLS, HTTP, HTTPS avec authentification, FTP, Bonjour\nFoundation (Obj-C. Wrapper class) / CoreFoundation (C)\n
  • #86 CFNetwork: sockets, SSL / TLS, HTTP, HTTPS avec authentification, FTP, Bonjour\nFoundation (Obj-C. Wrapper class) / CoreFoundation (C)\n
  • #87 CFNetwork: sockets, SSL / TLS, HTTP, HTTPS avec authentification, FTP, Bonjour\nFoundation (Obj-C. Wrapper class) / CoreFoundation (C)\n
  • #88 CFNetwork: sockets, SSL / TLS, HTTP, HTTPS avec authentification, FTP, Bonjour\nFoundation (Obj-C. Wrapper class) / CoreFoundation (C)\n
  • #89 CFNetwork: sockets, SSL / TLS, HTTP, HTTPS avec authentification, FTP, Bonjour\nFoundation (Obj-C. Wrapper class) / CoreFoundation (C)\n
  • #90 CFNetwork: sockets, SSL / TLS, HTTP, HTTPS avec authentification, FTP, Bonjour\nFoundation (Obj-C. Wrapper class) / CoreFoundation (C)\n
  • #91 CFNetwork: sockets, SSL / TLS, HTTP, HTTPS avec authentification, FTP, Bonjour\nFoundation (Obj-C. Wrapper class) / CoreFoundation (C)\n
  • #92 CFNetwork: sockets, SSL / TLS, HTTP, HTTPS avec authentification, FTP, Bonjour\nFoundation (Obj-C. Wrapper class) / CoreFoundation (C)\n
  • #93 CFNetwork: sockets, SSL / TLS, HTTP, HTTPS avec authentification, FTP, Bonjour\nFoundation (Obj-C. Wrapper class) / CoreFoundation (C)\n
  • #94 CFNetwork: sockets, SSL / TLS, HTTP, HTTPS avec authentification, FTP, Bonjour\nFoundation (Obj-C. Wrapper class) / CoreFoundation (C)\n
  • #95 CFNetwork: sockets, SSL / TLS, HTTP, HTTPS avec authentification, FTP, Bonjour\nFoundation (Obj-C. Wrapper class) / CoreFoundation (C)\n
  • #96 CFNetwork: sockets, SSL / TLS, HTTP, HTTPS avec authentification, FTP, Bonjour\nFoundation (Obj-C. Wrapper class) / CoreFoundation (C)\n
  • #97 \n
  • #98 \n
  • #99 \n
  • #100 \n
  • #101 \n
  • #102 \n
  • #103 \n
  • #104 \n
  • #105 \n
  • #106 \n
  • #107 \n
  • #108 \n
  • #109 \n
  • #110 \n
  • #111 \n
  • #112 \n
  • #113 \n
  • #114 \n
  • #115 \n
  • #116 Ecriture d’un pre-processor pour C contenant quelques possibilités de Smalltalk (notamment la règle: «tout est un object», notion de «messages», ...)\n
  • #117 Ecriture d’un pre-processor pour C contenant quelques possibilités de Smalltalk (notamment la règle: «tout est un object», notion de «messages», ...)\n
  • #118 Ecriture d’un pre-processor pour C contenant quelques possibilités de Smalltalk (notamment la règle: «tout est un object», notion de «messages», ...)\n
  • #119 \n
  • #120 \n
  • #121 \n
  • #122 \n
  • #123 \n
  • #124 \n
  • #125 \n
  • #126 \n
  • #127 On ne parle pas de méthodes en Objective-C mais de messages\n
  • #128 On ne parle pas de méthodes en Objective-C mais de messages\n
  • #129 On ne parle pas de méthodes en Objective-C mais de messages\n
  • #130 On ne parle pas de méthodes en Objective-C mais de messages\n
  • #131 On ne parle pas de méthodes en Objective-C mais de messages\n
  • #132 On ne parle pas de méthodes en Objective-C mais de messages\n
  • #133 On ne parle pas de méthodes en Objective-C mais de messages\n
  • #134 On ne parle pas de méthodes en Objective-C mais de messages\n
  • #135 On ne parle pas de méthodes en Objective-C mais de messages\n
  • #136 On ne parle pas de méthodes en Objective-C mais de messages\n
  • #137 On ne parle pas de méthodes en Objective-C mais de messages\n
  • #138 \n
  • #139 \n
  • #140 \n
  • #141 \n
  • #142 \n
  • #143 \n
  • #144 Patrons/Méthodes de conception en Français\nModèles utilisés dans l’ensemble du système iOS\nLa vue n’effectue aucun traitement et se contente d’afficher les résultats des traitements ainsi que les interactions avec l’utilisateur\n
  • #145 Patrons/Méthodes de conception en Français\nModèles utilisés dans l’ensemble du système iOS\nLa vue n’effectue aucun traitement et se contente d’afficher les résultats des traitements ainsi que les interactions avec l’utilisateur\n
  • #146 \n
  • #147 \n
  • #148 \n
  • #149 \n
  • #150 \n
  • #151 \n
  • #152 \n
  • #153 \n
  • #154 \n
  • #155 \n
  • #156 \n
  • #157 \n
  • #158 \n
  • #159 \n
  • #160 \n
  • #161 \n
  • #162 \n
  • #163 \n
  • #164 \n
  • #165 \n
  • #166 \n
  • #167 \n
  • #168 \n
  • #169 \n
  • #170 \n
  • #171 \n
  • #172 \n
  • #173 \n
  • #174 \n
  • #175 \n
  • #176 \n