SlideShare une entreprise Scribd logo
1  sur  92
Télécharger pour lire hors ligne
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

Contenu connexe

En vedette

Spec et test agile sur mobile @airfrance #at lille & cocoaheads tls
Spec et test agile sur mobile @airfrance #at lille & cocoaheads tlsSpec et test agile sur mobile @airfrance #at lille & cocoaheads tls
Spec et test agile sur mobile @airfrance #at lille & cocoaheads tlsekito
 
Swift, opportunités et perspectives du dernier langage d'Apple
Swift, opportunités et perspectives du dernier langage d'AppleSwift, opportunités et perspectives du dernier langage d'Apple
Swift, opportunités et perspectives du dernier langage d'AppleDamien GOSSET
 
Use In IoT : l’objet connecté de la board au dashboard
Use In IoT : l’objet connecté de la board au dashboardUse In IoT : l’objet connecté de la board au dashboard
Use In IoT : l’objet connecté de la board au dashboardMicrosoft
 
Tipos de Brackets- Introducción a la Odontología
Tipos de Brackets- Introducción a la OdontologíaTipos de Brackets- Introducción a la Odontología
Tipos de Brackets- Introducción a la Odontologíacrisppg
 
9 tendances du Mobile World Congress 2017 par @hubinstitute
9 tendances du Mobile World Congress 2017 par @hubinstitute 9 tendances du Mobile World Congress 2017 par @hubinstitute
9 tendances du Mobile World Congress 2017 par @hubinstitute HUB INSTITUTE
 
Infrastructure as code: running microservices on AWS using Docker, Terraform,...
Infrastructure as code: running microservices on AWS using Docker, Terraform,...Infrastructure as code: running microservices on AWS using Docker, Terraform,...
Infrastructure as code: running microservices on AWS using Docker, Terraform,...Yevgeniy Brikman
 
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...Publicis Sapient Engineering
 
Scrum et forfait
Scrum et forfaitScrum et forfait
Scrum et forfaitIppon
 
IoT (M2M) - Big Data - Analyses : Simulation et Démonstration
IoT (M2M) - Big Data - Analyses : Simulation et DémonstrationIoT (M2M) - Big Data - Analyses : Simulation et Démonstration
IoT (M2M) - Big Data - Analyses : Simulation et DémonstrationCHAKER ALLAOUI
 
MTO@LE MUR OBERKAMPF
MTO@LE MUR OBERKAMPFMTO@LE MUR OBERKAMPF
MTO@LE MUR OBERKAMPFMto Art
 
Extreme adjectives
Extreme adjectivesExtreme adjectives
Extreme adjectivesJohn David
 
Webinaire 2: La participation du patient et des visiteurs : le chaînon manqua...
Webinaire 2: La participation du patient et des visiteurs : le chaînon manqua...Webinaire 2: La participation du patient et des visiteurs : le chaînon manqua...
Webinaire 2: La participation du patient et des visiteurs : le chaînon manqua...Canadian Patient Safety Institute
 
Calendario academico2013general 1
Calendario academico2013general 1Calendario academico2013general 1
Calendario academico2013general 1Alexander Rios Ariz
 
Tabulador salarial 2012 con fecha 1 de octubre
Tabulador salarial 2012 con fecha 1 de octubreTabulador salarial 2012 con fecha 1 de octubre
Tabulador salarial 2012 con fecha 1 de octubreJorge Murillo
 

En vedette (20)

Spec et test agile sur mobile @airfrance #at lille & cocoaheads tls
Spec et test agile sur mobile @airfrance #at lille & cocoaheads tlsSpec et test agile sur mobile @airfrance #at lille & cocoaheads tls
Spec et test agile sur mobile @airfrance #at lille & cocoaheads tls
 
Swift, opportunités et perspectives du dernier langage d'Apple
Swift, opportunités et perspectives du dernier langage d'AppleSwift, opportunités et perspectives du dernier langage d'Apple
Swift, opportunités et perspectives du dernier langage d'Apple
 
Use In IoT : l’objet connecté de la board au dashboard
Use In IoT : l’objet connecté de la board au dashboardUse In IoT : l’objet connecté de la board au dashboard
Use In IoT : l’objet connecté de la board au dashboard
 
Tipos de Brackets- Introducción a la Odontología
Tipos de Brackets- Introducción a la OdontologíaTipos de Brackets- Introducción a la Odontología
Tipos de Brackets- Introducción a la Odontología
 
IoT Best practices
 IoT Best practices IoT Best practices
IoT Best practices
 
9 tendances du Mobile World Congress 2017 par @hubinstitute
9 tendances du Mobile World Congress 2017 par @hubinstitute 9 tendances du Mobile World Congress 2017 par @hubinstitute
9 tendances du Mobile World Congress 2017 par @hubinstitute
 
Infrastructure as code: running microservices on AWS using Docker, Terraform,...
Infrastructure as code: running microservices on AWS using Docker, Terraform,...Infrastructure as code: running microservices on AWS using Docker, Terraform,...
Infrastructure as code: running microservices on AWS using Docker, Terraform,...
 
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...
 
XebiConFr 15 - Swift dans la vraie vie
XebiConFr 15 - Swift dans la vraie vieXebiConFr 15 - Swift dans la vraie vie
XebiConFr 15 - Swift dans la vraie vie
 
Scrum et forfait
Scrum et forfaitScrum et forfait
Scrum et forfait
 
IoT (M2M) - Big Data - Analyses : Simulation et Démonstration
IoT (M2M) - Big Data - Analyses : Simulation et DémonstrationIoT (M2M) - Big Data - Analyses : Simulation et Démonstration
IoT (M2M) - Big Data - Analyses : Simulation et Démonstration
 
Parte dos del libro
Parte dos del libroParte dos del libro
Parte dos del libro
 
Bon sens de_l'oie hs
Bon sens de_l'oie hsBon sens de_l'oie hs
Bon sens de_l'oie hs
 
MTO@LE MUR OBERKAMPF
MTO@LE MUR OBERKAMPFMTO@LE MUR OBERKAMPF
MTO@LE MUR OBERKAMPF
 
Extreme adjectives
Extreme adjectivesExtreme adjectives
Extreme adjectives
 
Webinaire 2: La participation du patient et des visiteurs : le chaînon manqua...
Webinaire 2: La participation du patient et des visiteurs : le chaînon manqua...Webinaire 2: La participation du patient et des visiteurs : le chaînon manqua...
Webinaire 2: La participation du patient et des visiteurs : le chaînon manqua...
 
La terre
La terreLa terre
La terre
 
Discòbol
DiscòbolDiscòbol
Discòbol
 
Calendario academico2013general 1
Calendario academico2013general 1Calendario academico2013general 1
Calendario academico2013general 1
 
Tabulador salarial 2012 con fecha 1 de octubre
Tabulador salarial 2012 con fecha 1 de octubreTabulador salarial 2012 con fecha 1 de octubre
Tabulador salarial 2012 con fecha 1 de octubre
 

Similaire à Hello xcode 4 v2

ParisfxLab - Artforge, by HD3D
ParisfxLab - Artforge, by HD3DParisfxLab - Artforge, by HD3D
ParisfxLab - Artforge, by HD3DFrançois Hanat
 
Acquia et Arte : Drupal Camp Paris 2013
Acquia et Arte : Drupal Camp Paris 2013Acquia et Arte : Drupal Camp Paris 2013
Acquia et Arte : Drupal Camp Paris 2013Cyril Reinhard
 
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...Normandy JUG
 
Arte utilise Acquia Cloud pour héberger ses plateformes web
Arte utilise Acquia Cloud pour héberger ses plateformes webArte utilise Acquia Cloud pour héberger ses plateformes web
Arte utilise Acquia Cloud pour héberger ses plateformes webAcquia
 
Architecture de services web de type ressource
Architecture de services web de type ressourceArchitecture de services web de type ressource
Architecture de services web de type ressourceAntoine Pouch
 
Rex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantesRex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantesChristophe Furmaniak
 
Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)Vincent Biret
 
Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)Alexandre Marie
 
CI-Jenkins.pptx
CI-Jenkins.pptxCI-Jenkins.pptx
CI-Jenkins.pptxMEDOBEST1
 
Développement mobile multi-plateforme avec Flutter
Développement mobile multi-plateforme avec FlutterDéveloppement mobile multi-plateforme avec Flutter
Développement mobile multi-plateforme avec Fluttererick G
 
365 saturday - Développer un plugin XrmToolBox
365 saturday - Développer un plugin XrmToolBox365 saturday - Développer un plugin XrmToolBox
365 saturday - Développer un plugin XrmToolBoxTanguy TOUZARD
 
Javascript & tools
Javascript & toolsJavascript & tools
Javascript & toolsSlim Soussi
 
360Eyes Business Objects metadonnées
360Eyes Business Objects metadonnées360Eyes Business Objects metadonnées
360Eyes Business Objects metadonnéesSebastien Goiffon
 
Développer une Single Page Application HTML 5 pour tous les devices
Développer une Single Page Application HTML 5 pour tous les devices Développer une Single Page Application HTML 5 pour tous les devices
Développer une Single Page Application HTML 5 pour tous les devices Microsoft
 
Microservices based application development with Docker (French)
Microservices based application development with Docker (French)Microservices based application development with Docker (French)
Microservices based application development with Docker (French)Cédric Villa
 
Le Kit du Parfait Petit Intégrateur (PW2009)
Le Kit du Parfait Petit Intégrateur (PW2009)Le Kit du Parfait Petit Intégrateur (PW2009)
Le Kit du Parfait Petit Intégrateur (PW2009)Thierry Régagnon
 
Formation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFFormation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFBoubker ABERWAG
 

Similaire à Hello xcode 4 v2 (20)

Universitélang scala tools
Universitélang scala toolsUniversitélang scala tools
Universitélang scala tools
 
ParisfxLab - Artforge, by HD3D
ParisfxLab - Artforge, by HD3DParisfxLab - Artforge, by HD3D
ParisfxLab - Artforge, by HD3D
 
Acquia et Arte : Drupal Camp Paris 2013
Acquia et Arte : Drupal Camp Paris 2013Acquia et Arte : Drupal Camp Paris 2013
Acquia et Arte : Drupal Camp Paris 2013
 
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
 
Arte utilise Acquia Cloud pour héberger ses plateformes web
Arte utilise Acquia Cloud pour héberger ses plateformes webArte utilise Acquia Cloud pour héberger ses plateformes web
Arte utilise Acquia Cloud pour héberger ses plateformes web
 
Architecture de services web de type ressource
Architecture de services web de type ressourceArchitecture de services web de type ressource
Architecture de services web de type ressource
 
Rex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantesRex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantes
 
Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)
 
Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)
 
CI-Jenkins.pptx
CI-Jenkins.pptxCI-Jenkins.pptx
CI-Jenkins.pptx
 
Développement mobile multi-plateforme avec Flutter
Développement mobile multi-plateforme avec FlutterDéveloppement mobile multi-plateforme avec Flutter
Développement mobile multi-plateforme avec Flutter
 
365 saturday - Développer un plugin XrmToolBox
365 saturday - Développer un plugin XrmToolBox365 saturday - Développer un plugin XrmToolBox
365 saturday - Développer un plugin XrmToolBox
 
Javascript & tools
Javascript & toolsJavascript & tools
Javascript & tools
 
360Eyes Business Objects metadonnées
360Eyes Business Objects metadonnées360Eyes Business Objects metadonnées
360Eyes Business Objects metadonnées
 
Développer une Single Page Application HTML 5 pour tous les devices
Développer une Single Page Application HTML 5 pour tous les devices Développer une Single Page Application HTML 5 pour tous les devices
Développer une Single Page Application HTML 5 pour tous les devices
 
Microservices based application development with Docker (French)
Microservices based application development with Docker (French)Microservices based application development with Docker (French)
Microservices based application development with Docker (French)
 
Paris RailsCamp 2009
Paris RailsCamp 2009Paris RailsCamp 2009
Paris RailsCamp 2009
 
Le Kit du Parfait Petit Intégrateur (PW2009)
Le Kit du Parfait Petit Intégrateur (PW2009)Le Kit du Parfait Petit Intégrateur (PW2009)
Le Kit du Parfait Petit Intégrateur (PW2009)
 
Formation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFFormation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPF
 
Windev
WindevWindev
Windev
 

Plus de CocoaHeads.fr

Présentation gnireenigne
Présentation   gnireenignePrésentation   gnireenigne
Présentation gnireenigneCocoaHeads.fr
 
Wireless ad hoc distribution
Wireless ad hoc distributionWireless ad hoc distribution
Wireless ad hoc distributionCocoaHeads.fr
 
Déploiement ad hoc et beta test
Déploiement ad hoc et beta testDéploiement ad hoc et beta test
Déploiement ad hoc et beta testCocoaHeads.fr
 
Automatisation shipping process
Automatisation shipping processAutomatisation shipping process
Automatisation shipping processCocoaHeads.fr
 
Slides de la Localisation
Slides de la LocalisationSlides de la Localisation
Slides de la LocalisationCocoaHeads.fr
 
Presentation de Mars
Presentation de MarsPresentation de Mars
Presentation de MarsCocoaHeads.fr
 
Presentation de Mars
Presentation de MarsPresentation de Mars
Presentation de MarsCocoaHeads.fr
 
Presentation de Mars
Presentation de MarsPresentation de Mars
Presentation de MarsCocoaHeads.fr
 

Plus de CocoaHeads.fr (14)

Présentation gnireenigne
Présentation   gnireenignePrésentation   gnireenigne
Présentation gnireenigne
 
Mac app store redux
Mac app store reduxMac app store redux
Mac app store redux
 
Organic quality
Organic qualityOrganic quality
Organic quality
 
Wireless ad hoc distribution
Wireless ad hoc distributionWireless ad hoc distribution
Wireless ad hoc distribution
 
Déploiement ad hoc et beta test
Déploiement ad hoc et beta testDéploiement ad hoc et beta test
Déploiement ad hoc et beta test
 
Automatisation shipping process
Automatisation shipping processAutomatisation shipping process
Automatisation shipping process
 
Bitmaps
BitmapsBitmaps
Bitmaps
 
Slides de la
Slides de la Slides de la
Slides de la
 
Slides de la Localisation
Slides de la LocalisationSlides de la Localisation
Slides de la Localisation
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Presentation de Mars
Presentation de MarsPresentation de Mars
Presentation de Mars
 
Presentation de Mars
Presentation de MarsPresentation de Mars
Presentation de Mars
 
Presentation de Mars
Presentation de MarsPresentation de Mars
Presentation de Mars
 

Hello xcode 4 v2

  • 1.
  • 2. HELLO XCODE 4 Jean-Alexandre Iragne 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 »
  • 5. pense, crée et fait connaitre vos applications mobiles
  • 6. •Notre philosophie est d'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 NE MARCHE PLUS • Les users script • Le drag & drop de groupe • La création de custom view • Détacher le debugger
  • 12. EVOLUTIONS • L’UI • Interface Builder • 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
  • 15.
  • 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
  • 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
  • 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 - ATTRIBUTES INSPECTOR • Différents en fonction de l’objet
  • 38. BARRE D’INSPECTION - SIZE INSPECTOR • Position & Taille • Ajustement automatique de l’objet
  • 39. BARRE D’INSPECTION - CONNECTIONS INSPECTOR • 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
  • 48. LIAISONS - OUTLET COLLECTIONS
  • 49. LIAISONS - OUTLET COLLECTIONS
  • 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 : VERSION EDITOR • Super comparateur graphique • Historique à la «Time Machine» • 3 modes • comparaison • blame • log
  • 57. SCM : LES COMMANDES 1/2 1) Depuis le menu « File » -> « Source Control »
  • 58. SCM : LES COMMANDES 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 : 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
  • 61. 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».
  • 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, EXECUTABLE AND 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
  • 67. 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
  • 69. GESTION DE LA COMPILATION • Où retrouver ses petits • Gestion des configurations • Gestion des langues • Déploiement • Vision du build setting par level
  • 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
  • 73. 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
  • 75. LE DEBUGGER par Mathieu Godart
  • 76. DBG – APERÇU GÉNÉRAL
  • 77. DBG – BARRE DU DEBUGGER
  • 78. DBG – BREAKPOINT NAVIGATOR
  • 79. DBG – BREAKPOINT NAVIGATOR
  • 80. DBG – BREAKPOINT NAVIGATOR
  • 81. DBG – DEBUG NAVIGATOR
  • 85. DBG – LA CONSOLE
  • 86. 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
  • 87. DBG – LA CONSOLE • Quelques commandes utiles : help apropos variable list expr <objc-code> script
  • 88. DBG – LA CONSOLE
  • 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
  • 91. MERCI