Oui j'ai un template de fichier custom que j'ai rajouté aux templates de Xcode et c'est mon template custom que j'utilise quand je fais File > New File dans Xcode.
Dans ce template que j'ai créé, j'ai des "#pragma mark" pour séparer chaque section et grouper un peu mes éléments, séparer les #import des déclarations de constantes, de l'interface privée et les de @property, des méthodes publiques, des méthodes privées, des méthodes de delegate... Je déclare tout ça toujours dans le même ordre du coup, puisque mon template de fichier a déjà les "en-têtes" (via ces "#pragma mark") dans le bon ordre pour ces section que je me suis imposé.
J'utilise les "#pragma mark - Imports" par exemple, par contre je ne vais pas jusqu'à séparer en sous-groupes. Ca fait un peu too-much je trouve, perso.
J'essaye de mettre quand même les imports dans l'ordre (Frameworks Apple, puis classe parente & co, puis classe métier/modèle...) et je sépare quand même mes @property IBOutlet des aurtes @property par un espace (ligne vide), mais sans #pragma mark pour autant. D'ailleurs une classe avec trop de @property c'est probablement/potentiellement aussi le signe qu'il faut peut-être découper en plusieurs fichiers et plusieurs classes (bon après c'est possible que tu n'aies pas le choix, mais ça devrait au moins te faire réfléchir)
D'ailleurs une classe avec trop de @property c'est probablement/potentiellement aussi le signe qu'il faut peut-être découper en plusieurs fichiers et plusieurs classes (bon après c'est possible que tu n'aies pas le choix, mais ça devrait au moins te faire réfléchir)
PS : par où commence-t-on pour créer un template pour xcode5 ?
Tu va chercher un template fourni dans le bundle de Xcode (/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/File Templates), tu en choisis un qui t'inspire, tu dupliques son dossier ".xctemplate" dans "~/Library/Developer/Xcode/Templates/File Templates" (dans TON dossier ~/Library de ta home donc ; tu auras peut-être à créer les dossiers "Templates" et "File Templates" s'ils n'existent pas) et tu t'en inspire pour le dériver un peu : - tu édites le PLIST pour choisir un autre identifiant unique pour ce template et éventuellement un nom " tu peux aussi faire mumuse avec les options du template mais bon ça tu feras ça dans un 2e temps hein car c'est moins simple à maà®triser - tu édites les fichiers .h et .m qui sont fournis dans ce template pour les adapter au modèle de document et d'organisation de code que tu veux.
Réponses
Moi, en gros c'est d'abord les property avec outlets (UI) puis les property "classiques" sans outlet.
J'essaie de grouper dans la mesure du possible par type (ex: tous les UIBarButtonItems ensemble), tous les NSArray ensembles...etc.
Dans ce template que j'ai créé, j'ai des "#pragma mark" pour séparer chaque section et grouper un peu mes éléments, séparer les #import des déclarations de constantes, de l'interface privée et les de @property, des méthodes publiques, des méthodes privées, des méthodes de delegate...
Je déclare tout ça toujours dans le même ordre du coup, puisque mon template de fichier a déjà les "en-têtes" (via ces "#pragma mark") dans le bon ordre pour ces section que je me suis imposé.
@Ali :
et, concernant juste les @property, est-ce que tu les sépares en sous-groupes et, si oui, lesquels ?
Pour l'instant, je les sépare plus ou moins en IBOutlets, weak, strong, mais je me demandais s'il y avait pas plus malin.
Voilà ce que je fais, plus ou moins...
J'aimerais pouvoir appliquer toujours les mêmes critères pour classer mes @property.
Pour l'instant, ce n'est pas très formel.
Je n'ai pas créé de template.
Je vais peut-être attendre Xcode 5 (que je n'ai toujours pas vu!) pour le faire.
Utilise les balises
ou
Tu les retrouveras alors en cliquant en haut à droite, sur le nom de méthode/fonction, à droite du nom du fichier.
Encore mieux :
Il va dessiner une ligne horizontale dans le menu des pragma mark !!
J'essaye de mettre quand même les imports dans l'ordre (Frameworks Apple, puis classe parente & co, puis classe métier/modèle...) et je sépare quand même mes @property IBOutlet des aurtes @property par un espace (ligne vide), mais sans #pragma mark pour autant. D'ailleurs une classe avec trop de @property c'est probablement/potentiellement aussi le signe qu'il faut peut-être découper en plusieurs fichiers et plusieurs classes (bon après c'est possible que tu n'aies pas le choix, mais ça devrait au moins te faire réfléchir)
Oui ça parait louche.
Je vous propose la séparation de @properties comme ceci :
Si vous voyez comment améliorer le classement, n'hésitez pas !
PS : par où commence-t-on pour créer un template pour xcode5 ?
- tu édites le PLIST pour choisir un autre identifiant unique pour ce template et éventuellement un nom " tu peux aussi faire mumuse avec les options du template mais bon ça tu feras ça dans un 2e temps hein car c'est moins simple à maà®triser
- tu édites les fichiers .h et .m qui sont fournis dans ce template pour les adapter au modèle de document et d'organisation de code que tu veux.
On peut aussi trouver les templates là :
/Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates
Je n'ai pas vraiment trouvé de clé pour l'identifiant unique. À quoi faisais-tu allusion ?
cf.
Voici ma proposition de template.
Elle doit être copiée dans le dossier : ~/Library/Developer/Xcode/Templates/My Templates
Si vous avez des idées de comment la compléter, je suis intéressé. ça sera peut-être pour moi l'occasion d'apprendre de bonnes pratiques.
Merci !