Utiliser intelligemment la doc Apple

prepa75prepa75 Membre
14:52 modifié dans API AppKit #1
Bonjour,

Je commence à  plus ou moins comprendre comment utiliser une méthode voire une classe lorsque que je la trouve dans la doc apple.
Seulement voilà , je ne veux pas salir le forum avec mes questions de super débutant  :D   mais comment trouver la bonne méthode ?

je m'explique : par ex je voudrai une classe qui détermine la taille d'un fichier (pour afficher la taille d'un fichier .txt en temps réel),ça ne doit pas être super compliqué à  faire !
ainsi qu'une classe qui permet de lancer une ligne de code dans le terminal...

et voilà  j'ai encore plein de trucs à  vous demander mais il doit bien y avoir un endroit ou l'on peut avoir un récapitulatif de toute les classes et méthodes non ??

Comment vous faites vous pour connaà®tre la méthode qui correspond à  votre besoin ??

Merci pour vos lumières... :D

Réponses

  • Eric P.Eric P. Membre
    14:52 modifié #2
    Il suffit juste de tout apprendre par coeur... ou attendre qu'Ali réponde.

    Bon sinon la question est intéressante et j'attends également la réponse pour m'éviter bien des recherches fastidieuses.
  • prepa75prepa75 Membre
    14:52 modifié #3
    Bon ça va je ne me sent pas seul dans ma nulitude 
  • tabliertablier Membre
    août 2010 modifié #4
    J'ai eu le même problème quand j'ai débuté (Mais Chacha a répondu à  quelques questions, merci). 5 ans après, ce que j'en pense: Il y a les pros d'un coté  et les amateurs-débutants de l'autre.
    En général le "pro" possède déjà  les principes et a déjà  vu des langages orientés Objets.
    Les amateurs-débutants y vont "au pif" et se font avoir! c'est comme cela que l'on apprend. Mais le forum aide dans bien des cas et les anciens répondent volontier aux questions.

    exemples pour se faire avoir:
    Vous voulez couper un NSString  de +sieurs lignes, ligne par ligne dans un NSArray. Vous cherchez dans la doc de NSString ou dans celle de NSArray ?  (1)
    Puis vous voulez faire l'inverse, c'est à  dire reconstituer le NSString d'origine en ajoutant un "\n" entre chaque ligne. Vous cherchez dans la doc de NSString ou dans celle de NSArray ?  (2)

    Réponses possibles: 
    (1) NSString,    componentsSeparatedByString:,  componentsSeparatedByCharactersInSet: ........etc
    (2) NSArray,    componentsJoinedByString:

    Donc: courage, persévérance et questions et/ou recherches sur le forum!!
  • laudemalaudema Membre
    14:52 modifié #5
    J'utilise la documentation Xcode 
    Celle que tu as dans le menu Help de Xcode ou par raccourci clavier "command ?" ou en maintenant commande+option enfoncés tout en double-clicquant sur un mot ou par un clic droit de la souris après avoir sélectionné plusieurs mots en usant de l'item du sous menu "Find Text in Documentation"
    Dans la fenêtre de documentation j'use aussi des boutons "contains/prefix/Exact" et des pops menus "Doc Set" et "Language" (mais ceux là  moins, en général c'est C+Objective-C & 3 of 4 Doc Sets (les 4 - Legacy) suivant le nombre de résultats obtenus pour la recherche.

    Reste à  savoir quel texte chercher !
    Pour chercher des renseignements sur comment user d'une classe ça va bien, par contre pour trouver la classe à  utiliser pour telle ou telle action c'est plus coton. Là  j'use de termes plus généraux: j'aime bien les trucs du genre "management"
    File Management par exemple donne NSFileManager qui permet de récupérer un dictionnaire des attributs du fichier et NSDictionary te donne une methode pour en retrouver la taille: fileSize.
    Si tu tapes fileSize et cliques dessus tout en tenant option-commande enfoncées tu en verras la documentation ;)

    Pour lancer une ligne de code dans le terminal je n'ai pas su, en faisant comme ça. Google restera probablement ton meilleur ami pour ça (ou ici ;) en attendant que tu aies suffisamment d'expérience. Un livre comme celui de Hillegass est super utile aussi, c'est lui qui m'a initié pratiquement à  ce que je sais de Cocoa aujourd'hui. Par exemple je sais que NSTask permet ce genre de choses pour l'avoir vu au chapitre 34 (oui, j'ai lu/étudié les 33 autres aussi et ils m'ont été utiles,sans parler de la lecture des guides ou des références de la doc officielle ;/
    Mais peut être voulais tu parler de quelque chose comme le raccourci clavier Control-R
    Tape ls puis controle-R dans un éditeur si tu ne connais pas et tu verras le résultat ;-))
  • prepa75prepa75 Membre
    14:52 modifié #6
    dans 1280774799:

    Donc: courage, persévérance et questions et/ou recherches sur le forum!!


    Oui je vais sérieusement m'y mettre ! maintenant que je vais me faire une tite licence d'info 
  • devulderdevulder Membre
    14:52 modifié #7
    dans 1280780418:

    dans 1280774799:

    Donc: courage, persévérance et questions et/ou recherches sur le forum!!


    Oui je vais sérieusement m'y mettre ! maintenant que je vais me faire une tite licence d'info 


    Bonjour,

    Un outil indispensable également c'est AppKiDo, pour naviguer dans classes.

    Voir ici
  • tboptbop Membre
    août 2010 modifié #8
    Génial AppKido, je connaissais pas merci.

    Sinon pour le shell j'ai trouvé ça, je ne sais pas si ça correspond à  tes attentes :

    http://stackoverflow.com/questions/1475182/cocoa-objective-c-shell-command-line-execution


    Google reste souvent de toute façon ton meilleur ami, vraiment.
  • prepa75prepa75 Membre
    14:52 modifié #9
    Merci bien devulder ça correspond tout à  fait à  ce que  je recherche...bon je galère un peu pour l'utilisation mais ça c'est moi et mon anglais 

  • prepa75prepa75 Membre
    14:52 modifié #10
    dans 1280826189:


    Sinon pour le shell j'ai trouvé ça, je ne sais pas si ça correspond à  tes attentes...
    Google reste souvent de toute façon ton meilleur ami, vraiment.


    oui ça correspond car sa question est la même que la mienne...mais bon je comprend pas trop ce qu'il fait,je vais essayer de trouver avec google mon ami  :P
  • prepa75prepa75 Membre
    14:52 modifié #11
    voilà , aprés avoir fait plusieurs recherches j'ai trouver une réponse ici j'ai testé et ça marche...

    google est vraiment sympa 
  • RocouRocou Membre
    14:52 modifié #12
    dans 1280858461:

    ici j'ai testé et ça marche...

    :D

    Sinon il ne faut pas oublier la fonction recherche du forum.
    Google renvoie souvent des liens morts vers les différentes versions de PommeDev. Il faudrait vraiment que muqaddar se calme!  ;)
  • prepa75prepa75 Membre
    14:52 modifié #13
    En effet Rocou tu as tout à  fait raison,mais je ne te cache pas que j'ai déja essayer de trouver sur le forum et je n'ai pas eu beaucoup de résultats convaincant  :(
  • AliGatorAliGator Membre, Modérateur
    14:52 modifié #14
    Y'a pas de secret, il suffit d'être omniscient !
    Plus serieusement ce qu'il faut pour bien chercher dans la doc c'est ne pas hésiter à  suivre les liens et lire les Programming Guides, qui justement sont là  pour ça puisque leur rôle est de repondreaux questions du genre "comment faire pour faire tel truc ?" (et non pas "quelles sont les possibilités de telle classe ?", ça c'est le rôle des docs de type "Class Reference")
    Par exemple le URL Loading System Programming Guide va repondreaux questions concernant tout ce qu'on doit savoir sur le chargement des URLs : comment faire une requête, comment télécharger une ressource, ce qui ce passe quand il n'y a pas de réseau...

    En général il suffit de chercher le bon mot clé dans la doc Apple pour tomber sur la liste des Programming Guides adaptés ou mieux encore, consulter directement la doc sur developer.Apple.com/iphone en particulierles "Programming Topics" organisés par thèmes, etc...
    Et sinon faire une recherche Google avec les bons mots clés (de préférence en anglais, les mots clés, on a beaucoup plus de chance de trouver, à  condition de connaitre le bon terme evidemment (mais bon de toute façon programmer sans connaitre les termes d'anglais technique -- je parle pas de causer couramment anglais ni même savoir l'écrire, et je parle bien d'anglais technique -- c'est utopique), ceci dit c'est parfois plus facile de connaitre le terme en anglais qu'en français (allez me traduire "multithreading" ou "runloop" vous... Même des expressions comme "design pattern" ont bien un équivalent français mais moins connu que le terme anglais même parmi les francophones, alors...)

    La petite astuce du jour si vous voulez restreindre vos recherches Google au site de la doc Apple c'est de rajouter " site:developer.apple.com" a la fin de votre phrase de recherche, par exemple "memory managment site:developer.apple.com" etc. Ou sinon faire une première recherche, voir ce qu'on trouve et affiner/rebondir sur des termes qu'on voit souvent dans les réponses, par exemple si on cherche "execute UNIX command line Cocoa" et qu'on tombe sur plein de forums qui causent de "tasks" et de "pipe" on peut se dire que ce sont des mots clés, et réaliser que c'est par le terme "task" que l'on designe officiellement techniquement une commande UNIX, et donc réessayer la recherche avec ce mot clé qui a des chances de donner des résultats plus probants du coup... Et en un ou deux rebonds on a la réponse avec plein de pages donnant des exemples, on voit que tout tourne autour de NSTask et NSPipe, donc on peut également rechercher ces noms de classe sur developer.apple.com voir s'il y a des Sample Code, Programming Guide ou quoi sur le sujet, ou lire leurs Class References...
  • KubernanKubernan Membre
    août 2010 modifié #15
    Bonjour,

    Déjà  une bonne nouvelle : tu peux être sûr que ce que tu veux faire a déjà  été fait et documenté !  :P

    Si tu sens que tu vas galérer à  rechercher directement dans la doc Apple, le plus simple est de rechercher le plus largement possible dans Google et d'affiner petit à  petit pour finir dans la doc Apple.

    En ce qui me concerne j'ajoutais régulièrement le terme cocoa dans mes recherches. Par exemple, pour ton histoire de terminal suffit de lancer une recherche avec les mots "terminal cocoa" et la, pif paf, tu as ta réponse. Ainsi, les bouts de code que tu vas lire te permettront d'affiner ta recherche directement dans la doc Apple (NSTask dans notre cas, c'est ce qui est mentionné dans le lien retourné par Google : http://stackoverflow.com/questions/412562/execute-a-terminal-command-from-a-cocoa-app). Avec un peu de chance tu auras, dans la documentation de la classe elle même, un lien vers un "programming guide" ou des liens sur des exemples de code.

    Pour la taille d'un fichier, rechercher "file size cocoa".

    Oui, évidement faut connaà®tre un peu d'anglais - ça marche peut-être en français mais j'ai l'habitude de tout chercher en anglais - mais pas forcément les termes techniques propres aux APIs Apple comme tu peux le voir dans mes exemples.

    K.
  • prepa75prepa75 Membre
    14:52 modifié #16
    bon je pense que j'ai tout ce qu'il faut pour trouver la classe correspondant à  mon besoin... 

    En effet je commence à  comprendre pourquoi vous dites que la doc apple est une bible  :P
  • FKDEVFKDEV Membre
    14:52 modifié #17
    Comme Ali:

    1. Etre bon en anglais (en tous cas en lecture d'anglais)

    2. Apprendre quelques principes generaux de recherche : partir d'une recherche large et affiner, trouver les mots clés qui ouvrent la recherche et ceux qui ferment.

    3. Utiliser Google. Google index la doc apple mais ausi stackoverflow et des miliers de blogs. Il ya donc peu d'interet a faire u e recher he sur la doc apple sauf si vous savez ce que vous cherchez.

    Quand je ne connais pas du tout un sujet, j'essaye de trouver un exemple et ensuite de comprendre comment il fonctionne.
    Beaucoup de gens denigrent la programmation par copier/coller. Je trouve ça dommage car c'est la maniere de faire laplus adapté à  l'epoque actuelle. A condition de prendre la peine de comprendre ce que l'on a recopié.
  • GreensourceGreensource Membre
    14:52 modifié #18
    La Documentation est notre Bible,
    Les Guidelines sont nos Dix commandements,
    Et Steve Jobs notre Messie,
    Ameeeeeeeeeeen!  :P
  • prepa75prepa75 Membre
    14:52 modifié #19
    dans 1281081348:

    Beaucoup de gens denigrent la programmation par copier/coller. Je trouve ça dommage car c'est la maniere de faire la plus adapté à  l'epoque actuelle. A condition de prendre la peine de comprendre ce que l'on a recopié.


    le fossé est là  : beaucoup utilisent le copier coller sans comprendre ! personnellement j'essaye de comprendre sinon je passe par un autre moyen pour coder ce dont j'ai besoin
  • prepa75prepa75 Membre
    14:52 modifié #20
    dans 1281082047:

    La Documentation est notre Bible,
    Les Guidelines sont nos Dix commandements,
    Et Steve Jobs notre Messie,
    Ameeeeeeeeeeen!  :P


    j'avais lu un article qui concernais justement apple et il disait que Steve dans ses discourts écrits et oraux il utilisait des termes endoctrinant biblique...est-ce vrai j'en sais rien car je ne lis pas la bible mais bon si c'est vrai et volontaire c'est choquant...
  • GreensourceGreensource Membre
    14:52 modifié #21
    Je pense qu'il y a une partie de vrai, il a clairement une façon de discourir et de présenté les choses très entrainante et motivante. Mais à  mon avis c'est sa façon d'être, en tout cas ceux qui le côtoie ou l'ont côtoyé disent qu'il est comme ça naturellement donc je dirais pas qu'il y a une volonté d'endoctrinement quelconque mais simplement une façon d'être.

    Tu cumules ça avec quelqu'un de passionné par ce qu'il fait depuis toujours et qui souhait et pense révolutionné le monde, tu obtiens certains coté mystique dans le personnage.

    Et tu rajoute encore une victoire contre le cancer, une greffe et le renouveau d'Apple et BAM ça fait des Chocapic...  :D
  • tabliertablier Membre
    14:52 modifié #22
    j'avais lu un article qui concernais justement apple et il disait que Steve dans ses discours écrits et oraux il utilisait des termes endoctrinant biblique...est-ce vrai j'en sais rien car je ne lis pas la bible mais bon si c'est vrai et volontaire c'est choquant...
    Ouais! mais dans la bible on trouve tout et son contraire! Quand au nouveau testament il incite à  la réconciliation et au pardon!  Rien a voir avec les actions d'Apple! Quand à  notre gourou, s'il a un coté innovateur intéressant, son coté "Evangéliste, Pensée Unique" est assez insupportable!
  • prepa75prepa75 Membre
    14:52 modifié #23
    dans 1281345665:

    j'avais lu un article qui concernais justement apple et il disait que Steve dans ses discours écrits et oraux il utilisait des termes endoctrinant biblique...est-ce vrai j'en sais rien car je ne lis pas la bible mais bon si c'est vrai et volontaire c'est choquant...
    Ouais! mais dans la bible on trouve tout et son contraire! Quand au nouveau testament il incite à  la réconciliation et au pardon!  Rien a voir avec les actions d'Apple! Quand à  notre gourou, s'il a un coté innovateur intéressant, son coté "Evangéliste, Pensée Unique" est assez insupportable!


    n'étant pas croyant je ne connais pas le contenu de la bible mais en effet je pense que l'on peut y faire dire à  peu prés ce que l'on veux  perso ce que je ne supporte pas ce sont les pubs sur le site d'apple lorsque un nouveau produit sort, l'ordinateur le plus puissant au monde, le téléphone le plus rapide de tout les temps etc... même si c'est vrai ça me choque.
  • GreensourceGreensource Membre
    14:52 modifié #24
    Faut pas trop s'en offusquer, c'est du marketing, c'est fait pour parler à  l'inconscient des gens.
    A partir de ça faut juste être un minimum méfiant et éviter les achats impulsifs et pis voilà .
Connectez-vous ou Inscrivez-vous pour répondre.