Essai Tutorial CoreData - Zéro ligne de code, pour commencer

GercofisGercofis Membre
novembre 2005 modifié dans API AppKit #1
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

Réponses

  • GercofisGercofis Membre
    novembre 2005 modifié #2
    Une bonne âme pour l'exécuter a la lettre histoire de voir s'il manque quelque chose , avant d'entreprendre la suite ? Donc Merci Aranaud...
    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...
  • aranaudaranaud Membre
    23:22 modifié #3
    dans 1133129001:

    ... je ne parle pas l'Anglais ...

    On est deux alors ...

    Je présume.
    dans 1133129001:

    newAttribute devient "fixe" le PopUp Type ( a droite ) est séléctionné à  "Date",Default Value = NO,->

    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]
  • GercofisGercofis Membre
    novembre 2005 modifié #4
    Petite suite:
    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]
  • aranaudaranaud Membre
    23:22 modifié #5
    Si j'ai bien compris. La classe créée permet de contrôler plus finement le comportement des données.

    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.
  • GercofisGercofis Membre
    23:22 modifié #6
    là  je sais pas il suffit d'essayer, éventuellement en refaire un autre et rajouter son code...

    Sinon c'est quant même assez cool, non ?

    Bon pour la suite pas tout de suite, hein !!
  • aranaudaranaud Membre
    23:22 modifié #7
    dans 1133271753:

    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.
  • clampinclampin Membre
    23:22 modifié #8
    L'idée est bonne, mais une série de screenshots égailleraient bien ton tutoriel.... ;)
  • tabliertablier Membre
    23:22 modifié #9
    D'accord avec Clampin, les copies d'écrans sont très explicites et permettent d'aérer les textes.
  • GercofisGercofis Membre
    23:22 modifié #10
    Qu'est ce qui vous empèche de les faires ?
  • tabliertablier Membre
    23:22 modifié #11
    Rien ne m'empèche de les faire! Mais:
    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:
    Toutes suggestions, rectifications, corrections (fautes d'orthographe), remarques, améliorations seront donc les bienvenues,....

    :P Ceci étant dit, c'est à  toi de voir!
  • elfelf Membre
    23:22 modifié #12
    je n'ai aucune intention de "casser" ce tuto mais pour ceux qui comprenne l'anglais y'en a un autre pas mal ici: http://www.cocoadevcentral.com/articles/000085.php
    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
  • Philippe49Philippe49 Membre
    23:22 modifié #13


    Merci pour cette contribution

    :adios!: :adios!: :adios!:
Connectez-vous ou Inscrivez-vous pour répondre.