07.12.2010 | 21:47
i tako za svaku aplikaciju koju radim ima masu tih izraza koje moram upotrijebiti, a ne mogu ih nikako znati sve u svakom trenutku pa se pitam ima li kakva pomoć za to(tipa u nekom dokumentu ispisane i objašnjene sve naredbe) da se mogu malo "osamostaliti" od tutoriala i pokušati nešto sam napraviti, a ne da svako malo tražim naredbe na sto izvora a na kraju pola toga ne nađem.
Smayoo te uputio u pravom smjeru, ali u novijim izadnjima Dev Toolsa Apple je malo "pretumbao" dokumentaciju pa je po novom "Developer Reference" postao "Developer Documentation" i do njega vodi alt+cmd+?. Spomenuti ctrl+cmd+? otvara Quick Help koji u vlastitom prozoru sažeto lista sve bitno što se odnosi na riječ u kojoj se trenutno nalazi tekstualni kursor (u Xcodeovom editoru). Dakle, ako je kursor negdje unutar riječi "NSView", Quick Help će prikazati informacije koje se odnose na NSView. Kako mičeš kursor i prelaziš na nove riječi, mijenjat će se sadržaj Quick Helpa. Koliko god se čini korisnim, zna biti iritantno nakon nekog vremena.
Utoliko je jedan od tvojih najboljih Xcode prijatelja alt+cmd i dvoklik na bilo koju riječ u kodu. Primjerice, držiš alt+cmd, dvoklikneš na "NSView" (ne moraš ništa prethodno selektirati, samo dvoklikni - mouse pointer se, nakon što pritisneš alt+cmd mijenja u crni križić) i otvorit će se Developer Documentation prozor, a njemu će biti prikazana dokumentacija za NSView (Class Reference).
No, na stranu shortcuti, čini mi se da pravi problem (po običaju) leži u nekom od prethodnih koraka - kako uopće znati što i gdje tražiti?
Kad radiš po tutorialu pa samo poželiš nešto dodati, put do informacije je lakši - kao što je Smayoo napisao, u Searchu Developer Documenationa upišeš ključnu riječ (vjerojatno neku koju već imaš u kodu) i možda već iz prvog pokušaja dođeš do odgovarajućeg dokumenta odnosno informacije u njemu (primjerice, neke druge metode koju možeš pozvati na istom objektu).
Međutim, takav princip, koliko god "savršeno" funkcionira kod učenja, u praksi zapravo nije primjenjiv jer najčešće nemaš pojma što zapravo moraš tražiti (ne znaš ključnu riječ).
Cijeli problem (u smislu "pogađanja" koju metodu možemo pozvati na kojem objektu) se vrti oko toga da prvo moramo biti načisto sami sa sobom što zapravo radimo. Koliko god zadatak pred nama izgledao komplicirano, možemo ga (i moramo) raščlaniti na manje dijelove pa tako možemo i prije nego što krenemo programirati "cijeli program" znati da negdje u programu, primjerice, "moramo prikazati sliku". Potom dokumentaciju čitamo tražeći odgovor na pitanje "kako prikazati sliku?".
Gdje pronaći odgovor na to pitanje?
Appleova dokumentacija prilično je kaotična (pogotovo za početnike). Sadrži preko 3.000 dokumenata koji se često mijenjaju i stalno dolaze novi. Naučiti ih napamet definitivno nije opcija.
Srećom, svaki dokument osim naslova ima 3 korisna "taga" (Resource Type, Topic i Framework) koja možemo koristiti za ih sortirati i/ili filtrirati.
Resurce Type je trenutno najmanje bitan, ali vrijedi znati koji sve postoje. Getting Started je uvijek dobar početak pa tako ako je cilj prikazati sliku, možemo kliknuti na Topic (Home/Mac OS X Core Library, ako programiramo za Mac ili Home/iOS Library, ako programiramo za iOS uređaje) "Graphics & Animation" (jer "prikaz slike" očito ne spada u "Security" topic) i u njemu, koristeći polje za pretraživanje/filtriranje dokumenata upisati "getting started" - izbor će se svesti na jedan dokument: "Getting Started with Graphics & Animation". On nam daje svojevrsni overview, odnosno objašnjava nam što uopće sve imamo na raspolaganju i kako su zamišljeni koncepti. Dokumenti tipa "Guides" (konkretnije, Programming Guides) objašnjavaju kako iste te koncepte pretvoriti u konkretan kod. U njima već nailazimo na različite tipove objekata i pozive metoda i nakon toga imamo na raspolaganju dva smjera - primjere (Sample Code) i reference (Reference) - pri čemu su reference uvjerljivo najkorišteniji dio dokumentacije jer ćemo im se stalno vraćati.
Tek nakon nekog vremena, kad svladamo osnovne koncepte i proučimo Programming Guideove, znat ćemo kako stvari funkcioniraju pa nam najviše pomaže onaj alt+cmd dvoklik koji otvori stranicu dokumentacije konkretne klase - i u njoj (obično) tražimo konkretnu metodu.
Nerijetko programeri pokušaju preskočiti "širu sliku" (koncepti) i žive u uvjerenju da će im reference klasa biti dovoljne. Uz puno sreće, i budu im dovoljne, ali takvi programeri obično štošta rade suboptimalno jer im se nikad nije dalo proučiti koje im mogućnosti uopće nude raspoloživi APIji - i nerijetko u vlastitom kodu otkrivaju toplu vodu pišući kod koji je već odavno napisan, samo "spava" u njima nepoznatom APIju. Dio problema je svakako i u tome što APIja ima 1.500+.