92

Hello xcode 4 v2

Embed Size (px)

Citation preview

Page 1: Hello xcode 4 v2
Page 2: Hello xcode 4 v2

HELLO XCODE 4

Jean-Alexandre Iragne Benjamin Bouachour Édouard Richard

Mathieu GodartNicolas Lauquin

14 Avril 2011 @ CocoaHeads Paris

Page 3: Hello xcode 4 v2

• 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

Page 4: Hello xcode 4 v2

NETCOSPORTS

Page 5: Hello xcode 4 v2

pense, crée et fait connaitre vos applications mobiles

Page 6: Hello xcode 4 v2

•Notre philosophie est d'allier artisanat et nouvelles technologies

•Développement d’applications mobiles natives pour iPhone et Android

Page 7: Hello xcode 4 v2

INTRODUCTION

• Une app attendue

• Une modification du processus de développement

• Un gros changement

•Des fonctionnalités perdues

•Des évolutions

Page 8: Hello xcode 4 v2

UN LOGICIEL ATTENDU

• Show à la WWDC 10

• Une beta instable

• Une version stable «juste par le nom»

• Une release quelques semaines après

Page 9: Hello xcode 4 v2

MODIFICATION DU PROCESSUS DE

DÉVELOPPEMENT

• Fusion des outils

• interface builder

•Debug

• SCM

Page 10: Hello xcode 4 v2

DE GROS CHANGEMENTS

• Une fenêtre unique

• Une navigation par onglet

• Un menu à droite

Page 11: Hello xcode 4 v2

CE QUI NE MARCHE PLUS

• Les users script

• Le drag & drop de groupe

• La création de custom view

•Détacher le debugger

Page 12: Hello xcode 4 v2

EVOLUTIONS

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

Page 13: Hello xcode 4 v2

Interface Utilisateur

par Benjamin Bouachour

Page 14: Hello xcode 4 v2

Aspect Général•4 Éléments principaux

•Navigateur

•Editeur

• Inspecteur

•Débogueur

Page 15: Hello xcode 4 v2
Page 16: Hello xcode 4 v2

Navigateur•Workspace

•Explorateur de projet courant

•Différentes vues :

•Arbre de fichiers

•Par symbol du projet

•Outil de recherche

Page 17: Hello xcode 4 v2

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

Page 18: Hello xcode 4 v2

Editeur

Page 19: Hello xcode 4 v2

Editeur

• Intègre Interface Builder

•Onglets

Page 20: Hello xcode 4 v2

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

Page 21: Hello xcode 4 v2

Inspecteur•Détails du fichiers

•Aide

• Inspecteur d'interface builder

Page 22: Hello xcode 4 v2

Inspecteur•Différents Éléments disponibles

•Templates de fichiers

•Snippet

•Élement graphique pour Interface Builder

•Média du projets

Page 23: Hello xcode 4 v2

Débogueur

• Intégré à la fenêtre principale

•Console

•Les cibles : variables à instant t

•3 vues

Page 24: Hello xcode 4 v2

Tool Bar•Boutton vers les différents mode

•Lancer / arrêter un projet

•Choix différentes Vues

•Breakpoints

•Choix du scheme

•Organize

Page 25: Hello xcode 4 v2

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

Page 26: Hello xcode 4 v2

Raccourcis• Inspecteur

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

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

Page 27: Hello xcode 4 v2

Raccourcis•Débogueur

•Pomme + R = lancer un projet

•Pomme + shift + Y = ouverture/fermeture

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

Page 28: Hello xcode 4 v2

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

Page 29: Hello xcode 4 v2

Raccourcis•Editeur

•Pomme + shift + alt + enter = versioning mode

•Pomme + T = nouvel onglets

•Pomme + shift + T = suppressionde l'onglet courant

Page 30: Hello xcode 4 v2

Préférences Systèmes•Pomme + ,

•Faire ses propres raccourcis

•Choix de comportement à différents stades

•Apparence du texte

•etc..

Page 31: Hello xcode 4 v2

Organizer•Vos archives

•Devices

•Documentation

•SCM : Repositories

•Projects

Page 32: Hello xcode 4 v2

INTERFACE BUILDER&

ÉDITION DE CODE

par Édouard Richard

Page 33: Hello xcode 4 v2

INTERFACE BUILDER

Page 34: Hello xcode 4 v2

BARRE D’INSPECTION -FILE INSPECTOR

• Identité et Type

• Interface Builder Document

• Internationalisation

• Sélection de Target

• Informations SVN (révision, statuts et chemin)

Page 35: Hello xcode 4 v2

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

Page 36: Hello xcode 4 v2

BARRE D’INSPECTION -IDENTITY INSPECTOR

• Sélection de Classe personnalisée

• Identité (Label, ObjectID, Notes)

• Accessibilité

Page 37: Hello xcode 4 v2

BARRE D’INSPECTION -ATTRIBUTES INSPECTOR

• Différents en fonction de l’objet

Page 38: Hello xcode 4 v2

BARRE D’INSPECTION -SIZE INSPECTOR

• Position & Taille

• Ajustement automatique de l’objet

Page 39: Hello xcode 4 v2

BARRE D’INSPECTION -CONNECTIONS INSPECTOR

• Liste des Outlets avec leurs liaisons

• Liste des Outlet Collections

Page 40: Hello xcode 4 v2

BARRE DE BIBLIOTHÈQUE -TEMPLATES DE FICHIER

• Sélection parmi les templates

Page 41: Hello xcode 4 v2

BARRE DE BIBLIOTHÈQUE -CODE DE SNIPPETS

• Sélection des Snippets

• Librairie Xcode

• Librairie personnalisée

Page 42: Hello xcode 4 v2

BARRE DE BIBLIOTHÈQUE -OBJETS

• Accès aux Objets

• Vue par icônes

Page 43: Hello xcode 4 v2

BARRE DE BIBLIOTHÈQUE -MÉDIAS

• Accès aux Médias

• Vue par icônes

Page 44: Hello xcode 4 v2

LIAISONS - OUTLET

Page 45: Hello xcode 4 v2

LIAISONS - OUTLET

Page 46: Hello xcode 4 v2

LIAISONS - ACTION

Page 47: Hello xcode 4 v2

LIAISONS - ACTION

Page 48: Hello xcode 4 v2

LIAISONS - OUTLET COLLECTIONS

Page 49: Hello xcode 4 v2

LIAISONS - OUTLET COLLECTIONS

Page 50: Hello xcode 4 v2

LES SNIPPETS

Page 51: Hello xcode 4 v2

ÉDITION DE CODE -AVERTISSEMENTS DE SYNTHAXE

Raccourci : cmd + ctrl + f

Page 52: Hello xcode 4 v2

É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)

Page 53: Hello xcode 4 v2

LE SCM

par Nicolas Lauquin

Page 54: Hello xcode 4 v2

LE SCM : PRÉSENTATION

• Meilleure intégration et confort

• Comparateur efficace

• SVN est bien géré

• Support de git

• Au revoir cvs

Rappel : nom générique pour un ensemble d'outils permettant la gestion des différentes versions d'un code source.

Page 55: Hello xcode 4 v2

LE SCM : GIT

• 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.

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.

Page 56: Hello xcode 4 v2

SCM : VERSION EDITOR

• Super comparateur graphique

• Historique à la «Time Machine»

• 3 modes

• comparaison

• blame

• log

Page 57: Hello xcode 4 v2

SCM : LES COMMANDES 1/2

1) Depuis le menu « File » -> « Source Control »

Page 58: Hello xcode 4 v2

SCM : LES COMMANDES 2/2

2) Depuis le menu contextuel

3) Depuis l’Organizer

Fonctionnalité pratique depuis la zone de navigation:

Page 59: Hello xcode 4 v2

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

Page 60: Hello xcode 4 v2

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-> ne pas les versionner & .gitignore : (ajouter xcuserdata/ )

• Bug rencontrés:

• dans la fenêtre de commit bloquage sur fichier utilisateur -> impossible de commiter (UserInterfaceState.xcuserstate)

• quelques problèmes gestion des repositories (changement de mot de passe, problème de connexion) -> solution suppression/ajout

• git cloning en erreur parfois (fonctionne en ligne de commande)

=> défaut de jeunesse corrigé dans Xcode 4.1 ?

STRUCTURE PROJET XCODE 4 :

PROJECTNAME.xcodeproj! project.pbxproj! project.xcworkspace/! ! ! contents.xcworkspacedata! ! ! xcuserdata/! ! ! ! ! USERNAME.xcuserdatad/! ! ! ! ! ! UserInterfaceState.xcuserstate! ! ! ! ! ! WorkspaceSettings.xcsettings! xcuserdata/! ! ! USERNAME.xcuserdatad/! ! ! ! xcdebugger/! ! ! ! ! Breakpoints.xcbkptlist! ! ! ! xcschemes/! ! ! ! ! PROJECTNAME.xcscheme! ! ! ! ! xcschememanagement.plist

STRUCTURE PROJET XCODE 3 :

PROJECTNAME.xcodeproj/! project.pbxproj! project.xcworkspace! USERNAME.pbxuser! USERNAME.perspective! USERNAME.perspectivev3! USERNAME.mode1v3! USERNAME.mode2v3

Page 61: Hello xcode 4 v2

• 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».

SNAPSHOTRappel : permet de sauvegarder l’état courant d’un projet ou d’un workspace sur le disque pour restauration éventuelle.

Page 62: Hello xcode 4 v2

ARCHIVE

• 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)

Rappel : utilisé pour packager et distribuer l’application sous l’iOS ou MacApp Store.

Page 63: Hello xcode 4 v2

COMPILATION

par Jean-Alexandre Iragne

Page 64: Hello xcode 4 v2

COMPILATION (BUILD, TARGET, EXECUTABLE AND

DEBUGGER)• Introduction des schemes

• Utilisation

• Edition

• Build configuration

• Configuration

•Déploiement

• Build Phase

Page 65: Hello xcode 4 v2

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

Page 66: Hello xcode 4 v2

SCHEME EDITION

Page 67: Hello xcode 4 v2

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

Page 68: Hello xcode 4 v2

EXEMPLE SCHEME

Page 69: Hello xcode 4 v2

GESTION DE LA COMPILATION

• Où retrouver ses petits• Gestion des configurations• Gestion des langues• Déploiement• Vision du build setting par level

Page 70: Hello xcode 4 v2

BUILD SETTING

Page 71: Hello xcode 4 v2

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

Page 72: Hello xcode 4 v2

TARGET

Page 73: Hello xcode 4 v2

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

Page 74: Hello xcode 4 v2

EXEMPLE

Page 75: Hello xcode 4 v2

LE DEBUGGER

par Mathieu Godart

Page 76: Hello xcode 4 v2

DBG – APERÇU GÉNÉRAL

Page 77: Hello xcode 4 v2

DBG – BARRE DU DEBUGGER

Page 78: Hello xcode 4 v2

DBG – BREAKPOINT NAVIGATOR

Page 79: Hello xcode 4 v2

DBG – BREAKPOINT NAVIGATOR

Page 80: Hello xcode 4 v2

DBG – BREAKPOINT NAVIGATOR

Page 81: Hello xcode 4 v2

DBG – DEBUG NAVIGATOR

Page 82: Hello xcode 4 v2

DBG – VARIABLE VIEW

Page 83: Hello xcode 4 v2

DBG – VARIABLE VIEW

Page 84: Hello xcode 4 v2

DBG – VARIABLE VIEW

Page 85: Hello xcode 4 v2

DBG – LA CONSOLE

Page 86: Hello xcode 4 v2

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

Page 87: Hello xcode 4 v2

DBG – LA CONSOLE

•Quelques commandes utiles :

help

apropos

variable list

expr <objc-code>

script

Page 88: Hello xcode 4 v2

DBG – LA CONSOLE

Page 89: Hello xcode 4 v2

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

Page 90: Hello xcode 4 v2

QUESTIONS ?

Page 91: Hello xcode 4 v2

MERCI

Page 92: Hello xcode 4 v2