Essai Tutorial CoreData - Zéro ligne de code, pour commencer
Gercofis
Membre
Tutorial de CoreData sans une ligne de code
Donc un Planning - tiré de l'exemple:
http://developer.apple.com/documentation/Cocoa/Conceptual/NSPersistentDocumentTutorial/index.html
Soyons clair, je ne suis ni un pro bidouilleur (averti, encore que !) et je ne parle pas l'Anglais ...
Toutes suggestions, rectifications, corrections (fautes d'orthographe), remarques, améliorations seront donc les bienvenues, notamment quand on arrivera aux bindings que je parviens à utiliser mais diable ! tout ça n'est pas très intuitif, que faut-il blinder ? où ? comment ? avec quoi ? En général ça trifouille pas mal.
Bref, si je ne m'y mets pas personne ne le fera, pour faire quelque chose en programmation il faut que j'en aie besoin.
Plantons le décor, certains appellent ça le cahier des charges (ce qui souvent m'énerve parce qu'on se sent obligé de rester dedans).
Un planning de Table view, il s'agit d'exécution de chantier, l'unité de temps est la journée, il nous faut donc, le jour de démarrage, le nombre de jours, le jour de fin, le nom du chantier, le lieu, le chiffre d'affaires, pour moi les kilomètres de trajet et les tâches, en tenant compte des jours fériés, intempéries, congés etc. qui seront rentrés comme des chantier mais figés ...
Logiquement sur un document je devrais avoir le total : du chiffre d'affraires, du nombre de jours travaillés (pour moi total km trajet et tâches).
L'objectif étant de pouvoir adapter à chaque instant ...
Réalisons donc le projet avec l'interface avec zéro ligne de code, ok ?
Réalisons donc le projet avec l'interface avec Zéro ligne de code... ok ?
Convention :
Un clic sur un bouton nommé bouton est écrit comme ça [Bouton], -> [ + ] ou [+] = clic sur le bouton "+", ->> = doubleClic
On ne change que ce qui est indiqué par la valeur que je j'indique
Xcode (2.2 , je crois qu'avec 2.1 c'est bon ) il se dandine et donne la main
Menu : File/NewProjet -> Core Data Document-based Application [Next]
Project Name : Planning [Finish]
on D/Clic -> MyDocument.xdatamodel
En bas de zone Entity , en bas placer le PopUp du triangle bas sur "Flat List", toujours en bas [ + ] on change le nom de l'Entity généré soit directement sur la liste, soit dans le champ à droite soit sur la grille, donc "Entity" ( de la nouvelle ligne ) devient "Planning" cette ligne doit rester sélectionnée
Dans la zone Property en bas placer le PopUp du triangle bas sur "Show Attributes",-> [ + ]
Même possibilité de modification que précédemment:
newAttribute devient "dateDeDebut" le PopUp Type ( a droite ) est séléctionné à "Date",-> [ + ]
newAttribute devient "nombreDeJour" le PopUp Type ( a droite ) est séléctionné à "Integer 16", champ Default Value = 1,-> [ + ]
newAttribute devient "dateDeFin" le PopUp Type ( a droite ) est séléctionné à "Date",-> [ + ]
newAttribute devient "fixe" le PopUp Type ( a droite ) est séléctionné à "Bool",Default Value = NO,-> [ + ]
newAttribute devient "nomChantier" le PopUp Type ( a droite ) est séléctionné à "String",on décochera Optional-> [ + ]
newAttribute devient "ville" le PopUp Type ( a droite ) est séléctionné à "String",-> [ + ]
newAttribute devient "tache" le PopUp Type ( a droite ) est séléctionné à "Integer 16" (c'est qui me convient à moi),-> [ + ]
newAttribute devient "kilometre" le PopUp Type ( a droite ) est séléctionné à "Integer 16" (c'est qui me convient à moi),-> [ + ]
newAttribute devient "chiffreDaffaire" le PopUp Type ( a droite ) est séléctionné à "Decimal" (c'est qui me convient à moi),-> [ + ]
newAttribute devient "observation" le PopUp Type ( a droite ) est séléctionné à "String" (c'est qui me convient à moi),-> [ + ]
Dans le menu File/Save (Xcode) sans ranger la fenêtre...
Dans la Fenêtre Xcode ->> MyDocument.nib, InterfaceBuilder va donc ouvrir la window correspondante
Menu Tools sélectionner show Inspector Window Titre devient Planning ainsi que l'instance Window
On vire "Your document contents here" (généré automatiquement)
Placez les fenêtres "Planning" de IB et sur votre bureau de façon à ce que celles-ci soient visibles et selectionnez "MyDocument.xcdatamodel".
Sélectionnez sur cette dernière la grille "Planning" en appuyant sur la Touche alt et on la drop dans la fenêtre Planning de IB...
un dialogue apparaà®t, confirmez l'option par défaut..
Un peu magique quand même ici... enfin normalement si ce n'est pas le cas il faut recommencer ou chercher l'erreur...
Dans la fenêtre "MyDocument.nib" doit apparaà®tre le Contrôleur "Planning Array Controller"
Du coup maintenant il faut mettre un peu d'ordre, agrandir la fenêtre, virer tous les champs et leurs titres sauf Observation et son champ qu'on peut laisser en bas de la fenètre en plus grand.
Agrandir aussi la TableView, remettre en ordre de la création, centrer les titres et changer au mieux, changer le titre des boutons ?,-,+. Glisser le NSButtonCell sur la colonne "fixe", gérer au mieux les formatteurs...
Cde/Save dans IB
Et on Compile
Donc un Planning - tiré de l'exemple:
http://developer.apple.com/documentation/Cocoa/Conceptual/NSPersistentDocumentTutorial/index.html
Soyons clair, je ne suis ni un pro bidouilleur (averti, encore que !) et je ne parle pas l'Anglais ...
Toutes suggestions, rectifications, corrections (fautes d'orthographe), remarques, améliorations seront donc les bienvenues, notamment quand on arrivera aux bindings que je parviens à utiliser mais diable ! tout ça n'est pas très intuitif, que faut-il blinder ? où ? comment ? avec quoi ? En général ça trifouille pas mal.
Bref, si je ne m'y mets pas personne ne le fera, pour faire quelque chose en programmation il faut que j'en aie besoin.
Plantons le décor, certains appellent ça le cahier des charges (ce qui souvent m'énerve parce qu'on se sent obligé de rester dedans).
Un planning de Table view, il s'agit d'exécution de chantier, l'unité de temps est la journée, il nous faut donc, le jour de démarrage, le nombre de jours, le jour de fin, le nom du chantier, le lieu, le chiffre d'affaires, pour moi les kilomètres de trajet et les tâches, en tenant compte des jours fériés, intempéries, congés etc. qui seront rentrés comme des chantier mais figés ...
Logiquement sur un document je devrais avoir le total : du chiffre d'affraires, du nombre de jours travaillés (pour moi total km trajet et tâches).
L'objectif étant de pouvoir adapter à chaque instant ...
Réalisons donc le projet avec l'interface avec zéro ligne de code, ok ?
Réalisons donc le projet avec l'interface avec Zéro ligne de code... ok ?
Convention :
Un clic sur un bouton nommé bouton est écrit comme ça [Bouton], -> [ + ] ou [+] = clic sur le bouton "+", ->> = doubleClic
On ne change que ce qui est indiqué par la valeur que je j'indique
Xcode (2.2 , je crois qu'avec 2.1 c'est bon ) il se dandine et donne la main
Menu : File/NewProjet -> Core Data Document-based Application [Next]
Project Name : Planning [Finish]
on D/Clic -> MyDocument.xdatamodel
En bas de zone Entity , en bas placer le PopUp du triangle bas sur "Flat List", toujours en bas [ + ] on change le nom de l'Entity généré soit directement sur la liste, soit dans le champ à droite soit sur la grille, donc "Entity" ( de la nouvelle ligne ) devient "Planning" cette ligne doit rester sélectionnée
Dans la zone Property en bas placer le PopUp du triangle bas sur "Show Attributes",-> [ + ]
Même possibilité de modification que précédemment:
newAttribute devient "dateDeDebut" le PopUp Type ( a droite ) est séléctionné à "Date",-> [ + ]
newAttribute devient "nombreDeJour" le PopUp Type ( a droite ) est séléctionné à "Integer 16", champ Default Value = 1,-> [ + ]
newAttribute devient "dateDeFin" le PopUp Type ( a droite ) est séléctionné à "Date",-> [ + ]
newAttribute devient "fixe" le PopUp Type ( a droite ) est séléctionné à "Bool",Default Value = NO,-> [ + ]
newAttribute devient "nomChantier" le PopUp Type ( a droite ) est séléctionné à "String",on décochera Optional-> [ + ]
newAttribute devient "ville" le PopUp Type ( a droite ) est séléctionné à "String",-> [ + ]
newAttribute devient "tache" le PopUp Type ( a droite ) est séléctionné à "Integer 16" (c'est qui me convient à moi),-> [ + ]
newAttribute devient "kilometre" le PopUp Type ( a droite ) est séléctionné à "Integer 16" (c'est qui me convient à moi),-> [ + ]
newAttribute devient "chiffreDaffaire" le PopUp Type ( a droite ) est séléctionné à "Decimal" (c'est qui me convient à moi),-> [ + ]
newAttribute devient "observation" le PopUp Type ( a droite ) est séléctionné à "String" (c'est qui me convient à moi),-> [ + ]
Dans le menu File/Save (Xcode) sans ranger la fenêtre...
Dans la Fenêtre Xcode ->> MyDocument.nib, InterfaceBuilder va donc ouvrir la window correspondante
Menu Tools sélectionner show Inspector Window Titre devient Planning ainsi que l'instance Window
On vire "Your document contents here" (généré automatiquement)
Placez les fenêtres "Planning" de IB et sur votre bureau de façon à ce que celles-ci soient visibles et selectionnez "MyDocument.xcdatamodel".
Sélectionnez sur cette dernière la grille "Planning" en appuyant sur la Touche alt et on la drop dans la fenêtre Planning de IB...
un dialogue apparaà®t, confirmez l'option par défaut..
Un peu magique quand même ici... enfin normalement si ce n'est pas le cas il faut recommencer ou chercher l'erreur...
Dans la fenêtre "MyDocument.nib" doit apparaà®tre le Contrôleur "Planning Array Controller"
Du coup maintenant il faut mettre un peu d'ordre, agrandir la fenêtre, virer tous les champs et leurs titres sauf Observation et son champ qu'on peut laisser en bas de la fenètre en plus grand.
Agrandir aussi la TableView, remettre en ordre de la création, centrer les titres et changer au mieux, changer le titre des boutons ?,-,+. Glisser le NSButtonCell sur la colonne "fixe", gérer au mieux les formatteurs...
Cde/Save dans IB
Et on Compile
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
J'ai modifié l'erreur de copier/coller sur la date...
J'ai également ajouter le drop du NSButtonCell sur la colonne "fixe"
Et modifier [+] en [ + ], en ajoutant les espaces c'est plus lisible...
Je solicite de l'aide pour stocker dans le même document les autres champs de cette fenetre, ainsi que les dimensions, positions de la fenètre et ses colonnes...
On est deux alors ...
Je présume.
newAttribute devient "fixe" le PopUp Type ( a droite ) est séléctionné à "[glow=red,2,300]Bool[/glow]",Default Value = NO,->
Intéressant, j'attend la suite avec impatience. :adios!: :adios!:
Voir ce que j'ai obtenue (en ajoutant quelques modif).
[Fichier joint supprimé par l'administrateur]
Sélectionner la grille "Planning" dans le fichier "MyDocument.xdatamodel" et maintenir sélectionné...
Menu : File/NewFile dans l'assistant on sélectionne "Design/Managed Object Class" , valider les options suivantes...
la classe des setteurs "Planning" est générée automatiquement, on observe aussi que la classe de l'Entity "Planning" a donc changé de nom.
Le projet a ce stade est joint :
[Fichier joint supprimé par l'administrateur]
Mais en cas de mise à jours de la structure des données. Est-on obligé de refaire la classe ou est-elle mise à jour de façon automatique ? À première vu non.
Sinon c'est quant même assez cool, non ?
Bon pour la suite pas tout de suite, hein !!
Prends ton temps, je préfère attendre et avoir un Tutorial de qualité en apprenant plein de truc. Et puis, il faut laisser les élevés étudier la leçon.
D'un côté c'est souple, mais l'histoire de la mise à jour semble bien rigide.
1) je viens de faire je ne sais combien de copies d'écran pour le "tutoriel débutant" et je vais attendre un peut avant de retravailler pour la communauté.
2) Mon avis n'est qu'une réponse à ce que tu demandes dans ton premier texte:
:P Ceci étant dit, c'est à toi de voir!
je n'ai pas lu celui-là donc il se peut qu'ils soient complèmentaire et il se peut que il disent la même chose!
sinon des screenshots ça serais pas mal aussi
Merci pour cette contribution
:adios!: :adios!: :adios!: