Programování pro iOS - 44. Předvolby 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

 

Odkud pochází fotografka Anne Erhard?

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

Seriály

Více seriálů



Software

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

1. června 2011, 00.00 | 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ě.

Jak jsme si slíbili na konci minulého dílu našeho seriálu, dnes se budeme věnovat předvolbám Xcode 4 – ostatně, projít si předvolby a upravit je podle vlastních představ by vždy mělo být prvním krokem práce s libovolnou novou aplikací... možná druhým, po přečtení návodu :)

Přístup k předvolbám je zcela standardní prostřednictvím hlavní nabídky ("Xcode"), a okno předvoleb má také zcela standardní strukturu, v níž je při horním okraji řada ikon, representujících jednotlivé panely předvoleb.

General

V prvém panelu jsou vedle celkem běžných předvoleb pro mechanismus automatického ukládání a pro reaktivaci umlčených varování dvě poměrně důležité položky, jež úzce souvisí právě s novinkami Xcode 4.

"Live Issues" je anglický termín pro to, co jsme v minulém článku opsali slovy "průběžné zobrazování chyb, jež by jinak odhalilo až sestavení". S trochou na této úrovni nepodstatného zjednodušení si to můžeme představit tak, že kdykoli uděláme v nějakém zdrojovém souboru nějakou změnu, Xcode malou chvilku počká, a pak se pokusí projekt znovu sestavit – použivši k tomu stávající (byť i na disk neuložený) obsah zdrojového souboru. Pokud se přitom objeví nějaká chyba nebo varovné hlášení, indikuje je nevtíravá ikonka vlevo (a téměř neviditelný trojúhelníček, který přímo v textu ukazuje místo, kde k problému došlo).

Ačkoli vím nejméně o jednom programátorovi, jemuž tato služba ukrutně vadí, já sám jsem jí nadšen: už mnohokrát mne upozornila na drobné přehlédnutí nebo překlep, kvůli nimž bych jinak musel sestavení projektu opakovat. Doporučuji proto "live issues" ponechat zapnuté; pokud byste zjistili, že vám tato služba osobně nevyhovuje, můžete se jí zbavit právě zde:

Druhá skupina předvoleb úzce souvisí s novou strukturou Xcode: jejím prostřednictvím můžeme určit, co a ve kterém editoru se objeví, pokud klepneme – klepneme s klávesou Alt – poklepeme na nějaký objekt v Navigátoru.

Většina variant je podle názvů poměrně zřejmá, snad jen "Asistent" může být poněkud matoucí: prozatím nám bude stačit, že takto nyní Apple nazývá druhý (i třetí, čtvrtý čí libovolný další) soubor, otevřený v samostatném panelu uvnitř editoru zdrojového textu.

Behaviors

Druhý z panelů předvoleb je pro začátek možná nejdůležitější. Připomeňme, že u Apple nové Xcode navrhli s představou "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"; naštěstí měli ale pořád tolik soudnosti, že detaily tohoto přepínání ponechali konfigurovatelné – a to poměrně bohatě.

V levém sloupci panelu předvoleb "Behaviors" jsou bezmála dvě desítky situací, na něž Xcode dokáže nějak reagovat. Pro každou z nich můžeme nezávisle na ostatních určit, jak ta reakce má vypadat a co vše má zahrnovat: kromě přepínání jednotlivých funkčních bloků v okně je možné automaticky přepínat taby, a dokonce i spustit skript:

Každému samozřejmě vyhovuje jiný postup; domívám se ale, že pro většinu programátorů – přinejmenším těch, již byli zvyklí pracovat v Xcode 3 – bude nejvhodnější nejprve projít tato nastavení a pečlivě povypínat všechny automatické změny a přesuny, u nichž si nejsou zcela jisti, že o ně stojí.

Bohužel, jakkoli situací, jež mohou akce vyvolávat, není málo, některé poměrně zásadní mezi nimi chybí. Jak uvidíme později, až si budeme ukazovat práci s XIBy, mimořádně vhodné by např. byla akce "Kdykoli se otvírá v editoru XIB, aktivuj panel 'Utilities'"; to ale – nakolik je mi alespoň známo – možné není.

Text Editing

Přeskočme panel "Fonts & Colors" – zde není celkem nic zajímavého, pokud ovšem netrváme např. na tom, abychom měli zelený zdrojový kód a fialové poznámky na černém pozadí – a podívejme se rovnou na služby panelu "Text Editing".

V panelu pro práci s textem nalezneme dvě záložky; prvá z nich se nazývá "Editing", druhá "Indentation" – je samozřejmě otázka, zda by nebylo lepší a přehlednější, kdyby každý z panelů měl vlastní ikonu, ale s tím celkem nic nenaděláme.

V prvé ze záložek můžeme vypnout automatické doplňování – to v Xcode 4 funguje poměrně dobře, ale je daleko agresivnější než tomu bývalo v Xcode 3, a bohužel nelze nastavit nějakou "polovičatou" variantu, platí buď všechno nebo nic. Je také příjemné, že lze vypnout "Balance brackets", čili doplňování levé závorky: ta služba by byla velmi příjemná, nebýt bohužel toho, že poměrně často doplní levou závorku jinam, než tam, kde ji opravdu potřebujeme:

Druhý panel – "Indentation" – je téměř totožný s nastaveními z Xcode 3; v podstatě v něm může vše zůstat ve standardním nastavení a nestojí za to si jej ani ukazovat.

Za zmínku možná stojí to, že je zde snad poněkud neintuitivně skryta volba pro automatické lámání nebo nelámání řádků ("Wrap lines"): já sice naprosto nedokáži pochopit, jak vůbec může někdo programovat bez automatického lámání, ale lidé jsou různé :)

Key Bindings

Panel Key Bindings, umožňující velmi pohodlně definovat a měnit význam nejrůznějších klávesových zkratek, ovšem také není žádnou novinkou – služba sama funguje už řadu let v libovolné korektně napsané aplikaci (ačkoli GUI pro ni obvykle schází), a panel sám byl k dispozici v Xcode 3 v prakticky totožné podobě.

Stojí ale za to si kombinace projít a povšimnout si, že řada se jich změnila (např. přepínání mezi implementací a hlavičkovým souborem, "odjakživa" alt-command-šipka nahoru, se nyní jmenuje "Jump to Next Counterpart", a namísto altu je jeho součástí přepínač ctrl (ve skutečnosti jde o službu nepatrně odlišnou, ale většinou si toho v praxi ani nevšimneme).

Documentation

V dokumentačním panelu se můžeme přihlásit k balíkům dokumentace, poskytovaným webovými servery – takovou dokumentaci samozřejmě nabízí Apple, a v principu ji mohou nabízet i třetí firmy, ačkoli v současnosti nevím, zda existuje praktický příklad.

V dolní části okna lze otevřít panel, který zobrazí detailní informace o zvoleném dokumentačním balíku:

Pokusíme-li se srovnávat dokumentaci v Xcode s informacemi na Webu, zjistíme, že dokumentace v Xcode je většinou poněkud starší. To je v současnosti normální: firma Apple relativně nedávno zrychlila vydávání dokumentačních novinek na Webu, ale jejich zpracování pro updaty z Xcode frekvenci nezměnilo – ta zůstává na původním stavu, velmi přibližně jednou měsíčně.

Ostatní...

... panely můžeme s klidným svědomím přeskočit.

Zatímco v Xcode 3 bylo poměrně důležité pro pohodlnou práci změnit standardní mechanismus ukládání mezivýsledků překladu (a podobných věcí), v Xcode 4 je naopak rozumný způsob standardem – přec jen se firma Apple v lecčems za tu dobu poučila :) – a měnit jej proto nemá smysl. Panel "Locations" nás proto zajímat nebude (i to málo, co by v něm mohlo stát za zmínku – totiž konkrétní umístění sestavených aplikací apod. –, nalezneme v okně "Organizer", a až si je budeme popisovat, ukážeme si detaily).

Význam panelu "Source Trees" zůstal přesně stejný, jako tomu bylo v Xcode 3 – lze zde definovat pojmenované symbolické kořeny, od nichž se pak v projektech může odvíjet umístění referovaných objektů. Pokud běžně přenášíme projekty s řadou složitých vzájemných vazeb mezi počítači, na nichž je velmi odlišná struktura složek, může se to hodit; většinou ale tato služba prostě nestojí za to.

Konečně pak ti, kdo zpracovávají projekty takového rozsahu, aby se jim vyplatilo používat distribuovaný build – k jehož nastavení slouží poslední z panelů – budou jistě vědět co a jak i bez nápovědy :)

Příště se vrátíme k hlavnímu oknu a konečně otevřeme nějaký projekt – a na něm si ukážeme, jak konkrétně práce v Xcode 4 vypadá.

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

 

Kéž by tak…

Autor: Milan Vít Muž

Založeno: 01.06.2011, 01:01
Odpovědí: 0

Kéž by tak šlo nastavit chování automatického doplňování kódu, tak, jako to šlo v Xcode 3: mám na mysli drobnosti jako mezera mezi typem a názvem proměnné u přetypování ((typ)proměnná vs. (typ) proměnná), nebo věci jako názevArgumentu:argument vs. názevArgumentu: argument.

Ačkoli vím, že se vymykám konvencím, zkrátka preferuji druhý způsob, a Xcode 4 mi, pokud vím, nenabízí žádnou možnost návratu k němu.

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

RE: Kéž by tak…

Autor: OC Muž

Založeno: 01.06.2011, 01:13

Tohle jsem zatím neměl moc čas zkoumat, ale _myslím_, že autocompletion je v /Developer/Library/Xcode/
XCUserScripts.plist -- takže ačkoli na to nejsou přímo předvolby, mohlo by to být upravovatelné.

Ale mohu se samozřejmě mýlit, jak píši, moc jsem se tomu zatím nevěnoval.

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

RE: RE: Kéž by tak…

Autor: Milan Vít Muž

Založeno: 03.06.2011, 01:15

Omlouvám se za pozdní odpověď, trošku jsem pozapomněl, že jsem zde vlastně komentoval :-)

Díky za nakopnutí, soubor jsem prozkoumal, ale z jeho obsahu moudrý bohužel nejsem. Trocha Googlení mě zavedla na StackOverflow.com, konkrétně na [1]. Nejlépe hodnocený příspěvek říká, že by určitou pomoc mohl skýtat soubor /Developer/Library/Xcode/
PrivatePlugIns/IDECodeSni
ppetLibrary.ideplugin/Con
tents/Resources/SystemCod
eSnippets.codesnippets, což částečně sice pravda je, ale ne zcela úplně – vše v něm nastavit nelze, nepletu-li se.

Tak jsem se odhodlal bug nahlásit přímo Applu, bez naděje na odpověď, jen z čistého zoufalství a, přiznejme si to, „nasranosti“. A světe div se, já i přesto reakci dostal! Nijak zásadní, ale tak snad…

Hello Milan,

This is a follow up to Bug ID# 9531533. After further investigation it has been determined that this is a known issue, which is currently being investigated by engineering. This issue has been filed in our bug database under the original Bug ID# 8441526. The original bug number being used to track this duplicate issue can be found in the State column, in this format: Duplicate/OrigBug#.

Th
ank you for submitting this bug report. We truly appreciate your assistance in helping us discover and isolate bugs.

Best Regards,

Developer Support
Apple Worldwide Developer Relations

Mňo, teď jen kdybych měl přístup k bugu 8441526. Což, pokud vím, bohužel nemám. Ale tak budu doufat, že na tom opravdu někdo pracuje, a do té doby si budu kód pracně formátovat ručně, nejspíš.

[1] http://stackoverflow.com/
questions/5120343/xcode-4
-with-opening-brace-on-ne
w-line

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

RE: RE: RE: Kéž by tak…

Autor: hroch32 Muž

Založeno: 03.06.2011, 13:05

Taky pozdě, nějak jsem mimo net.

Trochu jsem zmatený, které to číslo bugu je správné (9531533 vs. 8441526). Ale je to jedno, na openradaru není ani jeden z nich :( A Apple vcelku pochopitelně databázi bugů nezveřejňuje.

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

RE: RE: RE: RE: Kéž by tak…

Autor: Milan Vít Muž

Založeno: 06.06.2011, 10:25

Vyšší číslo začínající devítkou je číslo mého, duplicitního bugu, nižší číslo pak číslo originálního bugu :-)

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

problem s uploadom do app store

Autor: Peter Muž

Založeno: 01.06.2011, 07:52
Odpovědí: 0

Zdravim, mam problem s uplaodom do app sotre, nikto mi na moju otazku na roznych forach neodpovedal. Vie mi niekto zasvateny poradit?

Mam vytvoreny app record v iTunes connect, ale v XCode ho nevidim - pritom vsetko je vyplnene spravne. itunes Connect aplikacia ma stav "Waiting for upload" (Stlacil som tlacitko ready for upload) - dostal som email ze mozem uploadnut moju aplikaciu. no ked dam v XCode 4.0.2 Product-Archive a ptm Validate(Alebo Submit) a zadam spravne prihlasovacie udaje, nevidim moj zaznam z aplikacie(No value) (Iba certifikat). Vie mi niekto poradit? Najlepsie by bolo pokecat nejako onlajn. Ale uvitam akekolvek rady.
Podotykam, ze bundleid a verzia su zhodne. Ako som spominal - aplikacny zanzam je v stave "Waiting for upload" Problem je ze ked chcem uploadnut, nemam comu priradit archiv, co kua robim zle? :(

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

RE: problem s uploadom do app store

Autor: Marek Muž

Založeno: 01.06.2011, 13:30

Skontrolujte si v KeyChain, ci mate 2 certifikaty:
3rd Party Mac Developer Applicaion: a 3rd Party Mac Developer Installer: .
Hoci date sprievodcu pri vytvarani certifikatov, a hoci vyberiete , tak to vygeneruje len jeden. Aspon mne sa to stalo.
A potom mozno sa snazi pouzit nespravny certifikat.
A v Xcode 4 zatial nepomozem, kedze som zatial ostal u 3 ;)

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

RE: RE: problem s uploadom do app store

Autor: Peter Muž

Založeno: 01.06.2011, 14:05

Certifikaty v keychain su ok a 2 (app a installer) este som premyslal ze skusim application loader 1.4 ale nemozem najst jeho instalacku...

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

RE: problem s uploadom do app store

Autor: OC Muž

Založeno: 01.06.2011, 22:25

Moment, tomuto:

> nevidim moj zaznam z aplikacie(No value) (Iba certifikat)

úplně nerozumím. Kde jaký záznam? Kde jaký certifikát?

Podrobný postup uploadu pro Xcode 3 byl velmi podrobně a s ilustracemi rozebrán tady:

http://www.mujma
c.cz/art/sw/CocoaIOS_12.h
tml

pro čtyřku se tím teprve budeme zabývat (zrovna tohle v ní nemám zatím ani sám do detailu nastudované).

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

RE: RE: problem s uploadom do app store

Autor: Peter Muž

Založeno: 02.06.2011, 06:42

V XCode 4 sa aplikacia uploaduje tak, ze
1. Vytvori sa Application record v iTunes Connect a musi byt v stave Waiting for upload.
2. V XCode sa vyberie menu - project-archive a po kliknuti na Validate(alebo Submit) si vypita prihlasovacie udaje do iTunes Connect-u a v dalsom kroku by mal zobrazit: Zoznam Application records a certifikat. Problem je ze ja ten application record nevidim.
Vdaka za link - priznam sa prehlaiadol som tu cast.
Kedy sa dockam postupu pre XCode 4?

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

RE: RE: RE: problem s uploadom do app store

Autor: .coder Muž

Založeno: 02.06.2011, 13:43

takze pri pridavani novej aplikacie ste zadali zhodne CFBundleSignature a CFBundleIdentifier s tym co mate uvedene v aplikacii? ked sa tieto zhoduju a status je waiting for upload, tak to musi najst.

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

RE: RE: RE: RE: problem s uploadom do app store

Autor: Peter Muž

Založeno: 02.06.2011, 14:23

CFBundleSignature? toto veru nie, to som prehliadol. Kde to vycitam z iTunesConnect alebo odkial? Vlozit do Info.plistu projektu to uz viem.
Moze byt problem v tom.

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: