Nastal čas na kakao... - MujMAC.cz - Apple, Mac OS X, Apple iPod

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:

Seriály

Více seriálů



Software

Nastal čas na kakao...

Obsah seriálu:

ts_programovani-nahled2.jpg 09.11.2011

Xcode 4: akční schémata

Minule jsme si vysvětlili, čemu se v Xcode říká "schéma", co je jeho obsahem a jak se to používá. Dnes povídání o schématech dokončíme.

ts_programovani-nahled2.jpg 02.11.2011

Xcode 4: základy schémat

Další z věcí, o nichž jsme se dříve zmínili jen zběžně, a na které je potřeba se – než dokončíme blok, věnovaný vývojovému prostředí Xcode – podívat trochu podrobněji, jsou tzv. schémata.

ts_programovani-nahled2.jpg 26.10.2011

Xcode 4: co je to Workspace?

Než opustíme sérii článků o práci v prostředí Xcode a pustíme se opět do programování, zbývá dokončit několik drobností, o nichž jsme se dříve sice zmínili, ale nezabývali jsme se jimi podrobněji. Dnes se podíváme na "Workspaces".

ts_programovani-nahled2.jpg 19.10.2011

Xcode 4: okno Organizer, část druhá

Dnes dokončíme popis obsahu a služeb okna Organizer v Xcode.

ts_programovani-nahled2.jpg 12.10.2011

Xcode 4: okno Organizer

Ta část našeho seriálu o programování v prostředí Cocoa, v níž se podrobně zabýváme prací ve vývojovém prostředí Xcode, se pomalu chýlí ke konci; zbývá nám uzavřít jen několik samostatných drobností, z nichž jednou je okno Organizer.

ts_programovani-nahled2.jpg 05.10.2011

Xcode 4: levý sloupec

V našem seriálu, který se v součanosti zabývá prací ve vývojovém prostředí Xcode, se dnes podíváme blíže na levý sloupec, jenž poněkud neorganicky sdružuje řadu nepříliš souvisících služeb.

ts_programovani-nahled2.jpg 28.09.2011

Paletky Xcode pro XIBy

Po inspektorech v editoru XIBů se dnes blíže podíváme na jeho palety.

ts_programovani-nahled2.jpg 21.09.2011

Vazby mezi objekty v kódu

V minulém dílu našeho programátorského seriálu jsme si ukázali, jak v Xcode sestavovat vazby mezi objekty; dnes se podíváme podrobněji na odpovídající implementaci v kódu.

ts_programovani-nahled2.jpg 14.09.2011

Vazby mezi objekty v XIBech

Minule jsme si ukázali podrobněji všechny inspektory, jež Xcode v režimu editace XIBů nabízí. Slíbili jsme si také, že dnes se podíváme na práci s vazbami mezi objekty.

ts_programovani-nahled2.jpg 07.09.2011

Inspektory pro XIBy

Inspektory jsou jedním z nejdůležitějších prvků editoru XIBů: právě jejich prostřednictvím nastavujeme nejrůznější atributy objektů, jež síť tvoří – to, co bychom jinak museli dělat programově pomocí odpovídajících služeb API.

ts_programovani-nahled2.jpg 31.08.2011

Editor XIBů

V poslední době se v našem seriálu zabýváme NIBy a XIBy – jak už víme, jde jen o dvě různá jména téže věci. Vysvětlili jsme si velmi podrobně, oč vlastně jde; nyní se začneme zabývat podporou v Xcode pro práci s těmito soubory.

ts_programovani-nahled2.jpg 24.08.2011

Více o XIBech

V předchozím dílu našeho seriálu o programování počítačů s operačními systémy Mac OS X a iOS ve vývojovém prostředí Xcode jsme se začali zabývat "XIBy", sloužícími převážně (ale ne výhradně) k tvorbě grafického uživatelského rozhraní. Dnes si toho o nich řekneme více.

ts_programovani-nahled2.jpg 17.08.2011

XIBy chyby

V dnešním pokračování seriálu o práci ve vývojovém prostředí Xcode se začneme zabývat editací "XIBů" – objektových sítí, sloužících především (ale zdaleka ne výhradně) pro pohodlné sestavení grafického uživatelského rozhraní aplikace.

ts_programovani-nahled2.jpg 10.08.2011

Xcode4: automatické doplňování v editoru

Minule jsme přešli od nastavení projektů a cílů k editoru zdrojových textů: ukázali jsme si asistenta a vysvětlili, jak se s ním v pracuje a v čem se liší od podpory práce s více zdrojovými soubory v jediném okně v Xcode 3. Dnes se podíváme přímo do vlastního editoru.

ts_programovani-nahled2.jpg 03.08.2011

Xcode4: taje editoru

Dnes se v našem seriálu pustíme do novinek, jež přináší editor zdrojového kódu v Xcode 4; začneme poněkud zmatenou podporou práce s více dokumenty najednou.

ts_programovani-nahled2.jpg 27.07.2011

Xcode 4: Co jsou to Build Rules?

Dnes dokončíme přehled nastavení cílů a projektu základními informacemi o "Build Rules".

ts_programovani-nahled2.jpg 20.07.2011

Xcode4: Build Phases podruhé

V současnosti se v našem seriálu o programování v prostředích Cocoa a iOS zabýváme novinkami vývojového prostředí Xcode 4. Minule jsme se seznámili s "Build Phases"; dnes si toho o nich řekneme trochu více.

ts_programovani-nahled2.jpg 13.07.2011

Xcode 4: Build Phases

V nastavení "Build Settings" se již vyznáme; nastavení cíle ale ještě neopustíme a podíváme se dnes blíže na vlastní popis toho, jak se přesně cíl sestavuje – "Build Phases".

ts_programovani-nahled2.jpg 29.06.2011

Xcode 4: Build Settings

Dnes se podíváme trochu blíže na snad nejsložitější část atributů projektu – na "Build Settings".

ts_programovani-nahled2.jpg 22.06.2011

Xcode 4: práce s cíli

V minulém dílu našeho seriálu jsme si podrobně vysvětlili, co je to projekt a cíl; naučili jsme se pracovat s odkazy na soubory, jež projekt obsahuje, i s atributy vlastního projektu. Dnes se soustředíme na cíle.

ts_programovani-nahled2.jpg 15.06.2011

Xcode 4: projekt a cíle

Dnes si v rámci naší túry prostředím Xcode 4 doplníme informace o službách, jež najdeme v horní liště okna, a pak se budeme podrobně věnovat pojmům "projekt" a "cíl", vysvětlíme si jejich smysl a obsah, a začneme si ukazovat kde – a jak – s nimi v novém SDK pracovat.

ts_programovani-nahled2.jpg 08.06.2011

Programování pro iOS - 45. Práce v Xcode 4

Jak jsme si slíbili v minulém dílu, dnes konečně otevřeme v Xcode 4 projekt a pustíme se do práce; soustředíme se samozřejmě především na služby a (ne)možnosti IDE.

ts_programovani-nahled2.jpg 01.06.2011

Programování pro iOS - 44. Předvolby Xcode 4

Xcode 4 má bohatou sadu předvoleb, ačkoli zdaleka ne tak bohatou, jako tomu bylo v "trojce". To je dobře, protože jsou přehlednější; zároveň je to ale špatně, protože mnohdy nelze nastavit požadované chování. Pojďme se na ně dnes podívat podrobně.

ts_programovani-nahled2.jpg 25.05.2011

Programujeme v iTunes Xcode 4

Dnes a v několika následujících článcích se podíváme blíže na nové vývojové prostředí Apple – Xcode 4. Začneme novinkami, jež nabízí aktuální verse překladače Objective C (jde jen o jednu drobnost, ale příjemnou), a pak se již soustředíme na SDK a jeho (ne)možnosti.

ts_programovani-nahled2.jpg 18.05.2011

Programování pro iOS - 42. UISplitViewController

Dříve, než se pustíme do podrobného výkladu služeb, možností, výhod a také nedostatků a nedomyšleností nového vývojového prostředí Xcode 4, dokočíme naši současnou sekci věnovanou řídicím objektům rámců. Moc nám toho zde již nezbývá.

ts_programovani-nahled2.jpg 11.05.2011

Programování pro iOS - 41. Zbývající služby UIPopoverControlleru

V součastnosti se zabýváme službami třídy UIPopoverController, jež slouží na iPadu pro zobrazování "okének", plovoucích nad hlavním grafickým rámcem. Dnes toto téma dokončíme.

ts_programovani-nahled2.jpg 04.05.2011

Programování pro iOS - 40. Další triky UIPopoverControlleru

V předcházejícím dílu jsme se seznámili s třídou UIPopoverController a ukázali jsme si prvý z drobných podrazů, jež na nás její programátoři upletli. Dnes si ukážeme několik dalších.

ts_programovani-nahled2.jpg 27.04.2011

Programování pro iOS - 39. UIPopoverController

V minulém dílu našeho seriálu jsme dokončili popis základních služeb řídicího objektu pro "tab bar" a také jsme si sestavili jednoduchou testovací aplikaci. Dnes kód této aplikace rozšíříme o použití třídy UIPopoverController.

ts_programovani-nahled2.jpg 20.04.2011

Programování pro iOS - 38. Dokončení UITabBarControlleru

Dnešním dílem našeho seriálu o programování v iOSu dokončíme to, co si chceme říci o UITabBarControlleru. Vytvoříme také novou ukázkovou aplikaci, v níž si budeme některé z postupů ilustrovat.

ts_programovani-nahled2.jpg 13.04.2011

Programování pro iOS - 37. Více o UITabBarControlleru

Více o UITabBarControlleru: dnes si ukážeme ukládání pořadí "tabů".

ts_programovani-nahled2.jpg 06.04.2011

Programování pro iOS - 36. Po navigátoru taby

V minulém pokračování našeho seriálu, věnovaného programování aplikací v iOSu, jsme dokončili povídání o třídě UINavigationController; dnes budeme pokračovat další obecnou třídou, UITabBarControllerem.

ts_programovani-nahled2.jpg 30.03.2011

Programování pro iOS - 35. Ještě jednou UINavigationController

Posledních pár dílů našeho seriálu se zabýváme možnostmi a službami třídy UINavigationController, která usnadňuje sestavování aplikací, jež pracují s hierarchicky strukturovanými daty. Dnes si ukážeme několik posledních zajímavostí, s nimiž můžeme při jejím používání často přijít do styku.

ts_programovani-nahled2.jpg 23.03.2011

Programování pro iOS - 33. Více o UINavigationControlleru

Minule jsme si ukázali základy práce se standardním řídicím objektem pro hierarchické zobrazení – tedy s třídou UINavigationController. Dnes se seznámíme s některými jejími dalšími možnostmi.

ts_programovani-nahled2.jpg 16.03.2011

Programování pro iOS - 33. Řídicí objekt pro strom

V představování specifických řídicích objektů rámců se dnes podíváme na další – na třídu UINavigationController.

ts_programovani-nahled2.jpg 09.03.2011

Programování pro iOS - 32. Řídicí objekt pro tabulky

V současnosti se náš seriál soustředí na řídicí objekty rámců. V minulých dílech jsme se seznámili s obecnými službami, jež nám nabízí sama třída UIViewController (a tedy také všechny její podtřídy); dnes se začneme věnovat některým speciálním řídicím objektům, jež iOS nabízí.

ts_programovani-nahled2.jpg 02.03.2011

Programování pro iOS - 31. Správa paměti v rámcích

Zařízení s operačním systémem iOS mají obvykle nouzi o operační paměť. Třída UIViewController – a díky dědičnosti také všechny její podtřídy – tento požadavek pomáhá plnit zajímavým a docela efektivním způsobem, který si dnes vysvětlíme podrobněji.

ts_programovani-nahled2.jpg 23.02.2011

Programování pro iOS - 30. Rotace zařízení

Dnes se soustředíme na služby podporující změny zobrazení při rotaci: jak každý uživatel ví, u zařízení s operačním systémem iOS je poměrně běžné, že bez ohledu na to, jak zařízení natočíme, zůstává grafické uživatelské rozhraní "hlavou nahoru".

ts_programovani-nahled2.jpg 16.02.2011

Programování pro iOS - 29. Práce s rámci

Od minula konečně umíme řídicí objekty rámců používat – tedy zobrazovat rámce spravované některým z nich. Dnes si ukážeme služby, které při zobrazování (a skrývání) rámců můžeme v řídicím objektu využít.

ts_programovani-nahled2.jpg 09.02.2011

Programování pro iOS - 28. Základní služby

Už umíme vytvářet řídicí objekty rámců a jimi spravované rámce. Dnes se podíváme na základní služby, jež nám tyto objekty nabízejí. Začneme vzájmeným překrýváním obrazovek.

ts_programovani-nahled2.jpg 02.02.2011

Programování pro iOS - 27. Kde vzít rámce

Kde a jak se vezmou rámce, jež spravuje řídicí objekt (instance třídy UIViewController nebo některé z jejích podtříd)? O tom podrobně pojednává dnešní díl.

ts_programovani-nahled2.jpg 26.01.2011

Programování pro iOS - 26. Jak se dělá UIViewController

Jaké je postavení řídicích objektů rámců, k čemu slouží a proč se bez nich jen těžko můžeme obejít už víme. Dnes se pustíme do jejich konkrétního programátorského rozhraní. A začneme samozřejmě tím základním – jejich výrobou.

ts_programovani-nahled2.jpg 19.01.2011

Programování pro iOS - 25. Řídicí objekty rámců

Jak jsme si slíbili ještě před vsunutím několika dílů, popisujících taje a zákoutí "multitaskingu", budeme se v našem seriálu teď nějakou chvilku věnovat řídicím objektům rámců (tedy práci s třídou UIViewController a jejími dědici).

ts_programovani-nahled2.jpg 12.01.2011

Programování pro iOS - 24. Zbývající drobnosti

Možnosti a omezení tzv. multitaskingu v iOS 4 zbývá doplnit o ukázku deklarace aplikace jako "více multitaskové, než ostatní". Připomeneme také několik potenciálních podrazů, na něž při využívání těchto služeb můžeme narazit.

ts_programovani-nahled2.jpg 05.01.2011

Programování pro iOS - 23. Jak se aktivovat, jsme-li v pozadí

Známe už základy hry, kterou s námi iOS hraje a víme, jak si vyžádat trochu více času ve chvíli, kdy je aplikace odsunuta z obrazovky. Co ale v případě, kdy bychom ji potřebovali aktivovat o něco později?

ts_programovani-nahled2.jpg 29.12.2010

Programování pro iOS - 22. Nulla est honesta avaritia nisi temporis

Senecův známý citát si patrně programátoři Apple vzali až příliš k srdci; časem (procesoru) totiž iOS skrblí přímo ukrutně a přidělit jej aplikaci, jež zrovna není v popředí, se zdráhá. Dnes si – jak jsme si slíbili minule – ukážeme, jak si vyžádat času alespoň malinko více, než kolik jej běžně máme k dispozici.

ts_programovani-nahled2.jpg 22.12.2010

Programování pro iOS - 21. "Multitasking"

Dříve, než se pustíme do slíbeného detailního rozboru práce s řídicími objekty rámců (UIViewController), podíváme se ještě trochu blíže na "multitasking". Ukážeme si konkrétní API, jež máme pro jeho řízení k dispozici, a také si řekneme, na co a jak si dát pozor.

ts_programovani-nahled2.jpg 15.12.2010

Programování pro iOS - 20. Co nového v iOSu

Už dávno jsme se v redakci domluvili, že jakmile bude iOS 4 veřejně k dispozici pro celou řadu zařízení Apple, podíváme se na jeho novinky z pohledu programátora.

ts_programovani-nahled2.jpg 08.12.2010

Programování pro iOS - 19. Další standardní recognizery

Minule jsme se seznámili s trojicí standardních tříd UITapGestureRecognizer, UILongPressGestureRecognizer a UIPanGestureRecognizer umožňující implementovat rozpoznávání běžných gest. Dnes jsou na řadě zbývající standardní recognizery.

ts_programovani-nahled2.jpg 01.12.2010

Programování pro iOS - 18. Recognizery v iOS

Další díl našeho seriálu o programování zařízení s iOS se zabývá konkrétními recognizery, které v systému naleznete. Zde jsou prvé z nich.

ts_programovani-nahled2.jpg 24.11.2010

Programování pro iOS - 17. Podpora standardních gest

Problémy s detekcí gest si naštěstí uvědomil samotný Apple. Od verze iOS 3.2 zahrnul do systému novou třídu UIGestureRecognizer: umožňující pohodlnou implementaci detekce gest nezávisle na rámci. Systém navíc standardně nabízí hotové rekognizery pro všechna standardní gesta.

ts_programovani-nahled2.jpg 16.11.2010

Programování pro iOS - 16. Více prstů, více zábavy

Sérii článků o interpretaci běžných gest s využitím standardního API prostředí iOS, založeného na zprávách touches...withEvent:, dnes ukončíme tím nejsložitějším. Ukážeme si základy práce s víceprstými gesty.

ts_programovani-nahled2.jpg 10.11.2010

Programování pro iOS - 15. Další gesta

Minule jsme se začali zabývat tím, jak pomocí standardních metod touches... withEvent: pro správu událostí dotekového ovládání implementovat jednoduchý a vícenásobný dotek. Dnes se podíváme na tažení a s tisknutí.

ts_programovani-nahled2.jpg 03.11.2010

Programování pro iOS - 14. Udělejme gesto

Jak přidat do kreslícího prográmku z minula podporu gest? Toť obsahem čtrnácté lekce našeho kurzu programování.

ts_programovani-nahled2.jpg 27.10.2010

Programování pro iOS - 13. Kreslíme na iPhone

Chcete-li napsat aplikaci umožňující kreslení jednoduchých obrázků na displeji iPhonu, je třináctý díl našeho seriálu stvořený právě pro vás.

ts_programovani-nahled2.jpg 20.10.2010

Programování pro iOS - 12. Touching!

Systém iOS podporuje různé eventy. V praxi je ale nejpodstatnější správa dotykové obrazovky, na kterou se podíváme dnes a v několika dalších pokračováních.

ts_programovani-nahled2.jpg 13.10.2010

Programování pro iOS - 11. Jak dostat aplikaci do libovolného iPhone

Už minule jsme viděli, že distribuce aplikace na zařízení betatesterů není nic jednoduchého. To ale není pořád nic proti tomu, čím se budeme muset prokousat dnes, kdy si budeme povídat o instalaci aplikací na AppStore.

ts_programovani-nahled2.jpg 06.10.2010

Programování pro iOS - 10. Instalace aplikace do cizího iPhone

Pokud je vyvíjená aplikace jen trochu složitější, vyplatí se ji nechat otestovat skupinou betatesterů. Jak ji nahrát na jejich iPhony a jak umožnit používání aplikace klientovi, který chtěl privátní aplikaci na míru, se dozvíte v dnešním pokračování seriálu.

ts_programovani-nahled2.jpg 29.09.2010

Programování pro iOS - 9. Jak dostat aplikaci do iPhone

Prvá verze bouřkoměru je hotová. Před odesláním aplikace do AppStore je ale samozřejmě zapotřebí ji vyzkoušet na skutečném hardwaru. V našem případě v iPhone.

ts_programovani-nahled2.jpg 22.09.2010

Programování pro iOS - 8. Dokončení aplikace

Aplikace pro měření vzdálenosti bouřky nám hezky vyrostla pod rukama. Zbývá dokončit pár posledních detailů a verzi 1.0 prohlásit za hotovou.

ts_programovani-nahled2.jpg 15.09.2010

Programování pro iOS - 7. Správa paměti a starý restík

Základní funkcionalitu naší bouřkové aplikace máme hotovou. Ještě však pořád zbývá doplnit několik věcí. Minule jsme se naučili ukládat a načítat data. Dnes si ukážeme další standardní paměťovou techniku iOSu. A doplníme také jeden malý restík.

ts_programovani-nahled2.jpg 08.09.2010

Programování pro iOS - 6. Ukládání dat

Je čas začít doplňovat další služby, které funkci aplikace dále zdokonalí. Začneme ukládáním dat.

ts_programovani-nahled2.jpg 01.09.2010

Programování pro iOS - 5. Rámce a jejich řídicí objekty

Vylepšujíce postupně naši aplikaci pro zjištění vzdálenosti bouře, dostáváme se ke zobrazení záznamů z historie. Využijeme k tomu překryvného rámce; zčásti proto, že je to celkem rozumné, a hlavně proto, abychom se s těmito rámci naučili pracovat.

ts_programovani-nahled2.jpg 26.08.2010

Programování pro iOS - 4. Varovná hlášení

Začneme aplikaci trochu vylepšovat. Přitom si ukážeme řadu standardních technik, jež se používají při programování aplikací v iOS. Dnes to bude práce s varovnými hlášeními - alerty.

ts_programovani-nahled2.jpg 18.08.2010

Programování pro iOS - 3. základní ovladače a propojení GUI s kódem

Projekt pro sestavení jednoduché aplikace na iPhone máme hotový a od minule víme, k čemu slouží jednotlivé části projektu a jaké jsou jejich vzájemné vztahy. Na řadě je Interface Builder a úprava aplikace k našemu obrazu.

ts_programovani-nahled2.jpg 12.08.2010

Programování pro iOS - 2. Začínáme programovat

Rozdíly mezi Mac OS X a jeho omezenou, uzavřenou verzí iOS máme za sebou. Dnes se pustíme do samotného programování pro iOS.

ts_programovani-nahled2.gif 04.08.2010

Programování pro iOS 1. díl - Rozdíly mezi "i" a "Mac"

Začneme od základů. Seznámíme se s nejpodstatnějšími rozdíly mezi vývojovým prostředím Mac OS X a iOS. Příště se pustíme do sestavování jednoduché aplikace ilustrující jednotlivé postupy.

ts_programovani-nahled2.gif 15.07.2010

Systémové prvky GUI

Dnes se již ponoříme do "opravdických" novinek samotné objektové knihovny AppKit, a začneme novou možností specifikovat požadované nastavení systémových prvků GUI.

ts_programovani-nahled2.gif 08.07.2010

A máme tady i...OS!

Se správou MujMacu jsme se domluvili, že v našem seriálu "Nastal čas" už nejen na Kakao, ale také na iPhone OS. Nebudeme se zabývat nejzákladnějšími základy sestavování aplikací; budeme se ale věnovat zajímavým oblastem API.

ts_programovani-nahled2.gif 06.05.2010

Zabíjení!

Ne, nezměnili jsme žánr – nová služba Irbise (pro ty, kdo nemají rádi přeložená jména, systému Snow Leopard), na kterou se dnes podíváme, se v běžném jazyce označuje „fast killing“ (v politicky korektním newspeaku oficiálního API ovšem „sudden termination“).

ts_programovani-nahled2.gif 01.04.2010

Další podpora NSURL

Dnes si ukážeme několik z nejpodstatnějších doplňků a rozšíření ostatních tříd, jež nyní práci s odkazy na soubory prostřednictvím instancí třídy NSURL nabízejí.

ts_programovani-nahled2.gif 25.02.2010

Soubor, jméno, URL, jak se to rýmuje...

V Mac OS X 10.6 se programátoři Apple rozhodli zavést nový, plně konsistentní systém odkazů na objekty na disku. Ačkoli by v zásadě bylo možné na to navrhnout novou třídu nebo služby připojit k třídě NSString, obě řešení by nesla poměrně podstatné nevýhody; proto byly nové služby "naroubovány" na třídu NSURL.

ts_programovani-nahled2.gif 02.02.2010

Kde jsou má data? V NSCache!

Na dnešek jsme si pak nechali nový kontejner, určený právě pro ukládání dočasných objektů, jež podporují protokol NSDiscardableContent – třídu NSCache.

ts_programovani-nahled2.gif 19.01.2010

Kde jsou má data?

Používání cache – dočasné paměti – je samozřejmě prastarý programátorský trik. Programujeme tak všichni už léta a léta; Irbis to ale usnadňuje pomocí nových tříd a služeb; na ty se podíváme právě dnes.

ts_programovani-nahled2.gif 08.12.2009

Irbis a Foundation Kit

Nyní postoupíme o kousek dál a ukážeme si, co je nového v knihovně základních tříd, ve Foundation Kitu.

ts_programovani-nahled2.gif 13.10.2009

Bloky jsou i v AppKitu

Předminule jsme si vysvětlili, co to bloky jsou a jak se používají; minule jsme si ukázali nejdůležitější z nových „blokových“ služeb, s nimiž se setkáme ve Foundation Kitu, a dnes sérii zakončíme tím, že si ukážeme nové „blokové“ služby v aplikačních knihovnách.

ts_programovani-nahled2.gif 06.10.2009

Blok sem, blok tam, nám už je to všechno jasné...

Dnes se podíváme blíže na řadu dalších služeb, jež bloky v Mac OS X 10.6 usnadnily.

ts_programovani-nahled2.gif 29.09.2009

Irbis: že prý žádné novinky?

Více než po roce se opět vracíme se seriálem o programování v Kakau – je zde nová kočka s novými možnostmi, a na ty se v následující sérii článků podíváme blíže.

ts_programovani-nahled2.gif 08.07.2008

Ubicumque dulce est, ibi et acidum invenies...

Objective C 2.0 je krásná věc a přináší – zvláště pro ty, kdo si mohou dovolit se omezit na čtyřiašedesátibitové prostředí – řadu nezanedbatelných výhod, z nichž asi nejvýraznější je naprosté odstranění problémů s "fragile class". Jenže bohužel, přináší také nové problémy....

ts_programovani-nahled2.gif 20.05.2008

64 je dvakrát 32

Jednou z nejvýznamnějších novinek Leoparda pro nás, programátory v prostředí Cocoa, je to, že nyní máme plně k dispozici všechny možnosti a výhody čtyřiašedesátibitového prostředí.

ts_programovani-nahled2.gif 09.04.2008

Druhé Objective C: atributy a accesory

V posledním dílu našeho seriálu, věnovaném rozšíření jazyka Objective C 2.0 – následující díly, zabývající se čtyřiašedesátibitovým prostředím a službami Foundation Kitu, budou samozřejmě s jazykem úzce souviset, ale přece jen jde již o něco jiného – ukážeme si pohodlnou tečkovou notaci pro přístup k atributům objektu prostřednictvím accesorů.

ts_programovani-nahled2.gif 03.03.2008

Druhé Objective C: atributy a accesory

V tomto dílu našeho seriálu, věnovaném rozšíření jazyka Objective C 2.0, si ukážeme nové služby pro deklaraci atributů objektů a generování accesorů.

ts_programovani-nahled2.gif 14.02.2008

Druhé Objective C: nový příkaz cyklu

Příjemnou novinkou Objective C 2.0 je také speciální příkaz cyklu, umožňující přímo procházet objekty uložené v libovolném typu kontejneru.

ts_programovani-nahled2.gif 10.01.2008

Druhé Objective C: kategorie a protokoly

Doplňky a rozšíření jazyka Objective C ve verzi 2.0 se nevyhnuly ani kategoriím a (formálním) protokolům. Zatímco nová služba kategorií – možnost specifikovat tzv. rozšíření třídy ("extension") – je poměrně kosmetická a přináší v podstatě jen o trochu lepší překladovou kontrolu, novinka protokolů je zcela zásadní: teprve zavedením nepovinných metod se protokoly staly v praxi skutečně použitelnými.

ts_programovani-nahled2.gif 14.12.2007

Druhé Objective C: různé drobnosti

Dnes si popíšeme řadu drobností, z nichž žádná si nezaslouží samostatný článek: ne, že by byly nepodstatné (kupříkladu definitivní odstranění syndromu "fragile class" je snad vůbec nejvýznamnějším přínosem Objective C 2.0), ale proto, že jejich přímý dopad na jazyk jako takový je poměrně malý.

ts_programovani-nahled2.gif 29.11.2007

Druhé Objective C

Jak jsme si slíbili v minulém článku, v popisu novinek Leoparda začneme tím, co je nového v jazyce Objective C. Po velice dlouhé době, kdy – vyjma doplnění výjimek a synchronizace – nebylo nového nic, se toho tentokrát "urodilo" poměrně dost.

ts_programovani-nahled2.gif 08.11.2007

Kakao v Leopardu

Po pauze se opět vracíme s dalšími díly seriálu, který se věnuje programování v prostředí Cocoa operačního systému Mac OS X: Leopard je mezi námi, takže je na čase se podívat na to, co nového přinesl programátorům.

ts_programovani-nahled2.gif 12.06.2007

Služby WebKitu

V předcházejícím dílu našeho seriálu o programování ve vývojovém prostředí Cocoa jsme se prvně seznámili se třídou WebView, jež je součástí frameworku WebKit. Minule jsme se vlastnímu WebKitu moc nevěnovali: sestavili jsme jednoduchý webový browser s využitím těch nejstandardnějších služeb. Dnes si však o frameworku a jeho možnostech řekneme trochu více.

ts_programovani-nahled2.gif 28.05.2007

Safari za minutu

Minule a předminule jsme si ukázali programové načítání obsahu daného URL; dnes se začneme zabývat možnostmi samostatné knihovny služeb, frameworku WebKit.

ts_programovani-nahled2.gif 11.04.2007

NSURLConnection

V jen trošku náročnějších aplikacích však není pro toto třída NSURL nejvhodnější, neboť nenabízí dostatečně flexibilní služby; daleko lepší je pro přístup k datům na internetu využít služeb třídy NSURLConnection – a na tu se právě podíváme dnes.

ts_programovani-nahled2.gif 04.04.2007

Jak na sítě...

V několika dalších dílech se podíváme na to, jak se v prostředí Cocoa pracuje se sítí a se zdroji na Internetu.

ts_programovani-nahled2.gif 06.03.2007

Kterak táhnout něco, co neexistuje?

V poslední z kapitol věnovaných implementaci služby "drag&drop" ve vývojovém prostředí Cocoa si ukážeme speciální podporu pro možnost tažení neexistujícího souboru.

ts_programovani-nahled2.gif 16.01.2007

Speciální případy tahání či házení

Dnes se seznámíme s některými speciálními případy, v nichž by bylo z různých důvodů buď nemožné, nebo přinejmenším nepraktické používat nízkoúrovňovou podporu, s níž jsme pracovali dosud.

ts_programovani-nahled2.gif 20.12.2006

Drobnosti a chybičky

V minulém dílu našeho seriálu o programování ve vývojovém prostředí Cocoa jsme víceméně dokončili podporu drag&drop v naší aplikaci, na níž se učíme implementovat naše vlastní objekty view. Řekli jsme si ale, že v současné podobě aplikace obsahuje několik chyb a nedodělků, a slíbili jsme si, že se na ně dnes podíváme blíž.

ts_programovani-nahled2.gif 14.12.2006

Zvolme si, jak vhodit

Předminule jsme se naučili základy toho, jak implementovat view jež může sloužit jako zdroj tažení; minule jsme si ukázali elementární implementaci view, jež dokáže fungovat při tažení jako cíl pro vhazování. Dnes se podíváme na nejběžnější z možných vylepšení: ukážeme si, jak modifikovat akci, již tažení provede, pomocí klávesových přepínačů.

ts_programovani-nahled2.gif 08.12.2006

Byli jsme na tahu; nyní padneme.

Minule jsme si ukázali základní implementaci view, jež dokáže fungovat jako zdroj tažení. Dnes se naopak podíváme na to, kterak zpracovat tažení objektů, jež inicioval někdo jiný: umožníme našemu view, aby bylo cílem vhození.

ts_programovani-nahled2.gif 06.12.2006

Táhni a padni

Na žádost v diskusi pod minulým článkem v našem seriálu o programování ve vývojovém prostředí Cocoa se dnes a v několika následujících dílech podíváme na to, jak vypadá standardní podpora technologie drag & drop.

ts_programovani-nahled2.gif 30.11.2006

Další události

Náš "kurs programování objektů view", jímž se právě zabýváme v našem programátorském seriálu, se zvolna chýlí k závěru. Pro dnešek však u views ještě zůstaneme, a nejprve si ukážeme zpracování některých poněkud netypických událostí.

ts_programovani-nahled2.gif 27.11.2006

Příkazy a schránka

Minule jsme se naučili využít vyšší vrstvy input managementu pro pohodlné zpracování událostí a rozlišení běžných kláves a příkazů typu moveLeft: či deleteBackward:. Řekli jsme si ale také, že "ryze příkazové" kombinace kláves s přepínačem Command se zpracovávají jinou cestou – a dnes si právě ukážeme, jak na ně.

ts_programovani-nahled2.gif 20.11.2006

Input Management

V minulém dílu našeho seriálu, věnovaného programování ve vývojovém prostředí Cocoa, jsme si ukázali, kterak užívat základních služeb třídy NSView (přesněji řečeno, její nadtřídy NSResponder; vzhledem k tomu však, že nyní se učíme sestavovat vlastní views, není zapotřebí to rozlišovat) pro zpracování událostí, přišedších od klávesnice.

ts_programovani-nahled2.gif 17.11.2006

Události klávesnice

V současné době se v našem seriálu o programování ve vývojovém prostředí Cocoa učíme sestavovat vlastní views. Dnes se podíváme na to, jak zpracovávat události vytvářené druhým nejdůležitějším vstupním zařízením, klávesnicí.

ts_programovani-nahled2.gif 13.11.2006

Lepší práce s myší

Minule jsme se začali zabývat schopností views – podtříd třídy NSView – reagovat na nejrůznější události, generované pomocí vstupních zařízení. Sestavili jsme si také velmi jednoduchou kreslicí aplikaci, jež právě tohoto mechanismu využívá; dnes ji trochu vylepšíme a ukážeme si, kterak v Cocoa zpracovat některé další události, spojené s myší.

ts_programovani-nahled2.gif 08.11.2006

Události a myš

V předcházejících pokračováních jsme se naučili implementovat metodu drawRect:, jejímž prostřednictvím definujeme to, jak view vypadá. Nyní se zaměříme na druhou stránku views – na jejich schopnost reagovat na nejrůznější události, generované prostřednictvím vstupních zařízení. Začneme tím nejjednodušším, myší.

ts_programovani-nahled2.gif 02.11.2006

Obrázky a písmenka...

Minule jsme si ukázali, jak používat služby třídy NSBezierPath pro kreslení obecných obrázků: pro většinu běžných případů tyto příkazy bohatě stačí. Nestačí ovšem tehdy, když chceme v rámci vlastního "view" kreslit text, nebo hotové obrázky: a právě to se naučíme v dnešním dílu našeho seriálu.

ts_programovani-nahled2.gif 30.10.2006

Další služby pro kreslení

Seznámili jsme se již s těmi naprostými nejzákladnějšími základy – s nastavováním barev a se službou NSRectFill, jež aktivní barvou vyplní zadaný obdélník. To by nám ovšem pro velké kreslení nestačilo; dnes si proto řekneme malinko více.

ts_programovani-nahled2.gif 24.10.2006

Kterak nakreslit modrý obdélník...

V minulém dílu našeho volného seriálu o programování ve vývojovém prostředí Cocoa jsme se pustili do implementace vlastních podtříd NSView; popsali jsme si základní strukturu a principy, a slíbili jsme si, že se dnes trochu blíže podíváme na hlavní a primární vlastnost "views" – totiž vykreslení jejich obsahu.

ts_programovani-nahled2.gif 09.10.2006

Programování v Cocoa - Základy kreslení

Všechno ještě zdaleka nevíme: co v případě, kdy nevystačíme se standardní sadou grafických objektů, a potřebovali bychom implementovat vlastní – nějakou "tabulku jež se nechová tak úplně jako tabulka" a podobně? V takovém případě je zapotřebí implementovat a vhodně využít vlastní podtřídu NSView – a to je právě to, co se naučíme teď.

ts_programovani-nahled2.gif 19.09.2006

Programování v Cocoa - Pár tipů a triků

Na rozloučenou s kontroléry si ukážeme několik šikovných triků a fint, jež umožňují obejít některé problémy a nedomyšlenosti v designu či implementaci kontrolérů.

ts_programovani-nahled2.gif 15.09.2006

NSTreeController

Dnes se ještě na chvilku vrátíme k našemu poslednímu tématu, k controllerům: až dosud jsme probrali většinu základních služeb, ukázali jsme se vše možné – vyjma nejsložitějšího kontroléru, třídy NSTreeController. Jak už samotné jméno napovídá, tento kontrolér slouží pro representaci hierarchických modelů: hodil by se třeba pro systém složek a souborů, nebo zcela obecně pro jakýkoli model, jehož datové objekty se skládají do stromové struktury.

ts_programovani-nahled2.gif 04.09.2006

Objective C 2.0 - novinky z Leoparda

Vzhledem k tomu, že se začínají objevovat informace o novinkách, jež najdou programátoři příští rok v operačním systému Mac OS X 10.5 Leopard, je možná vhodná chvíle podívat se na ně trochu blíže i zde. V dnešním článku se podíváme na jednu z "nejžhavějších" novinek – rozšíření a doplňky programovacího jazyka Objective C.

ts_programovani-nahled2.gif 30.08.2006

Mírná vylepšení v mezích zákona

Dnes se ještě k projektu vrátíme s trochou různých vylepšení, na nichž si ukážeme další možnosti, jež nám systém vazeb Cocoa nabízí.

ts_programovani-nahled2.gif 01.08.2006

Převodníky, přepínače, placeholdery

Slíbili jsme si, že si konečně vysvětlíme všechny ty podivné atributy a přepínače vazeb, jež máme k dispozici v inspektoru vazeb pod ovladači "Bind to" / "Controller Key" / "Model Key Path": o některých z nich jsme si sice už něco málo řekli (už například rozumíme přepínači "Continuously updates value"), ale většina z nich zůstává poněkud záhadou.

ts_programovani-nahled2.gif 18.07.2006

Základní vazby NSArrayControlleru

Dnes připravíme několik nových vazeb, jež jsou možné jen s NSArrayControllerem, a ukážeme si konečně, jak tedy takový kontrolér doopravdy funguje a co umí.

ts_programovani-nahled2.gif 07.07.2006

Práce s polem objektů

Daleko více zábavy si můžeme užít s kontrolérem polí, jenž je representován objektem třídy NSArrayController; dnes a v několika dalších dílech se mu proto podíváme důkladně na zoubek.

ts_programovani-nahled2.gif 22.06.2006

Validace a chyby, a jedna hezká vazba...

V předcházejícím dílu našeho seriálku o programování v Cocoa jsme si ukázali základy validování atributů modelu při jejich vazbě na editory v grafickém uživatelském rozhraní. Slíbili jsme si ale pro dnešek, že se ještě naučíme při validaci rozpoznat (a ohlásit) chybu, již nelze napravit automaticky.

ts_programovani-nahled2.gif 14.06.2006

Validace hodnot

Dnes si ukážeme další velmi důležitou techniku, jež sice v zásadě patří do KVC, ale prakticky použitelná a významná se stává právě až ve chvíli, kdy modelové objekty podporující KVC začneme používat prostřednictvím vazeb spolu se standardními objekty grafického uživatelského rozhraní Cocoa – proto jsme se o ní ostatně nezmínili dříve. Jedná se o systém automatických validací hodnot atributů.

ts_programovani-nahled2.gif 07.06.2006

Implementace a použití převodu hodnot

Systém vazeb Cocoa nabízí elegantní řešení s automatickým převodem hodnot prostřednictvím tzv. "Value Transformeru", jejž můžeme pro každou konkrétní vazbu určit v Interface Builderu. My už jsme se s touto možností setkali; tehdy však jsme použili jeden ze standardních systémových převodníků, kdežto dnes se naučíme si psát převodníky vlastní.

ts_programovani-nahled2.gif 01.06.2006

Další vazby s jednoduchým kontrolérem

Dnes si trochu "spravíme chuť" od minula – v minulém dílu jsme hodně povídali s takřka žádným výsledkem; dnes naopak využijeme systém vazeb k tomu, že bez dlouhých řečí grafické uživatelské rozhraní aplikace dost zásadně obohatíme.

ts_programovani-nahled2.gif 18.05.2006

Vázání vazeb

Minule jsme si vysvětlili, k čemu a proč jsou v systému Cocoa kontroléry; dnes si ukážeme, jak se s nimi pracuje.

ts_programovani-nahled2.gif 20.04.2006

Kontroléry a vazby

V několika předcházejících dílech našeho seriálu jsme si ukázali, jak fungují základy mechanismu vazeb – bindings –, jejž vývojové prostředí Cocoa využívá pro dynamické sestavování řídící vrstvy aplikací, totiž KVC a KVO. Nyní je načase, abychom se pustili do praktického programování – ukážeme si tedy pár projektů, jenž budou vazby využívat.

ts_programovani-nahled2.gif 04.04.2006

Sledování změn objektů: přímý přístup

Co dělat v případě, kdy z jakýchkoli důvodů potřebujeme přímo měnit obsah některé z proměnných, tedy kdy nechceme nebo nemůžeme použít set-accessor? Ve složitějších případech, nebo tehdy, když potřebujeme dosáhnout co největší efektivity, můžeme také automatické posílání notifikací KVO zcela vypnout.

ts_programovani-nahled2.gif 04.04.2006

Sledování změn objektů: kód modelu

Dnes se soustředíme na to, co budeme jako aplikační programátoři rozhodně dělat nejčastěji (nebudeme-li užívat knihoven Core Data) – totiž psaní modelů: Co musíme udělat, aby objekt KVO podporoval?

ts_programovani-nahled2.gif 02.03.2006

Sledování změn objektů – zdrojový kód

Dnes přesně týž mechanismus, který jsme minule "namyšovali", naprogramujeme "ručně", abychom přesně viděli, jak jednotlivé zprávy v systému KVC/KVO fungují.

ts_programovani-nahled2.gif 21.02.2006

Sledování změn objektů – ukázka

Než si řekneme více o tom, jak lze ovládat a řídit systém KVO, s jehož základy jsme se seznámili minule, pojďme se podívat na to, jak funguje, na konkrétním příkladu.

ts_programovani-nahled2.gif 16.02.2006

Sledování změn objektů

Druhý mechanismus, na nějž se musíme podívat, je sledování změn objektů, Key/Value Observing, KVO. Jeho úkolem je právě rozesílat podle potřeby všem prvkům GUI (či jiným objektům), jež jsou navázány na týž atribut modelu, upozornění, že došlo ke změně tohoto atributu – takže objekty mohou na změnu ihned reagovat zobrazením nové hodnoty.

ts_programovani-nahled2.gif 07.02.2006

Pojmenované vlastnosti objektů: řazení jmen a agregační funkce

Dnes si "na rozloučenou" s pojmenovanými vlastnostmi ukážeme několik rozšiřujících a velmi praktických služeb, které systém KVC v prostředí Cocoa nabízí: půjde o řazení jmen (key paths) a o speciální agregační služby.

ts_programovani-nahled2.gif 26.01.2006

Pojmenované vlastnosti objektů: relace 1:N

Relace 1:N má vlastní, mírně odlišné API: je representována polem (pro relaci s daným pořadím) či množinou (pro nesetříděnou relaci) objektů. Relací 1:N by např. mohl být seznam knih daného autora – pak by [autor valueForKey:@"knihy"] vrátilo objekt třídy NSArray, jehož prvky by byly všechny knihy daného autora.

ts_programovani-nahled2.gif 29.12.2005

Pojmenované vlastnosti objektů: implementace

V minulém dílu našeho seriálu jsme si na poněkud umělém příkladu s datovým zdrojem pro tabulku ukázali základní principy přístupu k pojmenovaným vlastnostem objektu. Dnes si řekneme něco více o tom, jak správně implementovat objekty pro datový model, aby s přístupem k pojmenovaným vlastnostem optimálně spolupracovaly.

ts_programovani-nahled2.gif 20.12.2005

Pojmenované vlastnosti objektů

Nejprve se musíme blíže seznámit s několika zajímavými technologiemi, na nichž jsou vyšší aplikační služby Cocoa založeny. Některé z nich již známe z předcházejících dílů, věnovaných možnostem jazyka Objective-C a službám základní knihovny Foundation Kit; dalším se budeme věnovat nyní. Prvou z nich bude práce s pojmenovanými vlastnostmi objektů – key/value coding, zkráceně KVC.

ts_programovani-nahled2.gif 15.12.2005

Přehled tříd AppKitu 7: dokončení

Zbývá ještě několik tříd, o nichž se ve stručnosti zmíníme dnes: v podstatě jde o třídy pomocné nebo jen zřídkakdy užívané.

ts_programovani-nahled2.gif 29.11.2005

Přehled tříd AppKitu 6: dokumentový systém

V přehledném popisu tříd objektového frameworku AppKit se již blížíme ke konci – v podstatě se dá říci, že právě v dnešním dílu probereme poslední z opravdu důležitých a významných skupin tříd; pak již zbudou jen drobnosti a pomocné služební třídy, s nimiž se v praxi pracuje poměrně zřídkakdy.

ts_programovani-nahled2.gif 07.11.2005

Nastal čas na kakao - Přehled tříd AppKitu 5: hlavně grafika

Hlavním tématem dnešního článku ovšem je grafika. Samozřejmě, do jisté míry s grafikou souviselo již to, co jsme si na začátku řekli o struktuře "views" a o spolupráci tříd NSCell (a jejích podtříd) a NSView (a jejích podtříd); dnes se však podíváme trochu blíž na služby, jež "do views" skutečně kreslí.

ts_programovani-nahled2.gif 27.10.2005

Přehled tříd AppKitu 4: textový systém

Vzhledem k tomu, že minule jsme dokončili pomocné třídy grafického uživatelského rozhraní až po NSToolbarItem včetně, nyní je čas podívat se na služby textového subsystému.

ts_programovani-nahled2.gif 12.10.2005

Přehled tříd AppKitu 3: zbývající třídy GUI

Dnes dokončíme zběžný popis několika zbývajících tříd z bloku "User Interface".

ts_programovani-nahled2.gif 06.10.2005

Nastal čas na kakao - Přehled tříd AppKitu 2

V minulém dílu našeho seriálu o vývojovém prostředí Cocoa jsme se začali v přehledu seznamovat se všemi třídami – nebo aspoň s většinou nejdůležitějších tříd – objektové knihovny AppKit. Dnes budeme pokračovat.

ts_programovani-nahled2.gif 20.09.2005

Přehled tříd AppKitu

Po chvíli úvodních "tanečků" kolem paradigmatu MVC a ukázky programování s využitím systémů vysoké úrovně, jež Cocoa pro MVC nabízí – Core Data pro model, Interface Builder pro view a bindings pro kontrolér – se dnes konečně pustíme do vlastních tříd knihovny AppKit.

ts_programovani-nahled2.gif 09.09.2005

Jak MVC v Kakau vypadá doopravdy: dokončení

V předcházejícím dílu našeho seriálu jsme začali s jednoduchou ukázkovou aplikací, na níž zhruba vidíme, jak se s MVC – modely, view objekty a kontroléry – ve skutečnosti v Cocoa pracuje. Dnes aplikaci dokončíme: na řadě teď je tedy samozřejmě view a kontrolér.

ts_programovani-nahled2.gif 30.08.2005

Jak MVC v Kakau vypadá doopravdy?

V minulém dílu našeho seriálu o programování v Cocoa jsme si ukázali koncepci MVC – Model, View, Controller – jíž správně navržené objektové aplikace odpovídají, a jíž jsou také "na míru" šity služby standardních tříd AppKitu. Než se ale pustíme do popisu těchto konkrétních tříd, vyplatí se ukázat si ještě jeden příklad velmi jednoduché aplikace.

ts_programovani-nahled2.gif 15.08.2005

Začínáme s AppKitem

Dnešním dílem našeho seriálu, věnovaného vývojovému prostředí Cocoa, se začneme zabývat programováním plnohodnotných aplikací s využitím objektové knihovny AppKit.

ts_programovani-nahled2.gif 02.08.2005

Co nového v Xcode

Po rychlém odskoku k velmi aktuálnímu Intelu se ještě podíváme na další – mírně – aktuální záležitost: ukážeme si několik zajímavějších novinek vývojového prostředí Xcode 2.

ts_programovani-nahled2.gif 16.06.2005

Nastal čas na kakao – s Intelem, s Intelem, jedeme do...

... budoucnosti. A co to znamená pro programátory v Cocoa? Inu, vlastně nic, až na několik skutečných výjimek, na něž se podíváme blíže.

ts_programovani-nahled2.gif 03.06.2005

Nastal čas na kakao - Co nového ve Foundation Kitu

Dříve, než pokročíme od základů Foundation Kitu k aplikačním službám knihovny AppKit se podíváme na to, co Tiger pro Foundation Kit přinesl nového: třídy NSAffineTransform, NSCalendar, novinky tříd NSError a NS...Formatter, třídy NSIndexPath, NSLocale či NSMetadata, nové služby třídy NSString, a některá další rozšíření.

ts_programovani-nahled2.gif 27.05.2005

Nastal čas na kakao - NSUserDefaults

Ačkoli jsme minule už zběžně nahlédli do tygřích novinek, dnes se ještě naposledy budeme zabývat "obyčejným Foundation Kitem", tedy službami, jež jsou k dispozici v jakékoli versi Mac OS X. To proto, že nám ještě z celkového přehledu zbyla jedna dosud nepopsaná třída – NSUserDefaults.

ts_programovani-nahled2.gif 13.05.2005

Nastal čas na kakao - Notifikace: nepřímé předávání zpráv

Úkolem trojice tříd NSNotification... je zajistit korektní a plně funkční předávání zpráv i v případech, kdy objekt který zprávu odesílá vůbec neví, které objekty ji mají dostat. Můžeme to vyjádřit také jinak – zatímco v klasickém mechanismu předávání zpráv volí jak obsah zprávy, tak i jejího příjemce odesilatel, umožňuje notifikační systém API Cocoa také to, aby odesilatel zvolil pouze obsah zprávy, zatímco příjemce sám určí – podle obsahu – které všechny zprávy chce dostávat.

ts_programovani-nahled2.gif 06.05.2005

Nastal čas na kakao - Kakao v Tygrovi

Vzhledem k tomu, že se opona NDA konečně odhalila, můžeme si konečně říci více o tom, jaké novinky Mac OS X 10.4 – Tiger – přinesl programátorům. Vlastně se to docela dobře hodí: vzhledem k tomu, že jsme v našem seriálu, věnovaném programování ve vývojovém prostředí Cocoa, těsně před dokončením přehledu konkrétních tříd Foundation Kitu, můžeme snadno přímo vložit pár nových "tygřích" kapitol.

ts_programovani-nahled2.gif 19.04.2005

Nastal čas na kakao - NSInvocation a černá magie

Ačkoli v praxi využívaná poměrně zřídkakdy, stojí třída NSInvocation za samostatný článek, protože jejím prostřednictvím máme v API Cocoa k dispozici nesmírně silný nástroj – přesměrování zpráv. Možnosti, jež nám tato služba nabízí, si programátoři ve statických prostředích typu C++ obvykle vůbec nedokáží představit.

ts_programovani-nahled2.gif 06.04.2005

Nastal čas na kakao - Zpracování výjimek: NSException

Nejprve si slíbíme, že se ke třídám NSDate a NSCalendarDate (respektive hlavně k té první z nich) vrátíme později. Proč to? Inu... právě okolo práce s daty je řada poměrně významných změn v nové versi operačního systému, Mac OS X 10.4 Tiger, jež už bezmála klepe na dveře: nemá proto smysl si teď podrobně popisovat už vlastně zastaralé API, abychom za měsíc nebo dva popisovali nové – raději posečkáme a k datům se vrátíme hned, jak bude Tygr puštěn z klece NDA .

ts_programovani-nahled2.gif 30.03.2005

Nastal čas na kakao - Málem bychom zapomněli: NSAutoreleasePool

Pokud bychom chtěli dodržet pořadí, v němž jsme se o třídách Foundation Kitu zmínili v úvodním přehledovém článku (a to bychom měli, aby bylo snadné se v nich orientovat), neměli jsme začínat kontejnerovými třídami NS(Mutable)Array, ale třídou NSAutoreleasePool, v níž (spolu s některými službami třídy NSObject) je skryto celé kouzlo poloautomatického garbage collectoru firmy NeXT – pardon, firmy Apple .

ts_programovani-nahled2.gif 22.03.2005

Nastal čas na kakao - Trocha magie, aneb distribuované objekty

Dnes nám v přehledu konkrétních tříd Foundation Kitu vyšel čas na skutečnou lahůdku: přeskočíme-li totiž velmi zřídka užívané zámky NS...Lock, je na řadě třída NSConnection (a třídy, jež s ní spolupracují) – budeme se tedy zabývat distribuovanými objekty.

ts_programovani-nahled2.gif 10.03.2005

Nastal čas na kakao - Archivace objektů

Minule jsme se seznámili s objekty třídy NSData a řekli jsme si, že se velmi často užívají pro ukládání a representaci obsahu obecných souborů. To je pravda; existuje ale ještě druhý typ využití těchto objektů, který je – alespoň u složitějších aplikací – velmi častý, a to je archivace a dearchivace objektů.

ts_programovani-nahled2.gif 03.03.2005

Nastal čas na kakao - Čísla, binární data a další...

Dnes budeme pokračovat v podrobnějším přehledu tříd Foundation Kitu: po kontejnerech, jimiž jsme začali, a třídách NS(Mutable)String, kterým jsme se věnovali minule, jsou dnes na řadě – v pořadí, v němž jsme se s třídami zběžně seznámili v úvodním článku věnovaném Foundation Kitu – třídy NSValue a NSNumber, jež slouží pro representaci standardních typů "neobjektového" jazyka C v objektovém prostředí.

ts_programovani-nahled2.gif 25.02.2005

Nastal čas na kakao - Textové řetězce: NS(Mutable)String

Minule jsme si začali ukazovat, jak se pracuje s konkrétními objekty z knihovny Foundation Kit – seznámili jsme se především s beztypovými kontejnery NS(Mutable)Array, NS(Mutable/Counted)Set a NS(Mutable)Dictionary. Dnes se podíváme blíže na snad nejpoužívanější třídu vůbec – na třídu NS(Mutable)String.

ts_programovani-nahled2.gif 09.02.2005

Nastal čas na kakao - Třídy Foundation Kitu (2)

Minule jsme si ukázali přehled všech tříd Foundation Kitu a stručně jsme probrali účel a základní využití většiny z nich. Nyní se soustředíme jen na ty nejčastěji využívané; zato se na ně podíváme podrobněji a ukážeme si i zcela konkrétní příklady použití.

ts_programovani-nahled2.gif 04.02.2005

Nastal čas na kakao - Třídy Foundation Kitu

V minulém dílu našeho seriálu jsme dokončili praktický příklad programování v Cocoa tím, že jsme si ukázali ty nejjednodušší základy ladění. Mohu-li navázat na diskusi k článku: samozřejmě, že k ladění – stejně, jako k praktickým příkladům – se ještě vrátíme podrobněji; aby to však mělo rozumný smysl, je zapotřebí, abychom měli lepší představu o tom, jaké služby vlastně nabízejí knihovny standardních tříd Cocoa.

ts_devcon-nahled2.gif 21.12.2004

Nastal čas na kakao - Ladění

Ty nevíš táto to ti bylo k pláči, kos tuhle pral se s počítači a hledal chybu v programu... tedy, omlouvám se čtenářům i panu Halasovi; nechal jsem se unést nadpisem článku. Pravda ovšem je, že v minulém dílu našeho seriálu jsme si slíbili, že dříve, než se pustíme do přehledu služeb tříd objektové knihovny Foundation Kit, se blíž podíváme právě na ladění – tedy odhalování a opravy chyb.

ts_devcon-nahled2.gif 09.12.2004

Nastal čas na kakao - Drobná vylepšení a zdokonalení...

Minule jsme naši aplikaci dokončili, takže vše funguje; slíbili jsme si ale, že si ještě ukážeme několik fint a drobností, jež vylepší její uživatelský komfort.

ts_devcon-nahled2.gif 02.12.2004

Nastal čas na kakao - Druhý kontrolér a dokončení aplikace

Minule jsme se v hrubých rysech naučili v Interface Builderu používat kontrolery a vazby ("bindings") mezi objekty; jejich pomocí (a s využitím starého dobrého mechanismu akce/cíl pro dvojici tlačítek) jsme implementovali kompletní služby aplikace pro prvé textové pole, pro obě tlačítka i pro rozevírací nabídku.

ts_devcon-nahled2.gif 16.11.2004

Nastal čas na kakao - Interface Builder: atributy objektů

V předcházejících dílech jsme připravili datový model naší aplikace, minule jsme v Interface Builderu sestavili její uživatelské rozhraní – nyní už zbývá jen model a rozhraní spojit dohromady pomocí vhodného kontroleru, a aplikace bude hotova.

ts_devcon-nahled2.gif 11.11.2004

Nastal čas na kakao - Interface Builder: atributy objektů

V minulém dílu jsme se seznámili s aplikací Interface Builder, jež se v Cocoa používá pro tvorbu uživatelského rozhraní a kontrolerů, a také jsme si ukázali, jak v ní sestavit konkrétní objekty uživatelského rozhraní pro naši aplikaci.

ts_devcon-nahled2.gif 03.11.2004

Nastal čas na kakao - Interface Builder a uživatelské rozhraní

S aplikací Interface Builder jsme se zatím v našem seriálu nesetkali; než se pustíme do vlastního sestavování uživatelského rozhraní, řekneme si toho o ní aspoň malinko víc.

ts_devcon-nahled2.gif 21.10.2004

Nastal čas na kakao - Aplikace RSS: parsování XML

Předminule jsme probrali strukturu datového modelu naší aplikace a rozhraní třídy RSS; v minulém dílu jsme si ukázali její implementaci – inicializaci, standardní metodu dealloc, a accesory. Zbývá nám tedy ještě ukázat si, jak je implementováno parsování XML, a pak se už budeme moci pustit do tvorby grafického uživatelského rozhraní.

ts_devcon-nahled2.gif 13.10.2004

Nastal čas na kakao - Aplikace RSS: implementace datového modelu

Minule jsme si ukázali návrh a interface datového modelu pro naši vylepšenou aplikaci; dnes využijeme toho, co jsme se o programování v Cocoa naučili v minulých dílech (a také něčeho, co jsme zatím neprobírali, totiž znalosti standardních knihovních tříd Foundation) k odpovídající implementaci.

ts_devcon-nahled2.gif 05.10.2004

Nastal čas na kakao - Aplikace RSS2: datový model

V minulých dvou pokračováních jsme se seznámili s vývojovým prostředím XCode dostatečně k tomu, abychom se mohli pustit do práce na naší aplikaci. Projekt už máme připravený od předminule; není-li tomu tak, vytvoříme nový projekt typu "Application / Cocoa Application".

ts_devcon-nahled2.gif 29.09.2004

Nastal čas na kakao - Více o XCode: inspektory

Chystáme se připravit naši druhou aplikaci, v níž bychom využili většinu toho, co jsme se učili v minulých pokračováních našeho seriálu. Nejdříve si však musíme říci alespoň nejzákladnější věci o vývojovém prostředí firmy Apple, o XCode.

ts_devcon-nahled2.gif 16.09.2004

Nastal čas na kakao - Šedá je teorie, zelený je strom života...

Pojďme se tedy zase na chvilku vrátit od teorie k praxi. Vzpomínáte na triviální čtečku RSS na dvacet programových řádků z prvého dílu? Nyní si ukážeme plnohodnotnou aplikaci, jež dokáže zobrazit zároveň více RSS kanálů, jež ukazuje seznam titulků zpráv pro zvolený kanál v tabulce a po vybrání titulku ukáže vlastní zprávu, jež si naposledy vybraný kanál pamatuje pro příští spuštění a podobně.

ts_devcon-nahled2.gif 31.08.2004

Nastal čas na kakao - Accesory: přístup k proměnným instancí

Už v minulém dílu jsme narazili na to, že je z řady důvodů šikovné snažit se nepracovat s instančními proměnnými přímo: lepší je "zabalit" je do samostatného API, několika málo jednoduchých metod, jejichž prostřednictvím – a jenom jejich prostřednictvím – se s proměnnými zachází. Všechen ostatní kód pak využívá právě těchto metod; obvykle těmto metodám říkáme accesory.

ts_devcon-nahled2.gif 20.08.2004

Nastal čas na kakao - Inicializace: tipy a triky

Než pokročíme k dalšímu tématu (jímž bude správné psaní tzv. accesorů – zběžně je ostatně "naťukneme" již dnes), vyplatí se ještě si ukázat několik triků a správných vzorců při implementaci a užívání inicializátorů. Nakonec si také ukážeme jeden potenciální "podraz", na který si při implementaci inicializátorů musíme – aspoň v těch složitějších případech – trošku dávat pozor.

ts_devcon-nahled2.gif 12.08.2004

Nastal čas na kakao - Metody initWith... a designovaný inicializátor

V minulém dílu jsme se naučili psát metody init (a dealloc); na chvíli jsme ovšem pozapomněli na metody initWith... s argumenty.

ts_devcon-nahled2.gif 05.08.2004

Nastal čas na kakao - Inicializace a rušení objektů

Vytváření a rušení objektů jsme již probrali celkem podrobně – ovšem z hlediska kódu, který objekty používá. Nyní nastal čas podívat se na tuto problematiku znovu, pro změnu z hlediska třídy, jejíž implementace se vytvářejí a ruší – ukážeme si tedy jak správně vytvářet metody init... a další, s nimi spolupracující.

ts_devcon-nahled2.gif 29.07.2004

Nastal čas na kakao - Vkládání objektů a přesměrování zpráv

V předminulém dílu jsme si začali povídat o tom, jaké alternativní techniky se v Cocoa často využívají namísto dědičnosti: ukázali jsme si, jak funguje delegace a zběžně jsme se seznámili s mechanismem akce/cíl; minule jsme se seznámili s využitím kategorií pro přidání jednoduchého API k již existující třídě. Dnes toto téma dokončíme ukázkou "pokročilejšího triku" vkládání objektů.

ts_devcon-nahled2.gif 22.07.2004

Nastal čas na kakao - Využití kategorií namísto dědičnosti

V minulém dílu jsme si začali povídat o tom, jaké alternativní techniky se v Cocoa často využívají namísto dědičnosti: ukázali jsme si, jak funguje delegace a zběžně jsme se seznámili s mechanismem akce/cíl, jemuž se budeme daleko podrobněji věnovat začas, v rámci služeb souvisejících s grafickým uživatelským rozhraním. Dnes si ukážeme další trik, který bývá často vhodnější, než "dědění": využití kategorií pro rozšíření služeb některé ze standardních tříd o požadované API.

ts_devcon-nahled2.gif 08.07.2004

Nastal čas na kakao - Podtřídy, delegáti, vkládání, jak se to rýmuje?

Inu, třeba: na podtřídy bacha, delegát ten fachá, vkládání je řacha, tak se to rýmuje. Zatímco dědičnost se v Cocoa oproti jiným objektovým prostředím nepoužívá tak často, s výhodou se zde využívají alternativní techniky, mezi něž patří práce s delegáty či vkládání objektů.

ts_devcon-nahled2.gif 01.07.2004

Nastal čas na kakao - Jak správně importovat

Je zřejmé, že rozhraní třídy (@interface ... @end) je obvykle uloženo v hlavičkovém souboru, který vkládáme do zdrojových souborů, jež s třídou pracují, pomocí direktivy #import – obvykle to vypadá nějak takto...

ts_devcon-nahled2.gif 23.06.2004

Nastal čas na kakao - Jak správně psát v Objective C

V následujících několika dílech našeho seriálu se budeme věnovat tomu, jak v Objective C správně programovat: seznámíme se s řadou standardních konvencí a vzorců, jichž je vhodné používat: nejenže nám usnadní život, ale navíc zajišťují chování, jež ostatní programátoři od našich tříd a metod automaticky očekávají.

ts_devcon-nahled2.gif 18.06.2004

Nastal čas na kakao - Základní služby objektů

Ačkoli Objective C na rozdíl např. od Javy nevyžaduje striktně, aby každá třída, již vytváříme, měla nadtřídu, v praxi budeme téměř vždy své třídy odvozovat od standardní kořenové třídy NSObject – nebo od tříd, jež jsou samy jejími dědici. Vyplatí se proto se hned zpočátku podrobněji podívat na metody, jež od třídy NSObject prakticky všechny objekty dědí.

ts_devcon-nahled2.gif 10.06.2004

Nastal čas na kakao - Skryté podtřídy

Než se pustíme do popisu správného programátorského stylu pro Objective C/Cocoa a vhodných objektových vzorů, je zapotřebí se seznámit ještě s jednou koncepcí, již Cocoa často využívá, a jež významným způsobem zjednodušuje programátorské rozhraní, aniž by jakkoli omezovala flexibilitu. Jde o koncepci tzv. sdružených tříd (class clusters) a skrytých podtříd.

ts_devcon-nahled2.gif 03.06.2004

Nastal čas na kakao - Kopírování objektů

Na náš minulý rozbor toho, jak objekty vznikají a zanikají, je vhodné navázat popisem koncepce měnitelných a neměnných objektů. To proto, že kromě dosud popsaných postupů objekty mohou také vznikat jako kopie objektů dříve existujících – a způsob, jak jsou tyto kopie vytvářeny, je s koncepcí měnitelných a neměnných objektů úzce svázán.

ts_devcon-nahled2.gif 26.05.2004

Nastal čas na kakao - Vznik a zánik objektů

V minulém dílu našeho seriálu jsme dokončili popis vlastního jazyka Objective C. Dnes si řekneme více o základních vlastnostech všech objektů; stojí za to zdůraznit, že tyto služby jsou již hodně specifické právě pro Objective C v Mac OS X – pokud náhodou máte k dispozici nějakou jinou implementaci Objective C, mohou v ní pravidla pro vznik a zánik objektů být dost odlišná.

ts_programovani-nahled2.gif 14.05.2004

Co jsme si o Objective C ještě neřekli...

V minulém dílu jsme se seznámili se systémem objektů a ukázali jsme si všechny základní služby jazyka Objective C. Nyní se seznámíme se zbytkem konstrukcí, jež Objective C nabízí; ačkoli žádná z nich není pro programování bezpodmínečně nutná – jednoduché testovací prográmky jste si snadno mohli vyzkoušet už s využitím služeb, popsaných minule – dokáží programátorovi výrazně usnadnit život.

ts_programovani-nahled2.gif 07.05.2004

Objective C: to si vysvětlíme podrobněji

Ačkoli nadstavba Objective C nad standardním jazykem C je velmi jednoduchá, budeme se jí věnovat mnohem podrobněji. Důvod je zřejmý: zatímco C víceméně každý zná (pro ty, kdo v něm trochu tápou, byl určen stručný přehled jeho nejdůležitějších vlastností v minulém dílu), Objective C zdaleka tolik známé není.

ts_programovani-nahled2.gif 29.04.2004

Programovací jazyk C: velmi, velmi stručně

Tento článek je určen těm, kdo v jazyce C příliš neprogramují a chtějí si jej zběžně oživit; snad i těm, kdo jsou zběhlí v jiných jazycích a snadno se dokáží adaptovat na mírně odlišnou syntaxi a sémantiku jiného programovacího jazyka.

ts_programovani-nahled2.gif 23.04.2004

Tak nejdřív kakao ochutnáme...

Jak jsme si slíbili v minulém úvodu, dnes už začneme doopravdy programovat. Budeme používat standardní vývojové prostředí XCode od Apple; verse je poměrně nepodstatná. Budeme také předpokládat, že máte instalovaného Panthera: pokud ne, tu a tam něco bude vypadat trošku jinak...

ts_programovani-nahled2.gif 13.04.2004

Nastal čas na kakao...

S novým šéfredaktorem jsme se domluvili, že dozrál vhodný čas na podrobný programátorský seriál, věnovaný tvorbě aplikací v nativním, plně objektovém vývojovém prostředí systému Mac OS X — v prostředí Cocoa. Budeme se tedy nyní po nějakou dobu setkávat nad řadou článků, v nichž si ukážeme jak na to.

Tématické zařazení:

 » Rubriky  » Informace  

 » Rubriky  » Agregator  

 » Rubriky  » Začínáme s  

 » Rubriky  » Software  

 

 

 

Nejčtenější články
Nejlépe hodnocené články
Apple kurzy

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: