Programujeme v iTunes Xcode 4 - 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

 

Jaký fotograf/ka získal/a cenu za nejpopulárnější příspěvek v Nikon Photo Contest?

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

Seriály

Více seriálů



Software

Programujeme v iTunes Xcode 4

25. května 2011, 00.00 | 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.

Ve firmě Apple trpí nekritickou láskou k aplikaci iTunes. Musí tomu tak být; jinak by nemohlo nikoho soudného napadnout, že se budou data mezi telefonem a počítačem synchronizovat prostřednictvím přehrávače MP3... ale to odbočuji. Naopak s naším seriálem úzce souvisí to, že se v posledních letech v Apple evidentně snažili do iTunes přesunout i psaní nových aplikací; když zjistili, že to tak úplně nejde, aspoň předělali Xcode tak, aby se iTunes podobalo co nejvíc.

Takže nyní máme vývojové prostředí, které nejenže má vlevo nahoře tlačítka "Play" a "Stop"; dokonce je uprostřed horní lišty okénko, které ukazuje běh procesů přesně stejně, jako iTunes přehrávání skladby – a kvůli tomu nestandardními nesmyslu není lišta vůbec konfigurovatelná... Aspoň že zatím nemáme "semafor" pro zavírání / minimalizaci / zvětšení okna na výšku. Zatím.

Zkuste to přes modem!

Kompletní vývojové prostředí Xcode 4 lze nalézt standardně na stránkách Apple. Pokud náhodou nemáte připojení k Internetu T1, připravte se na kafíčko nebo několik: velikost balíku ukrutně narostla, má cca 4.5 GB. Zato v něm je standardně kompletní podpora obou současných platforem, jak Mac OS X, tak i iOS.

Instalace by měla být bezproblémová; jen je vhodné zvážit, zda provést kompletní upgrade, nebo zda raději instalovat do samostatné složky (např. "/Developer4"), abychom v případě potřeby mohli i nadále používat Xcode 3: jak časem uvidíme, jsou věci, jež Xcode 4 prostě neumí – a také je vzhledem k jeho novosti vždy určité risiko, že narazíme na nějakou chybu, jež vývoj ve čtyřce omezí nebo znemožní. Prozatím bych proto doporučil alespoň na jednom počítači Xcode 3 zachovat. Dobrou zprávou zde je to, že projekty jsou plně vzájemně kompatibilní a lze je bez obtíží přenášet na obě strany.

Příjemná novinka v překladači

Součástí nového SDK je také nová verse překladače, a ta kromě několika oprav chyb (naopak o žádné nové chybě dosud nevím) přináší jednu velmi příjemnou novinku: instanční proměnné lze nyní deklarovat nejen v rozhraní, ale také v rozšíření a v implementaci.

To je příjemné, protože instanční proměnné samozřejmě obecně v rozhraní nemají co dělat. Historicky bývalo zapotřebí je tam umísťovat proto, že podtřídy je musely znát; v současnosti ale už Objective C tento problém nemá. Je tedy jen logické a rozumné instanční proměnné deklarovat v implementaci, a nyní již k tomu není zapotřebí "trik" s atributy:

// SomeClass.h
@interface SomeClass @end
// SomeClass.m
@implementation SomeClass {
  int ivar;
  ...
}
...

Nepříjemné novinky v IDE

Nové Xcode je navrženo s poměrně šílenou ideou "Vše by mělo být v jednom okně a podle toho, co člověk zrovna dělá, se to tam uvnitř může přepínat". Standardně tedy to, nač bývaly velmi pohodlné samostatné panely (především inspektory souborů), je nyní integrováno do hlavního okna (takže přístup k tomu je pramizerný); pro zobrazení výpisů testované aplikace se editor zdrojového textu vertikálně rozdělí, a výpisy se zobrazí pod ním...

Asi nejhorší je to, že přímo do Xcode jsou nyní integrovány i služby Interface Builderu, a jeho okna se to týká také – nelze tedy standardně mít vedle sebe knihovnu objektů a panel inspektoru. S XIBy se v novém Xcode pracuje opravdu špatně, i přes některé docela šikovné novinky.

Postupně si v našem seriálu ukážeme, jak některé z problémů obejít; začneme ale tím, že si ukážeme, jak nové Xcode vypadá a funguje standardně.

Co kde hledat

Okno nového IDE po otevření projektu (a zobrazení výpisu programu, abychom viděli všechny základní prvky) může vypadat zhruba asi nějak takto:

Podívejme se postupně shora dolů (a zleva doprava) na jednotlivé prvky – později si toho o každém z nich řekneme víc:

• titulek okna je víceméně standardní; jen na rozdíl od Xcode 3 nefunguje tažení dokumentové ikony. Přesněji řečeno, funguje, jenže bez ohledu na to, co máme v okně právě otevřeného, se vždy táhne projekt jako celek a nikdy aktuální soubor (toto je, doufejme, jen chyba, již Apple časem opraví);

• o příkazové liště pod ním jsme se již zmínili výše: ačkoli ji lze – díkybohu aspoň za to – skrýt a zobrazit pomocí standardního tlačítka vpravo nahoře, konfigurovatelná bohužel není vinou nesmyslného okénka uprostřed, jež informuje o právě probíhajících procesech a také o množství chyb a varovných hlášení v projektu. Ostatní ovladače v listě si podrobněji popíšeme níže; jen pro orientaci, umožňují sestavení a spuštění cílové aplikace, volbu platformy pro niž se sestavuje a testuje, přepínání grafické podoby okna a otevření okna tzv. Organizeru;

• pod příkazovou lištou je lišta záložek; ty fungují téměř přesně stejně jako v Safari: chceme-li více různých pohledů na projekt, můžeme je otevřít v samostatných záložkách. Záložky lze také "trhat" do samostatných oken, vzájemně přesouvat a-tak-dále;

• nyní je na řadě sloupec při levém okraji okna, který připomíná navigační sloupec Xcode 3: skutečně jím je – a také lecčíms jiným. Říká se mu "Navigátor" a v základním režimu – který vidíme na obrázku – ukazuje zhruba stejnou strukturu projektu a skupin v něm, jako tomu bylo v Xcode 3. Kromě toho jej ale pomocí ikon v liště při jeho horním okraji lze přepnout do režimů, suplujících již neexistující samostatná okna: přehled symbolů, textové vyhledávání, výsledek sestavení (tedy především chyby a varovná hlášení), aktuální stav procesu v debuggeru, seznam breakpointů nebo přehled výpisů. Trochu hodně práce na jeden malý sloupec!

• v centrální oblasti okna je editor zdrojového kódu, který funguje na první pohled hodně podobně jako tomu bývalo v "trojce". Postupně pak začneme narážet na rozdíly: daleko agresivnější automatické doplňování, zcela předělaná podpora pro přístup k souvisícím souborům – umí toho mnohem víc než dříve, ale zato je daleko méně pohodlná –, a tak dále a tak podobně. Jak tomu bylo už v Xcode 3, i zde lze prostor editoru rozdělit na několik panelů, z nichž každý zobrazuje jiný (nebo i týž) zdrojový soubor; podpora pro tuto službu, tzv. "Asistent", je ale nyní dost zmatená a budeme se jí podrobně věnovat později. Velkým kladem naopak je průběžné zobrazování chyb, jež by jinak odhalilo až sestavení;

• pokud jsme litovali sloupec při levém okraji okna, že mu firma Apple naložila nějak mnoho úkolů, sloupec při pravém okraji – říká se mu "Utility" – je na tom ještě daleko hůř. Obsahuje jen v horní části – tedy nad řadou ikonek zhruba v polovině okna, jak jsou vidět na obrázku – inspektor atributů aktuálního souboru (který má sám řadu samostatných polí) a stručnou nápovědu. Otevřeme-li XIB, přibude kompletní sada inspektorů, jež bývala v samostatném panelu v Interface Builderu; otevřeme-li datový model, objeví se zde inspektory jeho entit a atributů;

• dole uprostřed je panel s výpisem testovaného programu. Připadá-li nám příliš jednoduchý, můžeme si jej vertikálně rozdělit na dvě části; výpisy pak budou napravo, kdežto vlevo bude debugger zobrazovat aktuální obsah proměnných;

• zbývá konečně dolní část sloupce při pravém okraji okna: ta obsahuje "knihovny" či "palety" všeho možného – jsou zde vzory pro nově vytvářené soubory, standardní "makra" obsahující běžně užívané úseky kódu, kompletní knihovna objektů grafického uživatelského rozhraní pro XIBy a také média, tj. především seznam všech obrázků, jež jsou v projektu uloženy.

Některé z původních inspektorů jsou nyní integrovány jako samostatné služby editoru zdrojových kódů: lze v něm např. "otevřít projekt", a uvidíme specializovaný editor, který spojuje služby bývalých inspektorů projektu a cílů:

Občas ještě pro některé služby Xcode nad hlavním oknem otevře "lístek" (sheet); vedle celkem nepřekvapivých panelů pro vytvoření nového souboru nebo přidání souborů již existujících do projektu sem patří především editor tzv. "schémat". To je zcela nová záležitost, jež v Xcode 4 nahrazuje a doplňuje dřívější kombinaci pojmenovaných konfigurací a tzv. "executables" – vrátíme se k ní také později.

Organizér

V podstatě vše, co zbývá, narvali programátoři Apple do okna "organizéru". My toto okno známe již z Xcode 3, kde sloužilo především pro přístup k telefonům a jiným iPadům a s tím úzce souvisící služby.

V Xcode 4 k tomu přibyl rozšířený přístup ke známým projektům – příště si vysvětlíme, proč to je poměrně důležité (a proč to patří spíše mezi šikovné novinky "čtyřky", ačkoli je trochu otázka, zda by si to bývalo nezasloužilo samostatné okno), přístup k repositářům správy zdrojových souborů, a snad ze zoufalství ještě do téhož samého okna v Apple narvali přístup k dokumentaci:

Ta je o poznání méně použitelná než tomu bylo v Xcode 3, hlavně proto, že se v nové dokumentaci kamsi bůhvíproč ztratily přehledné obsahy dokumentů :(

Kromě toho ještě má Xcode 4 samostatné okno pro předvolby; do těch se ale pustíme až příště.

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

 

ach ty inovace

Autor: pf Muž

Založeno: 25.05.2011, 09:30
Odpovědí: 0

No jo, starý páce nějací zhulení šílenci předělali XCode :) Co se týče překladače, je tam přece celé nové rychlé LLVM, úplně nový debugger LLDB (sbohem GCC a GDB), probíhá statická analýza kódu na chyby hned při psaní, konečně lepší podpora Unit testů apod...

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

RE: ach ty inovace

Autor: OC Muž

Založeno: 25.05.2011, 11:41

> starý páce nějací zhulení šílenci předělali XCode :)

Já jsem vůči tomu ještě docela vstřícný; dost programátorů se k tomu vyjadřuje zhruba nějak takto:

"I won't be submitting any apps or updates if they declare that it's "Xcode 4 only." What a steaming pile that thing is. I get mad just thinking of the name."
[z diskusí ve fóru Apple]

> je tam přece celé nové rychlé LLVM

Je tam nová verse, ale jinak LLVM už _dávno_ není novinka.

> úplně nový debugger LLDB

Ano, uvidíme, jak bude spolehlivý. Každopádně z hlediska typického čtenáře těchto článků by neměl být vidět rozdíl.

> sbohem GCC a GDB

To patrně nastane, ale zítra to rozhodně ještě nebude. Nezadržoval bych dech.

> statická analýza kódu na chyby hned při psaní

o tom se zmiňuji dokonce i v tomto článku

> konečně lepší podpora Unit testů

Pokud to někdo používá... v některých případech je to skvělá věc, nic proti, ale zrovna to, čím se zabýváme v poslední době, totiž aplikační programování pro iOS, se bez nich obejde velmi dobře.

Ale YMMV, jako vždy.

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

RE: ach ty inovace

Autor: hroch32 Muž

Založeno: 25.05.2011, 12:43

Pokud člověk v IDE tráví denně hodně času a má zajeté workflow, tak se mu vcelku pochopitelně nechce jej měnit. Respektive rád by jej třeba jen zlepšil v nějakých oblastech, přidal možnosti, funkcionalitu atd. Ale takhle kompletní překopání způsobí v krátko i střednědobí vždy poměrně výrazné zpomalení práce. Kdybych měl jistotu, či alespoň slušnou naději, že z dlouhodobého hlediska to bude přínos, budu pro. Zatím mě ale nové Xcode přesvědčuje, že je to pěkně nedomyšlenej bazmek :(

Aby mě někdo nenazýval zatrpklým nesnášenlivcem nových věcí – po výrazném vylepšení IDE volám už kolik let! Ono je trochu pro ostudu, když za mnou ve firmě přijde vývojář pro Windows a zeptá se, jestli neexistuje jiné IDE pro programování v Cocoa, protože Xcode je takovej zmetek, že se v tom nedá dělat.... a má z 80% pravdu! Visual Studio je, až na některé drobné detaily, skutečně o poznání lepší a rychlejší. Pak se člověk nediví, že na WWDC jsou semináře o Xcode jednou z nejkontroversnějších záležitostí, kde velká banda externích vývojářů v podstatě jenom spílá malé bandě interních....

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

RE: RE: ach ty inovace

Autor: smrt Muž

Založeno: 25.05.2011, 14:36

Muzes to pls trochu rozvest? Ja ve VS napsal spoustu kodu, v XCode vlastne ted jen zacinam, ale XCode4 mi pride vyrazne lepsi nez VS. Dokonce se mi libi i jedno okno v XCode4 oproti XCode3. Kdyz v XCode3 designujes UI a potom prepnes na editor kodu, okna se ti na plose smichaj a zacne v tom bejt binec. Ted se ti proste prepne "view" na editor kodu. Co se vam na tom nelibi?

No, nicmene, moje oblibene prostredi je stale terminal, vim, make, c++, cgdb. V objective-C mi chybi namespaci. Dost mne zarazilo, kdyz apple v dokumentaci doporucuje si zvolit 2 pismenka a pak je predrazovat pred jmeno kazde tridy. Trochu fosilni styl programovani. No a taky mi chybi sablony.

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

RE: RE: RE: ach ty inovace

Autor: pf Muž

Založeno: 25.05.2011, 14:58

A ja mam dojem, ze by mel Apple nad celej svuj vyvojarskej ekosystem zalozenej na ObjC nadsadit jeste robustni implementaci Smalltalku, ktera bude moci transparentne pouzivat objekty z ObjC Frameworku (technicky zadnej problem) - to by byla naprosta bomba a dohnali by vlak dynamickyho skutecne objektovyho programovani... a takhle muzeme pokracovat do aleluja :) no aspon tady ty clanky taky nekdo okomentuje, ze... tolik prace, tolik dilu!

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

RE: RE: RE: RE: ach ty inovace

Autor: smrt Muž

Založeno: 25.05.2011, 16:17

jj, za clanky dik. Btw, ceska literatura o objC je katastrofalni. Napriklad toto: http://knihy.cpress.cz/ob
jective-c-20.html

Nech
apu jak nekdo muze napsat takovej bastl.

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

RE: RE: RE: RE: RE: ach ty inovace

Autor: OC Muž

Založeno: 25.05.2011, 16:27

Kochan je zlo intergalaktických rozměrů.

Říkal jsem jim to (přišli za mnou, abych jim dělal korektury; poslal jsem je s tím kamsi, že jediná šance, jak u této knihy udělat korektury, je napsat ji od základu celou znovu).

Nedali na mne, přiměli jiného nešťastníka, že jim to zkorektal (měl je s tím také poslat někam, medle), a vydali to :(

Jinak leccos o ObjC se lze dočíst zde:

http://www.grada.
cz/cocoa_4938/kniha/katal
og/

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

RE: RE: RE: RE: RE: RE: ach ty inovace

Autor: hroch32 Muž

Založeno: 25.05.2011, 17:36

Dlouho mi o té korektuře vyprávěj.... :-/

Ale řeknu Ti, že AppleScript byla ještě větší pruda. U Kochana člověk aspoň ví, že dement je autor a jazyk je OK, v druhém případě to je zcela naopak. iPhone byl dobrej z obou stran.

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

RE: RE: RE: RE: RE: RE: RE: ach ty inovace

Autor: hroch32 Muž

Založeno: 25.05.2011, 17:39

A ještě (ne, že bych Ti chtěl dělat reklamu ;-) ), ale mně se víc jak ta o Cocoa líbila ta o Objektovém programování: http://www.grada.cz/objek
tove-programovani_4055/kn
iha/katalog/

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

RE: RE: RE: RE: RE: RE: RE: RE: ach ty inovace

Autor: smrt Muž

Založeno: 25.05.2011, 19:41

no, ja davam prednost tem zahranicnim.
http://oreilly.com/cata
log/9781449388430
http:/
/oreilly.com/catalog/9780
596804817

oboje koupite jako ebook bez DRM

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

RE: RE: RE: RE: ach ty inovace

Autor: OC Muž

Založeno: 25.05.2011, 16:29

Smalltalkem budoucnosti je patrně Ruby. A to je v Mac OS X plně podporované včetně bridge na knihovny Cocoa.

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

RE: RE: RE: ach ty inovace

Autor: hroch32 Muž

Založeno: 25.05.2011, 17:49

Ono už je to nějakou dobu, co jsme to probírali, takže si z toho moc nepamatuju, ale bylo tam fakt dost věcí, co Xcode neumělo vůbec a VS v pohodě. Jednou ze zásadních připomínek bylo, že doplňování kódu v C++ je prakticky nepoužitelné. S čímž souhlasím, ono ani třeba při práci s Core Foundation není zrovna dobré. A minimálně pro Obj-C je v Xc4 výrazná změna k lepšímu.

Na druhou stranu musím přiznat, že spoustu věcí, které kluci Xcode vyčítali, jsem jim prostě a jednoduše ukázal na dvě klepnutí myší ;-) Pak změnili výčitku, na obligátní: Nj, ale to je jako se vším na Applu, člověk si to musí složitě nastavit, než to vůbec jde používat. Mám tenhle argument rád asi stejně jako "Mám Maca a je děsně intuitivní." Za obojí bych trhal jazyk...

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

RE: RE: RE: ach ty inovace

Autor: hroch32 Muž

Založeno: 25.05.2011, 18:09

Stran jedno/více oken – výhoda byla právě v tom, že Xcode 3 umožňovalo obojí, dle preferencí uživatele. Já používal jedno, a přesto se mi čtyřka moc nezamlouvá. Není to ale o jednom okně, spíš o tom, že si člověk nemůže některé prvky místo v okně zobrazit jako paletku (objekty pro IB jsou asi nejpalčivější problém) – připadá mi to, jako bych v Pages měl na pravo stránky a nalevo inspektor, obojí na pevno... Pravda, s třiceti palcovým monitorem by mě to asi tak netrápilo.

Pak mi vadí takové různé nedodělky (snippets nemají klávesové zkratky, objekty v knihovně pro IB se nedají seřadit do skupin, toolbar nejde upravit....).

Jedna hodně zásadní věc je, že integrovaný IB nepodporuje pluginy! Za to bych je odstřelil. Strávil jsem asi rok přípravou plugin pro IB 3, které byly naprosto odlišné od těch v IB 2, a mnohem složitější, přičemž Apple vychvaloval, jaká je to skvělá technológie. Ani ne tři roky na to ji s klidem zahodí! To se pak nemůžou v Cupertinu divit, že jim spousta programátorů spílá a odmítá pro OS X, neřkuli pro iOS, kde je to ještě mnohonásobně horší, vyvíjet profi programy. Do nich totiž musíte napřed investovat obrovské peníze, které se následně musí vrátit. A pokud nemám jistotu, že Apple zásadně nezmění podmínky, čímž by mi znemožnil investované prostředky vydělat zpět, prostě do toho nepůjdu. A nejsem ani zdaleka sám, málo kdo chce, haby jeho byznis dopadl takhle: https://www.iflowreader.c
om/Closing.aspx

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: