Hello Xcode 4 v2
Upcoming SlideShare
Loading in...5
×
 

Hello Xcode 4 v2

on

  • 1,975 views

 

Statistics

Views

Total Views
1,975
Views on SlideShare
1,975
Embed Views
0

Actions

Likes
1
Downloads
42
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Hello Xcode 4 v2 Hello Xcode 4 v2 Presentation Transcript

  • HELLO XCODE 4Jean-Alexandre Iragne Benjamin Bouachour  Édouard Richard Mathieu Godart Nicolas Lauquin14 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 dallier 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 dinterface 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 louverture du fichiers
  • Raccourcis• Inspecteur • Pomme + alt (+ shift) + 0 = ouverture/ fermeture • Pomme + alt (+ shift) + 1-2/1-7 = Différents types dinspecteurs
  • 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 longlet 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É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
  • 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.
  • SCM : VERSION EDITOR• Super comparateur graphique• Historique à la «Time Machine»• 3 modes • comparaison • blame • log
  • SCM : LES COMMANDES 1/21) Depuis le menu « File » -> « Source Control »
  • SCM : LES COMMANDES 2/22) Depuis le menu contextuel3) Depuis l’OrganizerFonctionnalité 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
  • 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».
  • 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)
  • 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