Az iOS 7 és a Mac OS X Mavericks-szel új fejlesztői környezet is jön, ami elsőre egész jónak tűnik! Mondjuk mióta felraktam azóta a régi szimulátor processzével néha megszűnik a kapcsolata a Xcode 4.6-nak, de hát valamit valamiért.
Kinézet, alapvető újdonságok
Az Xcode 5. alap koncepciója, hogy miközben használod valóban a kódra koncentrálhatsz és nem kell az Xcode-dal foglalkozni. (Eddig nem ez volt a koncepció? Lol.) Tehát:
- Van új Toolbar, ami sokkal kisebb, mint az eddigi.
- Az egész kicsit megváltozott, több a szöveg, kevesebb az ikon és a sallang.
- A Help külön ablakot kapott, már nem az Organizerben van.
- Xcode 5 sokkal gyorsabb, mint az Xcode 4, lényegében majdnem minden 2x sebességgel megy, mint az előző verzión... és tényleg. Kicsit lassan indul, de utánna hasít!
Source Control
- Új projektet rögtön kicsekkolhatunk a gyorsindító menüből.
- Új Source Control menüpont a szerkesztőből, tehát minden gyakori művelet elérhető a szerkesztőből, ami mindig az adott kontextushoz igazodik (tehát vagy commit van, meg branch vagy mondjuj check-out).
- Rögtön a szerkesztőből lehet branchelni, brachet váltani, mergelni, ami nagyon egyszerű.
- A verziókezelési infók beépülnek a szerkesztőbe (egészen pontosan a Quick Help-be), vagyis látod, hogy melyik sort ki változtatott meg, handy!
- Ki lehet kapcsolni a verziókezelést a fejlesztő környezetben, ha más külső toolt használsz.(<- ez is nagyon kellett már!)
Automatic Configuration
- Megadod a Developper ID-d és tud mindent: automatikusan kezeli az összes profilt, nem kell szórakozni a letöltéssel. Tehát minden profilokkal, tanusítványokkal kapcsolatos dolgot automatikusan intéz a fejlesztő környezet, hurrá!
- Az Apple szolgáltatások (pl. iCloud, GameCenter, In-App Purchase) egyetlen kapcsolóra redukálódtak a projekt tulajdonságoknál. Be sem kell lépni a dev portálra (vagy az iTunes Connectbe), minden megy az IDE-ből.
Interface Builder újdonságai
- Autolayout középpontba került (használható maradt a Springs and struts is), ehhez kapcsolódóan jött be egy csomó újdonság:
- Xcode mostantól nem pakol be magától kényszereket és nem változatja meg a tieidet.
- A hiányzó kényszereket be lehet vele rakatni, ha kell.
- Jelzi, ha nincs elég kényszer pl. hiányzik a magasságára vonatkozó kényszer vagy pl. a verikális pozíciót nem tudja meghatározni.
- Asset Catalog: ez tárolja az összes erőforrást Xcode 5-ben. A fejlesztő környezet mostantól tudja magától mire van szükség (splash-screenek, ikon méretek, elnevezési konvenciók) stb. Az összes hiányzó erőforrást drag-and-droppolva be lehet rakni a neki megfelelő helyre, nem kell szórakozni az elnevezésel, plusz mutatja, hogy mi hiányzik, milyen méretben, stb.
- Preview: meg lehet nézni, hogy az adott Storyboard scene hogyan fog kinézni majd a device-on, aminek a verziója is megadható és mivel a iOS 6 <-ban és az iOS 7-ben teljesen máshogy néznek ki a beépített elemek, így ez egy elég hasznos funkciónak tűnik.
Fordító
- Kiesik a GCC, csak LLVM fordító van Xcode 5-ben (ezzel forították az iOS 7-et, Mavericks-et és magát az Xcode-ot is, a bátor cupertinói srácok).
- Nagy gyorsítást értek el azzal, hogy a API-k header-jeiből csináltak egy adatbázist (Module néven) és a fejlesztő környezet mostantól ezt az adatbázist használja, hogy megtaláljon valamit, nem parzolja fel a több 100 header fájlt. Korábban ugyanis, amikor beraktál egy frameworköt, akkor neki állt feldolgozni azt (UKit alapból nagyon sok header, ami ráadásul további header-öket importál). Ráadásul a Module automatikusan linkeli a frameworköket, magától kezeli őket, egyáltalán nem kell hozzáadogatni a projekthez.
- C++ 11 összes fontos feature támogatottá vált.
- LLVM Auto-vectorizer: a vektorműveletekké változtatható kódrészeket automatikusan azzá alakítja a gépi kódban.
- Felparzolja a megjegyzéseket és automatikus Quick Help-et csinál belőle.
- Static-analyzer sokkal jobb, mint eddig (hiszem, ha látom). Működik C++-szal is és mostantól egyetlen fájlra is bekapcsolható.
ARC
- Maga az Xcode 5.0 is ARC-kal készült (ezért olyan stabil)! A GC is eltűnik az OS X fejlesztésből.
Debugger
- LLDB van csak a gdb-t kidobták.
- Mostantól mutatja a kódban, hogy éppen minek mi az értéke, és a belső változókhoz sem kell már po!
- Sőt, az erőforrások tartalmát is egyből mutatja, pl. képeket vagy szineket.
- Breakpoint funkciók mind egy helyre kerültek a Debug bar-ra.
- Debug Gauges: a futó alkalmazás "light-weight" teljesítmény infói is láthatóvá váltak a debug módban (nem kell hozzá Instruments), egészen pontosan: CPU, memória, iCloud, energia felhasználás és OpenGL ES mérőszámok. Elvileg kevesebb, mint 1%-át viszik a max teljesítménynek. A részletes adatokat egy kattintással továbbra is az Instruments-ből érhetők el. A demóból az jött lett, hogy a túlzott memória használathoz kapcsoló hibák felderítésére egész jól használható.
Teszetlés
- Új Test Navigator tab, ahol látod a teszteseteket és onnan egyből tudod a kijelöltetet futtatni.
- Új tesztkeretrendszer: XCTest az OCTest helyett.
Bots
- Continous Integration támogatásra.
- OS X szerveren futó tesztelő botok, amelyek analizálják a kódot, futtatják a teszteseteket stb, Maguktól kicsekolnak a verziókezelőből aztán neki állnak a melónak, de elég jól konfigurálhatók, hogy mit is csináljanak. De pl. aláírni is tudnak tehát egész éjszaka futnak a botok, de reggel már ott vannak a friss IPA-k is, amiket lehet tovább adni a UI tesztereknek pl.
- Központi UI ahol lehet nézni, hogy éppen milyen botok futnak és mit csinálnak stb.
- Sajnos Mavericks kell az Xcode szerverhez, viszont futhat ugyanazon a gépen is, mint ahol a kliens appok vannak.
Összességében az előadás és pár napnyi használat után egyértelműen pozitívak a benyomásaim a fejlesztői környezetről, csak így tovább!