Hello xcode 4 v2

2,096 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,096
On SlideShare
0
From Embeds
0
Number of Embeds
318
Actions
Shares
0
Downloads
28
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Hello xcode 4 v2

  1. 1. HELLO XCODE 4Jean-Alexandre Iragne Benjamin Bouachour  Édouard Richard Mathieu Godart Nicolas Lauquin14 Avril 2011 @ CocoaHeads Paris
  2. 2. 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 »
  3. 3. NETCOSPORTS
  4. 4. pense, crée et fait connaitre vos applications mobiles
  5. 5. •Notre philosophie est dallier artisanat et nouvelles technologies•Développement d’applications mobiles natives pour iPhone et Android
  6. 6. INTRODUCTION• Une app attendue• Une modification du processus de développement• Un gros changement• Des fonctionnalités perdues• Des évolutions
  7. 7. UN LOGICIEL ATTENDU• Show à la WWDC 10• Une beta instable• Une version stable «juste par le nom»• Une release quelques semaines après
  8. 8. MODIFICATION DU PROCESSUS DE DÉVELOPPEMENT• Fusion des outils• interface builder• Debug• SCM
  9. 9. DE GROS CHANGEMENTS• Une fenêtre unique• Une navigation par onglet• Un menu à droite
  10. 10. CE QUI NE MARCHE PLUS• Les users script• Le drag & drop de groupe• La création de custom view• Détacher le debugger
  11. 11. EVOLUTIONS• L’UI• Interface Builder• L’édition de code• Le SCM• La compilation• Le Debugger
  12. 12. Interface Utilisateur par Benjamin Bouachour
  13. 13. Aspect Général•4 Éléments principaux • Navigateur • Editeur • Inspecteur • Débogueur
  14. 14. Navigateur• Workspace• Explorateur de projet courant• Différentes vues : • Arbre de fichiers • Par symbol du projet • Outil de recherche
  15. 15. 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
  16. 16. Editeur
  17. 17. Editeur• Intègre Interface Builder• Onglets
  18. 18. 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
  19. 19. Inspecteur• Détails du fichiers• Aide• Inspecteur dinterface builder
  20. 20. Inspecteur• Différents Éléments disponibles • Templates de fichiers • Snippet • Élement graphique pour Interface Builder • Média du projets
  21. 21. Débogueur• Intégré à la fenêtre principale• Console• Les cibles : variables à instant t•3 vues
  22. 22. Tool Bar• Boutton vers les différents mode• Lancer / arrêter un projet• Choix différentes Vues• Breakpoints• Choix du scheme• Organize
  23. 23. Raccourcis• Navigateur : • Pomme (+ shift) + 0 = ouverture/fermeture • Pomme + ctrl (+ shift) + 1-7 = Différents navigateurs • Alt+ shift + click fichiers = choix dans louverture du fichiers
  24. 24. Raccourcis• Inspecteur • Pomme + alt (+ shift) + 0 = ouverture/ fermeture • Pomme + alt (+ shift) + 1-2/1-7 = Différents types dinspecteurs
  25. 25. Raccourcis• Débogueur • Pomme + R = lancer un projet • Pomme + shift + Y = ouverture/fermeture • Pomme + shift + . = arrêt du projet
  26. 26. 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
  27. 27. Raccourcis• Editeur • Pomme + shift + alt + enter = versioning mode • Pomme + T = nouvel onglets • Pomme + shift + T = suppressionde longlet courant
  28. 28. Préférences Systèmes• Pomme +,• Faire ses propres raccourcis• Choix de comportement à différents stades• Apparence du texte• etc..
  29. 29. Organizer• Vos archives• Devices• Documentation• SCM : Repositories• Projects
  30. 30. INTERFACE BUILDER & ÉDITION DE CODE par Édouard Richard
  31. 31. INTERFACE BUILDER
  32. 32. BARRE D’INSPECTION - FILE INSPECTOR• Identité et Type• Interface Builder Document• Internationalisation• Sélection de Target• Informations SVN (révision, statuts et chemin)
  33. 33. 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
  34. 34. BARRE D’INSPECTION - IDENTITY INSPECTOR• Sélection de Classe personnalisée• Identité (Label, ObjectID, Notes)• Accessibilité
  35. 35. BARRE D’INSPECTION -ATTRIBUTES INSPECTOR• Différents en fonction de l’objet
  36. 36. BARRE D’INSPECTION - SIZE INSPECTOR• Position & Taille• Ajustement automatique de l’objet
  37. 37. BARRE D’INSPECTION -CONNECTIONS INSPECTOR • Liste des Outlets avec leurs liaisons • Liste des Outlet Collections
  38. 38. BARRE DE BIBLIOTHÈQUE - TEMPLATES DE FICHIER • Sélection parmi les templates
  39. 39. BARRE DE BIBLIOTHÈQUE - CODE DE SNIPPETS • Sélection des Snippets • Librairie Xcode • Librairie personnalisée
  40. 40. BARRE DE BIBLIOTHÈQUE - OBJETS • Accès aux Objets • Vue par icônes
  41. 41. BARRE DE BIBLIOTHÈQUE - MÉDIAS • Accès aux Médias • Vue par icônes
  42. 42. LIAISONS - OUTLET
  43. 43. LIAISONS - OUTLET
  44. 44. LIAISONS - ACTION
  45. 45. LIAISONS - ACTION
  46. 46. LIAISONS - OUTLET COLLECTIONS
  47. 47. LIAISONS - OUTLET COLLECTIONS
  48. 48. LES SNIPPETS
  49. 49. ÉDITION DE CODE -AVERTISSEMENTS DE SYNTHAXE Raccourci : cmd + ctrl + f
  50. 50. É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)
  51. 51. LE SCM par Nicolas Lauquin
  52. 52. LE SCM : PRÉSENTATIONRappel : nom générique pour un ensemble doutils permettant la gestion des différentes versions dun code source. • Meilleure intégration et confort • Comparateur efficace • SVN est bien géré • Support de git • Au revoir cvs
  53. 53. LE SCM : GITRappel : Git est un logiciel de gestion de version distribué. Il a été initialement conçu par Linus Torvalds pour leskernel 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.
  54. 54. SCM : VERSION EDITOR• Super comparateur graphique• Historique à la «Time Machine»• 3 modes • comparaison • blame • log
  55. 55. SCM : LES COMMANDES 1/21) Depuis le menu « File » -> « Source Control »
  56. 56. SCM : LES COMMANDES 2/22) Depuis le menu contextuel3) Depuis l’OrganizerFonctionnalité pratique depuis la zone de navigation:
  57. 57. 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
  58. 58. 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
  59. 59. SNAPSHOTRappel : 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».
  60. 60. ARCHIVERappel : 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)
  61. 61. COMPILATION par Jean-Alexandre Iragne
  62. 62. COMPILATION (BUILD,TARGET, EXECUTABLE AND DEBUGGER)• Introduction des schemes• Utilisation• Edition• Build configuration• Configuration• Déploiement• Build Phase
  63. 63. 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
  64. 64. SCHEME EDITION
  65. 65. 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
  66. 66. EXEMPLE SCHEME
  67. 67. GESTION DE LA COMPILATION• Où retrouver ses petits • Gestion des configurations • Gestion des langues • Déploiement • Vision du build setting par level
  68. 68. BUILD SETTING
  69. 69. 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
  70. 70. TARGET
  71. 71. 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
  72. 72. EXEMPLE
  73. 73. LE DEBUGGER par Mathieu Godart
  74. 74. DBG – APERÇU GÉNÉRAL
  75. 75. DBG – BARRE DU DEBUGGER
  76. 76. DBG – BREAKPOINT NAVIGATOR
  77. 77. DBG – BREAKPOINT NAVIGATOR
  78. 78. DBG – BREAKPOINT NAVIGATOR
  79. 79. DBG – DEBUG NAVIGATOR
  80. 80. DBG – VARIABLE VIEW
  81. 81. DBG – VARIABLE VIEW
  82. 82. DBG – VARIABLE VIEW
  83. 83. DBG – LA CONSOLE
  84. 84. 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
  85. 85. DBG – LA CONSOLE• Quelques commandes utiles : help apropos variable list expr <objc-code> script
  86. 86. DBG – LA CONSOLE
  87. 87. 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
  88. 88. QUESTIONS ?
  89. 89. MERCI

×