Editor XIBů - 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:

Soutěž

Sponzorem soutěže je:

IDIF

 

Kde se narodil známý fotograf František Drtikol?

V dnešní soutěži hrajeme o:

Seriály

Více seriálů



Software

Editor XIBů

31. srpna 2011, 00.00 | 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.

Co to jsou objektové sítě XIB – po sestavení aplikace převedené do binární podoby NIB s týmž obsahem – již víme. Víme také, že jakkoli se v principu mohou používat pro ukládání zcela libovolných objektů, v praxi jich běžně využíváme pro objektové sítě, reprezentující grafické uživatelské rozhraní aplikace.

Ve dvou minulých dílech, v nichž jsme si podrobně vysvětlili obsah a funkci NIBů, jsme se opakovaně zmínili o tom, že je možné (a velmi praktické) mít k dispozici obecný editor, v němž takovéto objektové sítě lze vytvářet a upravovat. Takový editor je od verse 4 nahoru součástí integrovaného vývojového prostředí Xcode, a dnes se na něj podíváme podrobněji.

Vytvoření a otevření XIBu

Objektovou síť XIB vytváříme přesně stejně, jako jakýkoli jiný soubor, který je součástí projektu: základní kostru, obsahující nejběžnější věci, nám automaticky vytvoří Xcode při zakládání nového projektu na základě odpovídajícího projektového vzoru; kromě toho můžeme kdykoli vytvořit XIB nový pomocí standardní služby "New File..." v navigátoru v levé části okna a pak výběrem ze skupiny "User Interface" nebo přetažením z paletky v dolní části pravého sloupce:

Klepnutím na soubor XIB v navigátoru pak jej otevřeme v editoru v prostřední části okna – nebo poklepáním v okně novém – přesně stejně, jako jakýkoli jiný soubor. Xcode formát XIB samozřejmě rozezná, a aktivuje speciální editor.

Editor XIBů

Tento editor je poměrně složitý; musí totiž obsahovat řadu samostatných prvků:

• přehlednou tabulku, ukazující kompletní obsah XIBu a nabízející pohodlný přístup ke kterémukoli objektu, který je v XIBu uložen;

• grafickou podobu těchto objektů, odpovídající jejich normálnímu vzhledu na obrazovce počítače;

• inspektory atributů, zobrazující nastavení konkrétních atributů těchto objektů a umožňující je měnit;

• paletu objektů, z nichž lze vybírat při přidávání nových prvků do XIBu;

• řadu specifických příkazů, jež úzce souvisí právě jen s prací s objekty v XIBu (namátkou třeba možnost grafického srovnání objektů do sloupce nebo do řady).

Komukoli, kdo má alespoň zlomek zdravého rozumu, je naprosto zřejmé, že tyto požadavky lze rozumně splnit pouze v samostatné aplikaci, jež bude podporovat několik samostatných oken a palet a jež bude mít kompletní vlastní menu; tato aplikace by mohla s Xcode samozřejmě úzce spolupracovat. Přesně tak tomu také bylo od poloviny 80. let, kdy NIBy ve firmě NeXT vymysleli, až donedávna.

Bohužel, nedávno se někdo ve firmě Apple rozhodl, že vše je třeba integrovat do Xcode, a navíc, že jediný smysluplný způsob práce s počítačem je práce v celoobrazovkovém režimu – tak, jak tomu bývalo standardem v MS DOSu v dobách dřevních. Stokráte bohužel to byl někdo, komu programátoři museli naslouchat, takže editor XIBů je nacpaný naprosto absurdním a pro práci extrémně nepohodlným způsobem do okna Xcode. Lze jej sice – díkybohu aspoň za to – otevřít v samostatném okně, nicméně nelze otevřít samostatně jednotlivé prvky GUI (ty jsou uloženy v podřízených oknech zhruba na témže principu, jemuž jsme se vždy právem vysmívali jako dokonalé absurditě ve Windows 3), a nelze samostatně otevřít jednotlivé paletky a inspektory. Úpravy XIBů jsou proto v současnosti krajně nešikovné :(

Editor sám – bez paletek a inspektorů, k nimž se vrátíme za chvilku – vypadá zhruba takto:

Vidíme, že editační okno je rozděleno na dvě části: v levé je přehled objektů, jež jsou v XIBu uloženy; v horním ze dvou bloků jsou zástupné objekty "File's Owner" a "First Responder" – prvému z nich již dokonale rozumíme; druhý prozatím ponecháme stranou, ostatně v iOSu, na nějž se převážně soustředíme, je jeho úloha poměrně okrajová.

V dolním bloku pak vidíme všechny kořenové objekty, uložené v XIBu: na našem obrázku jsou tři – obecný objekt "RangeLogAD", okno jménem "Window", a instanci nám již důvěrně známé třídy UITabBarController, jež v okně bude reprezentovat kořenový řídicí objekt rámců s jednotlivými "taby" v dolní liště. Objekty, jež obsahují další vnořené prvky – zde jen "tab bar controller" – lze pomocí standardního trojúhelníčku "otevřít", takže uvidíme jejich obsah a budeme s ním moci pracovat:

Bohužel velmi šikovné možnosti zobrazení prvků v "browseru" (tedy v několika sloupcích) a v tabulce, jež bývaly v samostatném Interface Builderu samozřejmostí, již Xcode nenabízí.

V pravé části pak jsou samy grafické prvky – v našem případě tedy okno "Window"; to, že je v levé části editoru zvoleno, indikuje modré orámování.

Důvod, proč ilustrujeme text jiným projektem, je velmi jednoduchý a nedůležitý: náš testovací projekt, na němž pracujeme již delší dobu, je určen pro iPad, a jeho okna a rámce jsou proto velké a do absurdního "jednookenného" integrovaného prostředí Xcode se dobře nevcházejí; projekt Range Log, z nějž jsme snímky převzali, je ale pro iPhone a jeho malá okna se vejdou poměrně slušně.

Inspektory a palety

Panely inspektorů a palet se po otevření XIBu náhle objeví jako další ikonky v pravém sloupci integrovaného prostředí – ten při práci s XIBem takřka vždy musíme otevřít, jinak nelze dělat téměř nic.

Čtveřice inspektorů se objeví v horní části pravého sloupce:

Jejich ikonky, podle mého názoru krajně neintuitivní, postupně zleva – po přeskočení prvých dvou standardních ikonek pro atributy souboru a rychlou nápovědu (to jsou ty dvě vlnky) postupně reprezentují

• podivné "okénko formuláře" (nebo co to má být) reprezentuje inspektor identity, jehož hlavní službou je určit specifickou podtřídu (tuto službu a její smysl jsme si podrobně vysvětlili na konci minulého dílu);

• ikonka podobná kratičkému vodorovnému posuvníku odkazuje na inspektor atributů (na minulém obrázku jej vidíme vybraný). My se inspektory budeme podrobně zabývat příště, ale je předem zřejmé, že půjde o inspektor asi vůbec nejpoužívanější, jehož prostřednictvím můžeme upravovat atributy zvoleného objektu – jako příklad si zde můžeme ukázat třeba řádek "Background" zhruba uprostřed, v němž můžeme libovolně vybrat barvu pro pozadí okna;

• třetí ikona, jež připomíná šikmo položenou cihlu, má patrně vypadat jako měřítko, neboť reprezentuje inspektor velikosti – v něm můžeme určit jak samotnou velikost zvoleného objektu, tak i mechanismus automatických změn této velikosti při změně velikosti okna, jež jej obsahuje;

• konečně pak na obrázku poslední šipka, jako jediná z ikonek jakžtakt intuitivní, reprezentuje inspektor vazeb, v němž vidíme (a můžeme měnit) vazby mezi zvoleným objektem a všemi ostatními (včetně zástupných).

Pokud bychom pracovali na XIBu určeném pro aplikaci Mac OS X, přibudou další dvě ikonky s odpovídajícími inspektory:

inspektor objektových vazeb pod ikonkou, jež vypadá trochu jako symbol vlněného prádla;

• a pod ikonkou připomínající vzdáleně připomínající stoh papírů inspektor animačních efektů.

Paletky jsou pro práci v XIBech relevantní dvě: naprosto zásadní důležitost samozřejmě má paleta objektů, jež běžně vkládáme do XIBů; o něco méně důležitá (a velmi nepohodlně implementovaná) pak je paleta obsahující multimediální soubory – především obrázky –, jež jsou součástí projektu.

Ty jsou obě umístěny do dolní části pravého sloupce – prvá z nich (již vidíme na obrázku otevřenou) pod ikonou krychličky, již Apple používá jako symbol objektu; druhá má ikonku, jež vypadá jako políčko na filmu (což je věc nám starším důvěrně známá, ale pochybuji, že by mnoho současných začínajících programátorů skutečný film vůbec kdy v době digitálních fotoaparátů i kamer vidělo :))

Pokud máte dojem, že to znamená, že buď musíte mít nešikovně malý inspektor nebo paletu, máte dojem naprosto správný: ti, kdo v Apple navrhovali grafické uživatelské rozhraní Xcode 4, se museli zbláznit – nebo v životě neprogramovali. Nebo možná obojí :(

V příštích dílech si vysvětlíme detaily použití jednotlivých inspektorů a palet a také si ukážeme několik triků, jež alespoň do jisté míry umožní obejít ty nejhorší z problémů, zaviněných "celoobrazovkovým" designem Xcode. Dnes si jen ukážeme "přehledné" pracovní okno při editaci jednoduchého XIBu:

Obsah seriálu (více o seriálu):

Tématické zařazení:

 » Rubriky  » Informace  

 » Rubriky  » Agregator  

 » Rubriky  » Tipy a Triky  

 » Rubriky  » Začínáme s  

 » Rubriky  » Software  

Diskuse k článku

 

Vložit nový příspěvek   Sbalit příspěvky

 

Editor XIBů a lokalizace

Autor: Pavel Lisa Muž

Založeno: 31.08.2011, 20:36
Odpovědí: 0

Když už je řeč o editorech XIBů, je možné nějak zajistit synchronizaci úprav mezi jejich různými lokalizacemi?

Odpovědět na příspěvek

RE: Editor XIBů a lokalizace

Autor: OC Muž

Založeno: 03.09.2011, 16:54

Ano, jsou na to služby v ibtoolu -- vizte man ibtool, přepínač --localize-incremental a další souvisící.

Ale přiznám se, že jsem to už poměrně dlouho netestoval, tak nevím, zda s tím v současnosti nejsou nějaké problémy.

Odpovědět na příspěvek

kopr

Autor: hroch32 Muž

Založeno: 01.09.2011, 12:09
Odpovědí: 0

Z tohohle se chce člověku skoro až brečet – nové IDE neumožňuje spoustu věcí co staré a integrace IB do něj je ze všeho asi nejtragičtější... kdyby aspoň mohl člověk mít dvě okna, jedno na kód a jedno na niby, o paletkách ani nemluvě. Pevně doufám, že Appláci vysliší tu hromadu stížností a v nějaké další versi umožní ty paletky "vytrhávat" z hlavního okna, to by dle mého hodně vyřešilo.

Odpovědět na příspěvek

RE: kopr

Autor: OC Muž

Založeno: 03.09.2011, 16:49

No, zrovna tohle (mít jedno okno na NIB a druhé na kód) jde, naštěstí, ještě _relativně_ dobře. S paletkami je to horší. Postupně se k tomu dopracujeme a rozebereme to podrobně, ale pro začátek zkus prostě na XIB (NIB, chceš-li) v Navigátoru poklepat.

Odpovědět na příspěvek

apple

Autor: pf Muž

Založeno: 02.09.2011, 13:45
Odpovědí: 0

1) myslite, ze v Applu se nepokusi naslouchat a treba v dalsich verzich s temi inspectory (vyhazovaci ven do okna) a dalsimi vecmi neco neudelaji?

2) kdyz se koukam na screenshot toho "prehledneho" okna s otevrenym jednoduchym XIBem - zrejme se vam Apple snazi naznacit, ze na vyvoj mate mit adekvatni vybaveni - treba trosku vetsi monitor - maji moc pekne Cinemy a MB PRO 17"...

(ale jinak je muj komentar veskrze uplne zbytecny a od veci)

Odpovědět na příspěvek

RE: apple

Autor: hroch32 Muž

Založeno: 03.09.2011, 10:42

ad 1) Pevně v to doufám. Je možné, že zadání pro programátory znělo: "Vše do jednoho okna.", takže to tak museli udělat. Pokud jim zbude trocha času, tak věřím, že umožní i samostatné inspektory. Nezbývá než čekat.

ad 2) Cinemu mají jen jednu, s lesklým povrchem, čili nic pro mě... navíc za cenu vyšší než "srovnatelné" EIZO. S příchodem thunderboltové verse ale uznávám, že se z něj stane slušná dokovací stanice, takže pro majitele notebooků bude jistě dobrou volbou. K Macu Pro mi ale přijde jako drobet zbytečný luxus. A ani 17" notebook nebude stačit pro vývoj rozhraní aplikací jako Cornerstone, DrawIt, iPhoto atp.

A poznámky jsou naopak naprosto k věci :-)

Odpovědět na příspěvek

RE: apple

Autor: OC Muž

Založeno: 03.09.2011, 16:46

1. Líbilo by se mi to, ale... už od bety čtyřky spousta lidí (včetně mne) řvala, jak to je nepoužitelné. Marně. Fullscreen prostě má v současnosti prioritu.

Ona samozřejmě je šance, že na to časem přijdou, ale za jak dlouho... :(

Jsou minimálně dva známé precedenty:

(a) před lety nějaký cvok v Apple ukrutně tlačil Javu -- existoval JavaBridge, doporučovalo se přepisování Kakaa do Javy, dokonce ve standardních příkladech byl TextEdit v Javě. Pak jim došlo, co je to za hovadinu, a teď už tam Java není vůbec :)

(b) před lety už jednou nějaký cvok s fullscreenem přišel; ten oválný ovladač na přepínání toolbaru vpravo nahoře (co v Lionu není a ukrutně chybí :( ), měl původně přepínat právě do fullscreenu! Tehdy ale měl někdo jiný rozum a poslal jej s tím do Prčic (možná zdravý Jobs při síle?). Tentokrát tu hovadinu ten výše zmíněný cvok, stokráte žel, prosadil (možná proto, že Steve je nemocný?)

2. Díky za radu, vyvíjím běžně na mašině se dvěma monitory, 24" a 20". Ten dementní celoobrazovkový design Xcode 4 je tam -- kde je spousta místa na rozumné rozložení paletek a oken -- ještě daleko víc frustrující než na 13" notebooku.

Odpovědět na příspěvek

RE: RE: apple

Autor: OC Muž

Založeno: 03.09.2011, 16:58

P.S. Mám _nejistý_ dojem, že "trhací paletky", tj. inspektory a podobné věci, jež by šly vytáhnout do samostatného panelu, narážejí na nějaký softwarový patent, a hlavně proto nejsou k dispozici :( Určitě jsem kdysi kdesi něco podobného četl, ale možná si to špatně pamatuji, je to dávno.

Ale napadá mne, že by to možná mohlo jít udělat jako 3rt party plugin, alespoň pro Xcode: kdyby se vzal ten view, co representuje inspektor, strčil se do samostatného okna, třeba by to fungovalo. Nemá někdo z přítomných čas si s tím pohrát? Já bohužel ne...

Odpovědět na příspěvek

IBPlugins

Autor: hroch32 Muž

Založeno: 09.09.2011, 11:09
Odpovědí: 0

Někde jsem se dočetl, že v Xcode 4.2 už snad je možné editovat niby obsahující objekty z third-party plug-in pro IB 3. Ale nemůžu teď najít, kde to bylo, tak nechci šířit neoprávněný optimismus...

Odpovědět na příspěvek

 

 

Vložit nový příspěvek

Jméno:

Pohlaví:

,

E-mail:

Předmět:

Příspěvek:

 

Kontrola:

Do spodního pole opište z obrázku 5 znaků:

Kód pro ověření

 

 

 

 

 

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

Uživatelské jméno:

Heslo: