Zápisník z WWDC: Nejrychlejší profesní růst, jaký můžete zažít

Minulé pondělí v 19 hodin našeho času měl Apple v McEnery Convention Center uprostřed San José keynote. O té už toho padlo spousta, ba dokonce vyšlo speciální vydání iPure věnované pouze představeným novinkám. Byla to jedna ze dvou (většinou) velkých keynote, které Apple každý rok pořádá.

Pro většinu lidí je zajímavější ta v září, která přináší nové iPhony a často i další hardware. Pro nás vývojáře je ve skutečnosti ta červnová mnohem důležitější – nejen proto, že přináší nové systémy, které dostaneme k testování, ale hlavně proto, že tím začíná každoroční Apple Worldwide Developers Conference, známá jako WWDC (anglicky zkráceně „DapDapDC“). Jde o týdenní konferenci pořádanou Applem pro vybranou hrstku iOS, tvOS, watchOS a macOS vývojářů a designérů z celého světa.

Ano, WWDC není pouze keynote, je to týden plný přednášek, laboratoří, schůzek s vývojáři Applu, zábavy a skvělé atmosféry. Měl jsem letos štěstí se této skvělé akce zúčastnit a rozhodl jsem se vám takovou konferenci přiblížit i z druhé strany než pouze z pohledu obyčejného uživatele jablečných věcí.

Předně si pojďme říct obecnější věci. Jak už bylo uvedeno na keynote, letošního WWDC se zúčastnili vývojáři ze 77 zemí. Celkem bylo z dvaceti milionů registrovaných Apple vývojářů vybráno okolo 2 500 šťastlivců. Už jenom to číslo je ohromující – potkávat každý den tolik kolegů z oboru, lidí, kteří stojí za aplikacemi, jež třeba denně používáte, je skvělý pocit. A ještě lepší pocit je, jít po budově v tričku aplikace, za kterou stojím (ClassDojo), a být zastavován ostatními, včetně inženýrů z Applu, protože aplikaci znají a denně ji používají. Skvělé!

Na organizaci takového počtu lidí byl Apple po letech pořádání už naprosto připraven, desítky až stovky lidí v oranžových tričkách a plní energie nás denně vítali a navigovali po celém areálu. Ani jednou za celých pět dní se nestalo, že by některá z přednášek nebo laboratoří začala o půl minuty později. Ani jednou nebylo málo jídla ke snídani, obědu, ani jednou jsem nezažil jakýkoliv problém. Za tohle smekám a doufám, že v tomhle se můžeme při organizování čehokoliv skutečně přiučit.

Celý týden byl, s výjimkou pondělí, rozdělen na přednášky a laboratoře, které probíhaly v době od 9 do 18 hodin. Přednášky probíhaly čtyři současně a laboratoří dvanáct naráz. Každý si tak zkrátka musel vybrat, co ho zajímá nejvíce, protože všechno stihnout nešlo. Vedle toho běžel také doprovodný program a v úterý a ve čtvrtek taktéž večerní akce.

Týden plný informací den po dni

Rozhodl jsem se vám zprostředkovat dění na WWDC18 formou jednoduchého deníku den po dni, abyste si dokázali představit, jak takový vývojářský týden v San Francisku vypadá. Jak jsem zmínil, zdaleka jsem nestihl absolvovat všechny přednášky a akce, protože to ani časově není možné, ale vše můžete najít na webu Applu.

Pondělí

Vzhledem k tomu, že jsme měli s kolegou Honzou, který letěl se mnou, ubytování přímo u WWDC od pondělí do pátku, spali jsme ještě v neděli v San Francisku, kde normálně při pobytu ve Spojených státech bydlíme. Vstávat v půl sedmé, zabalit, v sedm chytit Uber do San José a doufat, že příjezd po osmé hodině ráno bude – na ubytování se na hotelu a následnou registraci na WWDC – dostatečný.

Podařilo se. Je zhruba 8.30 a už mám svojí badge a malé dárky u sebe. To znamená, že jsem registrován a celý týden může začít. Už od brzké hodiny ranní se u vchodu tvořila značná fronta – dostat se na keynote naživo chce každý, a ne všichni to štěstí ve výsledku budou mít. Protože dovnitř se začalo pouštět trochu dřív, stavím se v 8.40 do fronty, která je zhruba taková, jakou vidíte na fotce.

Protože sál je větší, než jsem očekával, podařilo se nám vejít dovnitř a dokonce zabrat zhruba sedmou řadu lehce na boku. Postupně se všechna místa plní, přichází desátá hodina a keynote začíná – pro mě prvně naživo.

O tom, co keynote přinesla a nepřinesla, nebo o jejím průběhu se tu teď bavit nebudeme, ale předem říkám: to, co na ní padlo, není ani zdaleka vše, co systémy skutečně obsahují a přináší, nebo co Apple představil ve zbytku týdne. K tomu se dostaneme postupně.

Po skončení keynote je k dispozici oběd a do 14.30 máme volno. To většinou znamená jít pracovat, připravovat se na následující program nebo se zabavit volným programem, například v AR koutku.

Ve 14.30 začíná druhá ze tří pondělních přednášek, Platforms State of the Union. Ta je cílená na vývojáře jako úvodní obecnější přehled novinek v Xcode, vývojových jazyků a frameworků. V 16 hodin je konec, a protože mě poslední část programu (vyhlašování Apple Design Awards) úplně nezajímá, vydávám se do nového sídla Applu. Apple Park je odtud pár kilometrů.

Od 18.30 pro nás Begun, naše B2B manažerka v Applu pro střední a východní Evropu, pořádá malou afterparty společně s dalšími zeměmi, které pod ní spadají. Je třeba dorazit na čas, protože od 20 hodin se musíme přesunout na jinou akci, tentokrát #firebaseparty pořádnou Googlem pro Google Certified Agencies, do kterých naše vývojářské studio STRV už druhým rokem patří. Značně společensky unaven se okolo jedenácté večer vracím na pokoj a připravuji první krátký report z WWDC pro CzechCrunch.

Úterý

První přednášku mám na programu klasicky od devíti hodin, takže žádné vyspávání a pěkně po osmé hodině přijít na snídani.

Je 9 hodin – začínáme!

9:00 Session: What’s new in Swift
Představují se novinky ve Swift 4.2, který Xcode přináší, a také naznačují některé z novinek, které se chystají ve Swift 5.

10:00 Session: Live Screen Broadcast with ReplayKit
ReplayKit je interní framework, který umožňuje nahrávání obrazovky, zvuku aplikace, zvuku mikrofonu a nahrávání z kamery současně. O něm je tu řeč.

11:00 Session: Automatic Strong Passwords and Security Code AutoFill
Novinky v oblasti zabezpečení a spolupráce aplikací s Klíčenkou jsou v iOS 12 velké. Aplikace mohou nově při registraci navrhovat e-mail v závislosti na tom, jaký už používáte v Klíčence pro jiné služby, automaticky nabízí silná hesla stejně jako Safari, nebo předvyplňují kód z SMS při dvoufaktorovém ověření. Takže pokud se přihlásíte z nového zařízení, na které vám přijde SMS, aplikace si kód z ní vezme a sama pochopí, že je správně – už žádné přepisování a pamatování si šestimístných čísel!

12:00 Lab: Safari, WebKit, and Password AutoFill
Protože s WebKitem jsou na iOS už dlouho problémy, a novinky v iOS 12 mě fakt zaujaly, rozhodl jsem se vydat na svojí první Lab, abych mohl toto téma probratpřímo s vývojáři daných částí iOS. Skvělá zpráva je, že iOS 12 kompletně přepisuje chování klávesnice a nově se QuickType Bar pro nabízení hesel a e-mailů při přihlášení bude ukazovat na všech klávesnicích, včetně té české, takže automatické přihlášení už bude fungovat i v našich končinách.

14:00 Session: Best Practices and What’s New with In-App Purchases
iOS 12 přináší trial verze, což konečně znamená možnost vyzkoušet si aplikace zdarma, aniž byste za ně museli rovnou zaplatit. To dosud bylo možné jen u aplikacích s předplatným. Velká změna, která je příjemná jak pro nás, tak pro uživatele. Současně se změnil způsob, jak nákupy testovat.

15:00 Lab: Core Data
Core Data je databáze a úložiště aplikací, které poskytuje přímo Apple. Dlouhou dobu nás trápí jeden problém, u kterého jsme nebyli schopni přijít na problém. Vyřešeno!

17:00 Session: Introducing Dark Mode
Tady asi není potřeba cokoliv příliš dodávat. Každého zajímá, jak novinku v podobě tmavého módu v macOS naimplementovat a jak se s ní popral sám Apple.

18:00 Koncert
Podvečerní koncert po konci oficiálního programu se konal přímo na Plaza před budovou WWDC.

Úterý bylo poměrně poklidné a to bylo fajn. Člověk se mohl rozkoukat, zjistil, jak vše funguje, podvečer nám zpříjemnil koncert s jídlem, který to celé hezky zakončil.

Středa

Nejnáročnější den celého týdne byla středa. Tedy alespoň pro mě. Program nabízel něco zajímavého každou hodinu a do toho ještě kombinoval Labs. Na většinu Labs mohl kdokoliv přijít jen tak, případně chvilku vystát frontu a chytit si inženýra Applu. Pak tu ale byly dvě speciální, na které se ráno mezi 7.00 a 7.30 mohl člověk registrovat. Každý den pak bylo náhodně vybráno zhruba šedesát šťastlivců, kteří mohli v předem dohodnutý čas na schůzku přijít.

Jednalo se o Labs „User Interface in your App“ a „App Store Review“. V první si najde tým designérů z Applu čas na vaší aplikaci a prochází s vámi uživatelské prostředí, v němž navrhuje různé změny a vylepšení. Ve druhé laboratoři se tým profesionálů z App Storu soustředí na změny v softwarovém obchodu, indexaci, optimalizaci a také pomáhá s případnými problémy schvalovacího procesu a dalšími záležitostmi.

Štěstí ve středu stálo při mně, a tak jsem se dostal na obě zmíněné Labs. Natěšen se tedy vydávám po osmé hodině na snídani a můj den může začít. Oběd jsem v nabitém programu nakonec vůbec nestihl.

9:00 Session: What’s new in Testing
Důkladný rozbor Xcode a novinek v něm, zejména týkající se běhu testů na multi-core procesor a podobně. Velice zajímavé a nemůžu se dočkat na finální verzi, až výsledky porovnám na celém projektu.

10:00 Session: Introducing ClassKit & ClassKit Lab
Vzhledem k tomu, čemu se věnuje aplikace ClassDojo, na níž už tři roky pracuji, mě téma ClassKit velice zajímalo. K mému zklamání je ale vše ve velice rané fázi a téměř nic zatím ClassKit neposkytuje. Jeho autoři nicméně ClassDojo znají a rádi by zůstali v kontaktu, aby si spoustu věcí mohli převzít od nás. To potěší!

11:15 Lab: Internalization Lab
Lokalizace jsou důležitou součástí naší aplikace. Je používána v téměř 180 zemích světa a tato Lab mi pomohla vyřešit některé problémy, které máme s right-to-left jazyky, a pomohla pochopit moderní praktiky, které nový Xcode nabízí.

11:30 Lab: UIKit and Performance Lab
UIKit je základní stavební systém iOS aplikací. Obsahuje vše, co se týká UI a designu/vzhledu. Performance bylo velké téma, hlavně co se týká Constraints, což jsou nástroje k vytvoření Auto Layoutu pro zařízení různých velikostí.

12:30 Lab: App Review & App Store Appointment
Jak už jsem zmínil, jedna ze dvou Labs, na které se člověk musí dostat výběrem Applu. Hlavním úkolem této laboratoře pro mě bylo zjištění nových podmínek schvalování aplikací a jak se popasovat s nákupy v aplikacích, které postupně zavedeme. Prošli jsme také optimalizaci App Storu, naší aplikaci na App Storu a další.

14:00 Session: What’s new in User Notifications
Notifikace. Obrovské téma posledních měsíců, de facto nejlepší nástroj pro cílení uživatelů a udržení jejich aktivity v rámci aplikace. iOS 12 přináší spoustu důležitých změn a novinek, včetně detailů o skupinových notifikacích.

14:30 Lab: User Interface Design Appointment
Druhá z Labs, na které musí být člověk vybrán. Půl hodiny se dvěma designéry Applu na UI a naší aplikací ClassDojo. Spousta zajímavých poznatků, které je třeba naimplementovat ještě během prázdnin.

15:00 Session: High Performance Auto Layout
Při stavbě aplikace se často dělají základní chyby. Tato Session šla do jádra UIKitu a toho, jak se Auto Layout vlastně staví a vypočítává. Pár změn dokáže s polozasekaného skrolování udělat plynulou uživatelskou zážitek bez větší práce. Skvělá přednáška!

16:00 Session: Intentional Design & Designing Fluid Interfaces
Dvě přednášky, které tentokrát byly od designérů a ne od vývojářů, za mě patřily k těm vůbec nejlepším za celý týden. Designéři Applu mluvili o tom, jak vznikal iOS pro gesta iPhonu X, jak vytvořit systém, který pouze nenabízí uživateli, co potřebuje, ale spolupracuje s ním, nebo proč dělat jednoduché aplikace, jež dokážou zautomatizovat zbytek procesu, který by jinak dělal uživatel.

Středa byla jediným dnem bez večerního programu a za mě osobně – naštěstí. Po celém dni jsem byl rád, že si můžu v klidu lehnout a všechno sepsat do dokumentů jako záznamy pro celý tým. Jsme za polovinou týdne!

Čtvrtek

Předposlední den začínal jako jediný trochu zamračeně, což znamenalo, že jsme se při venkovní snídani poprvé neopalovali. Mraky ale vydržely pouze asi do desáté hodiny ranní. Tentokrát pro mě téměř žádné Labs, ale pouze „odpočinkové“ přednášky.

9:00 Session: Building faster in Xcode
Kompilátor je poměrně složitá věc. A s příchodem více jader a paralelní kompilace ještě složitější. Přednáška zaměřená na linkování knihoven, dependencies, více spustitelných tzv. Targetů.

10:00 Session: The Life of a Button
Jak napovídá sám název, jedná se o přednášku o tlačítku. Celých 40 minut jenom o tom, jak vytvořit tlačítko, které sedí do designu aplikace a dělá přesně to, co má, a vypadá tak, jak ho uživatel má chápat napoprvé.

11:00 Lab: UIKit and AutoLayout
Čtvrteční Lab o UIKitu byla o něčem trochu jiném než ta středeční – na tuhle jsem zamířil kvůli navigační liště a novinkám, které přináší iOS 12 například ve Zprávách a přinesl iOS 11 v Kontaktech.

14:00 Session: A Tour of UICollectionView
Collection View dokáže nahradit tabulky. Dokáže vlastně nahradit téměř cokoliv a je to jeden z nejvíc mocných UIKit elementů. Přednáška zabývající se především jeho jednoduchou implementací s názornou ukázkou chyb, kterých se vývojáři dopouští, a jak je dohledat a opravit.

15:00 Session: Automating App Store Connect
Přejmenování iTunes Connect na App Store Connect byla pouze kosmetická změna. To hlavní se událo v jádru – Apple nyní poskytuje veřejné API k jeho App Store Connect a vývojáři mohou oficiálně začít pracovat s aplikacemi, uživateli, sales reporty a dalším bez nutnosti navštívení webové stránky Applu. Osobně tohle považuji za jeden z důkazů toho, jak moc se Apple otevírá komunitě a světu – dříve nemyslitelné věci se nyní skutečně dějí!

16:00 Session: Optimizing App Assets
Aplikace v dnešní době rostou co do velikosti. A rostou raketovým tempem. Vždyť třeba Facebook má skoro 350 MB při každé aktualizaci. A velký podíl na tom mají vložené obrázky, ikony a jiné „assety“. Jak s nimi správně pracovat, co používat a kdy, co přináší nový Xcode – přesně o tom byla tahle přednáška.

Program pro mě ve středu končil dřív, a tak jsem měl aspoň chvíli čas pracovat. Věděl jsem, že večer toho moc nezvládnu, protože se od 19 hodin vedle WWDC McEneryho centra koná Bash – Goodbye party + Koncert v jednom.

První hodinu hrál DJ, druhou byla velkým hostem kapela Panic at the Disco, kterou uvedl sám Craig Federighi, opět vtipnou formou, jak jsme od něj zvyklí i během keynote. Poslední hodinu hrál opět DJ. Spousta her, prostoru pro vzájemné seznamování se, jídla, alkoholu, a to vše samozřejmě po setmění sladěné do barev – je přece LGBT month!

Pátek

Poslední den: udělat check-out na hotelu, nechat si na něm kufry, vyrazit na poslední opalovací snídani na Plaza, absolvovat tři přednášky.

9:00 Session: Using Collections Effectively
Array, Dictionary, Data – to všechno jsou Collections a jejich využití je jedním ze základních stavebních kamenů programovacích jazyků. Jak je používat efektivně, jak ušetřit čas procesoru? Velice kvalitní přednáška na toto téma.

10:00 Session: Designing Notifications
Notifikace jsou dnes údajně nejefektivnějším oslovením uživatele a podnětem k jeho návratu do aplikace. iOS 12 přináší spoustu novinek, které nám vývojářům usnadňují práci s nimi a přidávají další možnosti do tzv. Rich Notifications.

11:00 Session: Understanding Crashes and Crash Logs
Každého vývojáře v jeho životě potká crash neboli pád aplikace. Někdy způsobený jeho chybou, někdy chybou systému, někdy je to obrovská souhra náhod. Jak se v Crashlogu vyznat a jak ho použít k tomu, aby člověk našel chybu ve svém kódu a programu? Připadalo mi to trochu jako kouzlení, kterému absolutně nerozumím, ale věci, které kluci z Applu umí, jsou až neuvěřitelné.

Je zhruba poledne a já vyrážím směr San Francisco ke klientovi. Předat poznatky, dohodnout další plány, rozloučit se před odletem zpátky do Prahy. Tím pro mě WWDC končí.

Odjíždím plný nových poznatků, zkušeností, poznal jsem spoustu inženýrů Applu i jiných vývojářů, byl osloven lidmi, co chválili mojí aplikaci, mohl jsem pochválit autory ostatních aplikací, které třeba používám. Byla to jednoduše skvělá zkušenost. A já doufám, že si ji budu moci zopakovat někdy znovu. Je to totiž asi nejlepší a nejrychlejší profesní růst, jaký může člověk na jedné platformě zažít.

Vývojářské střípky a tajnosti

Pokud nějaké jsou, většinou už nejsou tajné. Jako vývojáři se o ně podělíme se světem (hlavně tím na Twitteru) a poté to rozšíří dál média. Jedním ze žhavých témat je například podpora Dark Mode na iOS.

„Skutečně k tomu dojde? Vždyť oficiálně nic představeno nebylo.“ – Ano, nebylo. Dle mého záměrně. Ale dojde k tomu. Vždyť portování iOS aplikací na macOS už také Apple podporuje (prozatím pro své aplikace), a tudíž to musí jejich iOS aplikace zvládat. A také proto, že naše updatované assety pro designování aplikací také dostaly tmavý mód.

Při registraci jsme jako dárek obdrželi bundu Levis s logem WWDC, badge se jménem a firmou a dva kartonky odznáčků – s vlajkou, odkud pocházíme, a s odznáčky, co mají souvislost s Applem nebo Kalifornií. V průběhu týdne jsme jich poté dostali ještě pár, pokaždé při nějaké příležitosti.
Company Store, který byl otevřen každý den, nakonec otevřen každý den nebyl – v průběhu čtvrtka byl vyprodán, a proto byl uzavřen. V pátek už se neotevřel vůbec.Ve středu se v 7 ráno konal WWDC Run with Nike Run Club, kdy se stovky vývojářů proběhly centrem San José.
Ceny hotelů v San José se kvůli WWDC vyhouply až čtyřnásobně.
Vzhledem k moderním způsobům dopravy po Bay Area, kde se díky startupům Lime nebo Birds jezdí na elektrokolech a elektrokoloběžkách, to na chodnících před McEneryho centrem každé ráno vypadalo spíše jako půjčovna až se stovkami koloběžek.

Jakub Kašpar

1 komentář

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *