HELLO XCODE 4
Jean-Alexandre Iragne
 Benjamin Bouachour
    Édouard Richard


   Mathieu Godart
   Nicolas Lauquin



14 Avril 2011 @ CocoaHeads Paris
NETCOSPORTS
•   1er réseau de fans de sports

•   16 développeurs en France

•   Présent sur 5 plateformes 350 apps

•   Nous sommes les pionniers de la conception et la réalisation
    d’applications mobiles dans le domaine du Sport en Europe.

•   Nous avons gagné un prix lors de la première session des Mobile
    Awards organisée en France pour l’application « RTL
    FOOTBALL »
NETCOSPORTS
pense, crée et fait connaitre vos applications mobiles
•Notre philosophie est d'allier artisanat et nouvelles technologies
•Développement d’applications mobiles natives pour iPhone et Android
INTRODUCTION
• Une   app attendue

• Une   modification du processus de développement

• Un   gros changement

• Des   fonctionnalités perdues

• Des   évolutions
UN LOGICIEL ATTENDU


• Show   à la WWDC 10

• Une   beta instable

• Une   version stable «juste par le nom»

• Une   release quelques semaines après
MODIFICATION DU
                PROCESSUS DE
               DÉVELOPPEMENT
• Fusion   des outils

• interface   builder

• Debug

• SCM
DE GROS CHANGEMENTS


• Une   fenêtre unique

• Une   navigation par onglet

• Un   menu à droite
CE QUI NE MARCHE PLUS


• Les   users script

• Le   drag & drop de groupe

• La   création de custom view

• Détacher    le debugger
EVOLUTIONS

• L’UI
• Interface Builder
• L’édition de code
• Le SCM
• La compilation
• Le Debugger
Interface Utilisateur



              par Benjamin Bouachour
Aspect Général
•4   Éléments principaux

 • Navigateur

 • Editeur

 • Inspecteur

 • Débogueur
Navigateur
• Workspace

• Explorateur   de projet courant

• Différentes   vues :

 • Arbre   de fichiers

 • Par   symbol du projet

 • Outil   de recherche
Navigateur
• Différentes   vues

 • Résultat    de la compilation

 • Stack   du débogueur

 • Les   breackpoints du projets

 • Les   log

• Pour   chaque vue une bar de filtres
Editeur
Editeur

• Intègre   Interface Builder



• Onglets
Editeur
• Différents   Mode :

 • Mode   Editeur : un fichier ouvert

 • Mode Assitant    : plusieurs fichiers ouverts sur le
   même onglets

 • Mode versioning : deux fichiers ouverts pour
   comparaison
Inspecteur
• Détails   du fichiers



• Aide




• Inspecteur   d'interface builder
Inspecteur
• Différents   Éléments disponibles

 • Templates    de fichiers

 • Snippet

 • Élement     graphique pour Interface Builder

 • Média   du projets
Débogueur
• Intégré   à la fenêtre principale

• Console

• Les   cibles : variables à instant t

•3   vues
Tool Bar
• Boutton    vers les différents mode

• Lancer   / arrêter un projet

• Choix    différentes Vues

• Breakpoints

• Choix    du scheme

• Organize
Raccourcis
• Navigateur   :

 • Pomme   (+ shift) + 0 = ouverture/fermeture

 • Pomme  + ctrl (+ shift) + 1-7 = Différents
  navigateurs

 • Alt+ shift + click fichiers = choix dans
  l'ouverture du fichiers
Raccourcis
• Inspecteur

 • Pomme   + alt (+ shift) + 0 = ouverture/
   fermeture

 • Pomme    + alt (+ shift) + 1-2/1-7 = Différents
   types d'inspecteurs
Raccourcis
• Débogueur

 • Pomme   + R = lancer un projet

 • Pomme   + shift + Y = ouverture/fermeture

 • Pomme   + shift + . = arrêt du projet
Raccourcis
• Editeur

 • Pomme    + ctrl + fleche droite/gauche = fichiers
   suivants/précédents

 • Pomme    + ctrl + flèche haut = .h/.m

 • Pomme    + enter = mode editor

 • Pomme    + alt + enter = mode assistant
Raccourcis
• Editeur

 • Pomme     + shift + alt + enter = versioning
   mode

 • Pomme     + T = nouvel onglets

 • Pomme     + shift + T = suppressionde l'onglet
   courant
Préférences Systèmes
• Pomme     +,

• Faire   ses propres raccourcis

• Choix    de comportement à différents stades

• Apparence      du texte

• etc..
Organizer
• Vos   archives

• Devices

• Documentation

• SCM    : Repositories

• Projects
INTERFACE BUILDER
        &
 ÉDITION DE CODE


             par Édouard Richard
INTERFACE BUILDER
BARRE D’INSPECTION -
   FILE INSPECTOR
•   Identité et Type

•   Interface Builder Document

•   Internationalisation

•   Sélection de Target

•   Informations SVN (révision, statuts et
    chemin)
BARRE D’INSPECTION -
    QUICK HELP
•   Nom de la Classe

•   Version d’OS supportée

•   Résumé de la Classe

•   Endroit de la déclaration

•   Références

•   Codes d’exemples
BARRE D’INSPECTION -
 IDENTITY INSPECTOR


•   Sélection de Classe personnalisée

•   Identité (Label, ObjectID, Notes)

•   Accessibilité
BARRE D’INSPECTION -
ATTRIBUTES INSPECTOR



•   Différents en fonction de l’objet
BARRE D’INSPECTION -
  SIZE INSPECTOR


•   Position & Taille

•   Ajustement automatique de l’objet
BARRE D’INSPECTION -
CONNECTIONS INSPECTOR


 •   Liste des Outlets avec leurs liaisons

 •   Liste des Outlet Collections
BARRE DE BIBLIOTHÈQUE -
 TEMPLATES DE FICHIER



 •   Sélection parmi les templates
BARRE DE BIBLIOTHÈQUE -
  CODE DE SNIPPETS


 •   Sélection des Snippets

      •   Librairie Xcode

      •   Librairie personnalisée
BARRE DE BIBLIOTHÈQUE -
        OBJETS


 •   Accès aux Objets

 •   Vue par icônes
BARRE DE BIBLIOTHÈQUE -
        MÉDIAS


 •   Accès aux Médias

 •   Vue par icônes
LIAISONS - OUTLET
LIAISONS - OUTLET
LIAISONS - ACTION
LIAISONS - ACTION
LIAISONS - OUTLET COLLECTIONS
LIAISONS - OUTLET COLLECTIONS
LES SNIPPETS
ÉDITION DE CODE -
AVERTISSEMENTS DE SYNTHAXE




         Raccourci : cmd + ctrl + f
ÉDITION DE CODE -
                 ANALYSE

•   Utilisation de Clang

     •   Plus de contenu à l’auto-complétion

     •   Amélioration de l’analyseur syntaxique

•   Auto-Analyse à la sauvegarde (vérification des
    Avertissements et des Erreurs)
LE SCM



         par Nicolas Lauquin
LE SCM : PRÉSENTATION
Rappel : nom générique pour un ensemble d'outils permettant la gestion des différentes versions d'un code source.



       •   Meilleure intégration et confort

       •   Comparateur efficace

       •   SVN est bien géré

       •   Support de git

       •   Au revoir cvs
LE SCM : GIT
Rappel : Git est un logiciel de gestion de version distribué. Il a été initialement conçu par Linus Torvalds pour les
kernel linux. Il a été developpé pour être rapide.

        •   Décentralisé ?
               •   une «working copy» est un repository local complet (historique, suivit des
                   révisions, indépendant du réseau ou d’un serveur central).

               •   une fois commité, le repository local est mis à jour

               •   un action de «push» soumet/partage les changements sur UN serveur distant


        •   Vocabulaire:
               •   clone (git) / checkout (SVN) : créé une working copy

               •   pull (git) / update (SVN) : récupère les modifications depuis un serveur

               •   push : envoie les modifications sur un serveur

        •   Git par défaut: xcode propose la création d’un repo git local pour un nouveau projet.
SCM : VERSION EDITOR


•   Super comparateur graphique

•   Historique à la «Time Machine»

•   3 modes

    •   comparaison

    •   blame

    •   log
SCM : LES COMMANDES 1/2

1) Depuis le menu « File » -> « Source Control »
SCM : LES COMMANDES 2/2

2) Depuis le menu contextuel




3) Depuis l’Organizer



Fonctionnalité pratique depuis la zone de navigation:
SCM : L’ORGANIZER
•   Gérer les différents repository:

    •   Visualiser l’historique des révisions

    •   Visualiser et créer des branches

    •   Naviguer dans le «working repository»

    •   Actions : commit, pull, refresh

•   Ajouter un repository, faire un checkout/
    clone repository, ajouter une «working
    copy».

•   Bonus : lier un contact du carnet d’adresse
SCM : QUELQUES LIMITATIONS
•   Avec git : impossibilité de faire un pull/push si il y a des changement
    non commités.

    •   problème avec les settings utilisateurs ?
        -> utiliser un outil externe                                          STRUCTURE PROJET XCODE 4 :
        -> ne pas les versionner & .gitignore : (ajouter xcuserdata/ )        PROJECTNAME.xcodeproj
                                                                              !  project.pbxproj
                                                                              !  project.xcworkspace/
•   Bug rencontrés:                                                           !  !    !     contents.xcworkspacedata
                                                                              !  !    !     xcuserdata/
                                                                              !  !    !     !    !    USERNAME.xcuserdatad/
                                                                              !  !    !     !    !    !    UserInterfaceState.xcuserstate
    •   dans la fenêtre de commit bloquage sur fichier utilisateur ->          !  !    !     !    !    !    WorkspaceSettings.xcsettings
        impossible de commiter (UserInterfaceState.xcuserstate)               !  xcuserdata/
                                                                              !  !    !     USERNAME.xcuserdatad/
                                                                              !  !    !     !    xcdebugger/
    •   quelques problèmes gestion des repositories (changement de            !  !    !     !    !    Breakpoints.xcbkptlist
        mot de passe, problème de connexion) -> solution                      !
                                                                              !
                                                                                 !
                                                                                 !
                                                                                      !
                                                                                      !
                                                                                            !
                                                                                            !
                                                                                                 xcschemes/
                                                                                                 !    PROJECTNAME.xcscheme
        suppression/ajout                                                     !  !    !     !    !    xcschememanagement.plist


    •   git cloning en erreur parfois (fonctionne en ligne de commande)       STRUCTURE PROJET XCODE 3 :

                                                                              PROJECTNAME.xcodeproj/
                                                                              !  project.pbxproj
                                                                              !  project.xcworkspace
    => défaut de jeunesse corrigé dans Xcode 4.1 ?                            !
                                                                              !
                                                                                 USERNAME.pbxuser
                                                                                 USERNAME.perspective
                                                                              !  USERNAME.perspectivev3
                                                                              !  USERNAME.mode1v3
                                                                              !  USERNAME.mode2v3
SNAPSHOT
Rappel : permet de sauvegarder l’état courant d’un projet ou d’un workspace sur le disque pour restauration
éventuelle.

•   onglet dédié dans l’organizer

•   indépendant : un projet effacé est
    restaurable

•   usage manuel : File -> create snapshot

•   automatiquement en cas
    d’édition massive de fichiers
    ( refactor, renommage du projet, scm
    update ) - Réglage «File -> Project settings».
ARCHIVE
Rappel : utilisé pour packager et distribuer l’application sous l’iOS ou MacApp Store.



 •   Archives réalisée sous Xcode3 non rappatriées

 •   Répertoire et format changé :
      •   ~/Library/Application Support/Developer/Shared/Archived
          Applications/XXX.apparchive


      •   ~/Library/Developer/Xcode/Archives/YYYY-DD-MM/XXX.xcarchive


 •   Conversion manuelle possible à la nouvelle
     structure, script trouvé sur stackoverflow (http://
     stackoverflow.com/questions/5060228/can-we-import-apparchive-bundles-in-xcode-4)
COMPILATION



       par Jean-Alexandre Iragne
COMPILATION (BUILD,
TARGET, EXECUTABLE AND
      DEBUGGER)
• Introduction    des schemes
• Utilisation

• Edition

• Build   configuration
• Configuration

• Déploiement

• Build   Phase
INTRODUCTION DES
                SCHEMES
• Définition: Régime   ou modèle
• Etude   du workflow de compilation
• Permet   de regrouper
 • Target

 • Executable

 • Methode    d’exécution
 • Règle   de compilation
SCHEME EDITION
FENÊTRE D’ÉDITION ET DE
     GESTION DES SCHEMES
• Edition   d’un scheme

 • Configuration

 • Script

 • Gestion      du debug par instrument

 • Gestion      de l’archive

• Utilisation
EXEMPLE SCHEME
GESTION DE LA
           COMPILATION

•    Où retrouver ses petits
    • Gestion des configurations
    • Gestion des langues
    • Déploiement
    • Vision du build setting par level
BUILD SETTING
TARGET
• Où   retrouver ses petits
 • Ajout   de framework
 • Dépendance        de lib
 • Gestion      de script
 • Liste   des sources et ressources
 • info.plist

 • Interface    graphique
 • Editeur
TARGET
AGRÉGAT SCHEME ET BUILD
      CONFIGURATION

• Création   d’un scheme

• Spécification   d’un instrument pour le profil

• Création   d’un adhoc signé

• Création   d’une archive iTunes
EXEMPLE
LE DEBUGGER



          par Mathieu Godart
DBG – APERÇU GÉNÉRAL
DBG – BARRE DU DEBUGGER
DBG – BREAKPOINT NAVIGATOR
DBG – BREAKPOINT NAVIGATOR
DBG – BREAKPOINT NAVIGATOR
DBG – DEBUG NAVIGATOR
DBG – VARIABLE VIEW
DBG – VARIABLE VIEW
DBG – VARIABLE VIEW
DBG – LA CONSOLE
DBG – LA CONSOLE

• Les   bénéfices de LLDB :

  • Plus   rapide, moins gourmand

  • Meilleure   intégration avec Xcode (merci Clang !)

  • Syntaxe   plus simple : nom   + verbe [+ options]


  • Intégration   de Python
DBG – LA CONSOLE

• Quelques   commandes utiles :
         help

         apropos


         variable list

         expr <objc-code>

         script
DBG – LA CONSOLE
BIBLIOGRAPHIE
• Documentation      Xcode (organizer)

• Xcode    4 Transition Guide (PDF)

• Xcode    4 User Guide (PDF)

• WWDC       2010 session 307 : Introduction to Xcode 4 (vidéo)

• WWDC       2010 session 316 : Debugging with Xcode 4 (vidéo)

• WWDC       2010 session 313 : LLVM (vidéo)

• Tuto   LLDB : http://lldb.llvm.org/tutorial.html
QUESTIONS ?
MERCI
Hello xcode 4 v2

Hello xcode 4 v2

  • 2.
    HELLO XCODE 4 Jean-AlexandreIragne Benjamin Bouachour  Édouard Richard Mathieu Godart Nicolas Lauquin 14 Avril 2011 @ CocoaHeads Paris
  • 3.
    NETCOSPORTS • 1er réseau de fans de sports • 16 développeurs en France • Présent sur 5 plateformes 350 apps • Nous sommes les pionniers de la conception et la réalisation d’applications mobiles dans le domaine du Sport en Europe. • Nous avons gagné un prix lors de la première session des Mobile Awards organisée en France pour l’application « RTL FOOTBALL »
  • 4.
  • 5.
    pense, crée etfait connaitre vos applications mobiles
  • 6.
    •Notre philosophie estd'allier artisanat et nouvelles technologies •Développement d’applications mobiles natives pour iPhone et Android
  • 7.
    INTRODUCTION • Une app attendue • Une modification du processus de développement • Un gros changement • Des fonctionnalités perdues • Des évolutions
  • 8.
    UN LOGICIEL ATTENDU •Show à la WWDC 10 • Une beta instable • Une version stable «juste par le nom» • Une release quelques semaines après
  • 9.
    MODIFICATION DU PROCESSUS DE DÉVELOPPEMENT • Fusion des outils • interface builder • Debug • SCM
  • 10.
    DE GROS CHANGEMENTS •Une fenêtre unique • Une navigation par onglet • Un menu à droite
  • 11.
    CE QUI NEMARCHE PLUS • Les users script • Le drag & drop de groupe • La création de custom view • Détacher le debugger
  • 12.
    EVOLUTIONS • L’UI • InterfaceBuilder • L’édition de code • Le SCM • La compilation • Le Debugger
  • 13.
    Interface Utilisateur par Benjamin Bouachour
  • 14.
    Aspect Général •4 Éléments principaux • Navigateur • Editeur • Inspecteur • Débogueur
  • 16.
    Navigateur • Workspace • Explorateur de projet courant • Différentes vues : • Arbre de fichiers • Par symbol du projet • Outil de recherche
  • 17.
    Navigateur • Différentes vues • Résultat de la compilation • Stack du débogueur • Les breackpoints du projets • Les log • Pour chaque vue une bar de filtres
  • 18.
  • 19.
    Editeur • Intègre Interface Builder • Onglets
  • 20.
    Editeur • Différents Mode : • Mode Editeur : un fichier ouvert • Mode Assitant : plusieurs fichiers ouverts sur le même onglets • Mode versioning : deux fichiers ouverts pour comparaison
  • 21.
    Inspecteur • Détails du fichiers • Aide • Inspecteur d'interface builder
  • 22.
    Inspecteur • Différents Éléments disponibles • Templates de fichiers • Snippet • Élement graphique pour Interface Builder • Média du projets
  • 23.
    Débogueur • Intégré à la fenêtre principale • Console • Les cibles : variables à instant t •3 vues
  • 24.
    Tool Bar • Boutton vers les différents mode • Lancer / arrêter un projet • Choix différentes Vues • Breakpoints • Choix du scheme • Organize
  • 25.
    Raccourcis • Navigateur : • Pomme (+ shift) + 0 = ouverture/fermeture • Pomme + ctrl (+ shift) + 1-7 = Différents navigateurs • Alt+ shift + click fichiers = choix dans l'ouverture du fichiers
  • 26.
    Raccourcis • Inspecteur •Pomme + alt (+ shift) + 0 = ouverture/ fermeture • Pomme + alt (+ shift) + 1-2/1-7 = Différents types d'inspecteurs
  • 27.
    Raccourcis • Débogueur •Pomme + R = lancer un projet • Pomme + shift + Y = ouverture/fermeture • Pomme + shift + . = arrêt du projet
  • 28.
    Raccourcis • Editeur •Pomme + ctrl + fleche droite/gauche = fichiers suivants/précédents • Pomme + ctrl + flèche haut = .h/.m • Pomme + enter = mode editor • Pomme + alt + enter = mode assistant
  • 29.
    Raccourcis • Editeur •Pomme + shift + alt + enter = versioning mode • Pomme + T = nouvel onglets • Pomme + shift + T = suppressionde l'onglet courant
  • 30.
    Préférences Systèmes • Pomme +, • Faire ses propres raccourcis • Choix de comportement à différents stades • Apparence du texte • etc..
  • 31.
    Organizer • Vos archives • Devices • Documentation • SCM : Repositories • Projects
  • 32.
    INTERFACE BUILDER & ÉDITION DE CODE par Édouard Richard
  • 33.
  • 34.
    BARRE D’INSPECTION - FILE INSPECTOR • Identité et Type • Interface Builder Document • Internationalisation • Sélection de Target • Informations SVN (révision, statuts et chemin)
  • 35.
    BARRE D’INSPECTION - QUICK HELP • Nom de la Classe • Version d’OS supportée • Résumé de la Classe • Endroit de la déclaration • Références • Codes d’exemples
  • 36.
    BARRE D’INSPECTION - IDENTITY INSPECTOR • Sélection de Classe personnalisée • Identité (Label, ObjectID, Notes) • Accessibilité
  • 37.
    BARRE D’INSPECTION - ATTRIBUTESINSPECTOR • Différents en fonction de l’objet
  • 38.
    BARRE D’INSPECTION - SIZE INSPECTOR • Position & Taille • Ajustement automatique de l’objet
  • 39.
    BARRE D’INSPECTION - CONNECTIONSINSPECTOR • Liste des Outlets avec leurs liaisons • Liste des Outlet Collections
  • 40.
    BARRE DE BIBLIOTHÈQUE- TEMPLATES DE FICHIER • Sélection parmi les templates
  • 41.
    BARRE DE BIBLIOTHÈQUE- CODE DE SNIPPETS • Sélection des Snippets • Librairie Xcode • Librairie personnalisée
  • 42.
    BARRE DE BIBLIOTHÈQUE- OBJETS • Accès aux Objets • Vue par icônes
  • 43.
    BARRE DE BIBLIOTHÈQUE- MÉDIAS • Accès aux Médias • Vue par icônes
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
    LIAISONS - OUTLETCOLLECTIONS
  • 49.
    LIAISONS - OUTLETCOLLECTIONS
  • 50.
  • 51.
    ÉDITION DE CODE- AVERTISSEMENTS DE SYNTHAXE Raccourci : cmd + ctrl + f
  • 52.
    ÉDITION DE CODE- ANALYSE • Utilisation de Clang • Plus de contenu à l’auto-complétion • Amélioration de l’analyseur syntaxique • Auto-Analyse à la sauvegarde (vérification des Avertissements et des Erreurs)
  • 53.
    LE SCM par Nicolas Lauquin
  • 54.
    LE SCM :PRÉSENTATION Rappel : nom générique pour un ensemble d'outils permettant la gestion des différentes versions d'un code source. • Meilleure intégration et confort • Comparateur efficace • SVN est bien géré • Support de git • Au revoir cvs
  • 55.
    LE SCM :GIT Rappel : Git est un logiciel de gestion de version distribué. Il a été initialement conçu par Linus Torvalds pour les kernel linux. Il a été developpé pour être rapide. • Décentralisé ? • une «working copy» est un repository local complet (historique, suivit des révisions, indépendant du réseau ou d’un serveur central). • une fois commité, le repository local est mis à jour • un action de «push» soumet/partage les changements sur UN serveur distant • Vocabulaire: • clone (git) / checkout (SVN) : créé une working copy • pull (git) / update (SVN) : récupère les modifications depuis un serveur • push : envoie les modifications sur un serveur • Git par défaut: xcode propose la création d’un repo git local pour un nouveau projet.
  • 56.
    SCM : VERSIONEDITOR • Super comparateur graphique • Historique à la «Time Machine» • 3 modes • comparaison • blame • log
  • 57.
    SCM : LESCOMMANDES 1/2 1) Depuis le menu « File » -> « Source Control »
  • 58.
    SCM : LESCOMMANDES 2/2 2) Depuis le menu contextuel 3) Depuis l’Organizer Fonctionnalité pratique depuis la zone de navigation:
  • 59.
    SCM : L’ORGANIZER • Gérer les différents repository: • Visualiser l’historique des révisions • Visualiser et créer des branches • Naviguer dans le «working repository» • Actions : commit, pull, refresh • Ajouter un repository, faire un checkout/ clone repository, ajouter une «working copy». • Bonus : lier un contact du carnet d’adresse
  • 60.
    SCM : QUELQUESLIMITATIONS • Avec git : impossibilité de faire un pull/push si il y a des changement non commités. • problème avec les settings utilisateurs ? -> utiliser un outil externe STRUCTURE PROJET XCODE 4 : -> ne pas les versionner & .gitignore : (ajouter xcuserdata/ ) PROJECTNAME.xcodeproj ! project.pbxproj ! project.xcworkspace/ • Bug rencontrés: ! ! ! contents.xcworkspacedata ! ! ! xcuserdata/ ! ! ! ! ! USERNAME.xcuserdatad/ ! ! ! ! ! ! UserInterfaceState.xcuserstate • dans la fenêtre de commit bloquage sur fichier utilisateur -> ! ! ! ! ! ! WorkspaceSettings.xcsettings impossible de commiter (UserInterfaceState.xcuserstate) ! xcuserdata/ ! ! ! USERNAME.xcuserdatad/ ! ! ! ! xcdebugger/ • quelques problèmes gestion des repositories (changement de ! ! ! ! ! Breakpoints.xcbkptlist mot de passe, problème de connexion) -> solution ! ! ! ! ! ! ! ! xcschemes/ ! PROJECTNAME.xcscheme suppression/ajout ! ! ! ! ! xcschememanagement.plist • git cloning en erreur parfois (fonctionne en ligne de commande) STRUCTURE PROJET XCODE 3 : PROJECTNAME.xcodeproj/ ! project.pbxproj ! project.xcworkspace => défaut de jeunesse corrigé dans Xcode 4.1 ? ! ! USERNAME.pbxuser USERNAME.perspective ! USERNAME.perspectivev3 ! USERNAME.mode1v3 ! USERNAME.mode2v3
  • 61.
    SNAPSHOT Rappel : permetde sauvegarder l’état courant d’un projet ou d’un workspace sur le disque pour restauration éventuelle. • onglet dédié dans l’organizer • indépendant : un projet effacé est restaurable • usage manuel : File -> create snapshot • automatiquement en cas d’édition massive de fichiers ( refactor, renommage du projet, scm update ) - Réglage «File -> Project settings».
  • 62.
    ARCHIVE Rappel : utilisépour packager et distribuer l’application sous l’iOS ou MacApp Store. • Archives réalisée sous Xcode3 non rappatriées • Répertoire et format changé : • ~/Library/Application Support/Developer/Shared/Archived Applications/XXX.apparchive • ~/Library/Developer/Xcode/Archives/YYYY-DD-MM/XXX.xcarchive • Conversion manuelle possible à la nouvelle structure, script trouvé sur stackoverflow (http:// stackoverflow.com/questions/5060228/can-we-import-apparchive-bundles-in-xcode-4)
  • 63.
    COMPILATION par Jean-Alexandre Iragne
  • 64.
    COMPILATION (BUILD, TARGET, EXECUTABLEAND DEBUGGER) • Introduction des schemes • Utilisation • Edition • Build configuration • Configuration • Déploiement • Build Phase
  • 65.
    INTRODUCTION DES SCHEMES • Définition: Régime ou modèle • Etude du workflow de compilation • Permet de regrouper • Target • Executable • Methode d’exécution • Règle de compilation
  • 66.
  • 67.
    FENÊTRE D’ÉDITION ETDE GESTION DES SCHEMES • Edition d’un scheme • Configuration • Script • Gestion du debug par instrument • Gestion de l’archive • Utilisation
  • 68.
  • 69.
    GESTION DE LA COMPILATION • Où retrouver ses petits • Gestion des configurations • Gestion des langues • Déploiement • Vision du build setting par level
  • 70.
  • 71.
    TARGET • Où retrouver ses petits • Ajout de framework • Dépendance de lib • Gestion de script • Liste des sources et ressources • info.plist • Interface graphique • Editeur
  • 72.
  • 73.
    AGRÉGAT SCHEME ETBUILD CONFIGURATION • Création d’un scheme • Spécification d’un instrument pour le profil • Création d’un adhoc signé • Création d’une archive iTunes
  • 74.
  • 75.
    LE DEBUGGER par Mathieu Godart
  • 76.
    DBG – APERÇUGÉNÉRAL
  • 77.
    DBG – BARREDU DEBUGGER
  • 78.
  • 79.
  • 80.
  • 81.
    DBG – DEBUGNAVIGATOR
  • 82.
  • 83.
  • 84.
  • 85.
    DBG – LACONSOLE
  • 86.
    DBG – LACONSOLE • Les bénéfices de LLDB : • Plus rapide, moins gourmand • Meilleure intégration avec Xcode (merci Clang !) • Syntaxe plus simple : nom + verbe [+ options] • Intégration de Python
  • 87.
    DBG – LACONSOLE • Quelques commandes utiles : help apropos variable list expr <objc-code> script
  • 88.
    DBG – LACONSOLE
  • 89.
    BIBLIOGRAPHIE • Documentation Xcode (organizer) • Xcode 4 Transition Guide (PDF) • Xcode 4 User Guide (PDF) • WWDC 2010 session 307 : Introduction to Xcode 4 (vidéo) • WWDC 2010 session 316 : Debugging with Xcode 4 (vidéo) • WWDC 2010 session 313 : LLVM (vidéo) • Tuto LLDB : http://lldb.llvm.org/tutorial.html
  • 90.
  • 91.