Novinky pro vývojáře

WWDC Swift

WWDC není pouze dvouhodinové představení nových operačních systémů. Úvodní keynote je jen show pro novináře a všeobecnou veřejnost. Pravá zábava pro vývojáře začíná až o pár hodin později jednou z prvních přednášek. Ta se jmenuje Platforms State of the Union a jedná se o shrnutí nejdůležitějších vývojářských změn a novinek. A po celý zbytek týdne jsou v plánu další přednášky o novinkách a změnách, laboratoře a jiná setkání zaměstnanců Applu s vývojáři.

Téměř všechny novinky z tohoto článku si budete moct v aplikacích vyzkoušet i vy, uživatelé. Výjimkou je nová knihovna SwiftUI, o které jste už určitě slyšeli, ale nejspíš netušíte, proč je kolem ní takový povyk. Pokusím se vám to vysvětlit a zároveň přidat přehled nejdůležitějších novinek, abyste byli připraveni na podzim, kdy začnou vycházet aktualizované aplikace. Začněme tedy rovnou králem celé WWDC – SwiftUI.

SwiftUI

SwiftUI je nová, moderní knihovna funkcí pro tvorbu uživatelského rozhraní v aplikacích. Je to největší vývojářská novinka od uvedení programovacího jazyka Swift v roce 2014. Abych vám odpověděl na otázku, co je na tom tak strašně skvělého, musím vám nejprve alespoň nastínit předchozí postupy vytváření UI pomocí staré knihovny UIKit.

WWDC Swift

Základní změnou je styl programování. Předchozí knihovna UIKit používala pro psaní kódu styl, který se v angličtině nazývá imperative programming (český ekvivalent by mohl být „rozkazující“, ale mezi programátory se používá pouze anglický termín). To znamená, že bylo potřeba aplikaci „nakázat“, co všechno a jak má udělat, krok po kroku. Muselo se specifikovat přesné umístění, přesný obsah, přesně popsat jednotlivé akce nebo animace. Jak vás asi může napadnout, tohle všechno zabere opravdu velké množství kódu.

Oproti tomu SwiftUI používá styl declarative programming (v češtině by se to mohlo nazvat jako „vysvětlující“). V praxi to vypadá tak, že vy aplikaci řeknete: „Chci tabulku, kde jednotlivé buňky obsahují nadpis, popisný text a obrázek.“ Aplikace se pak už sama o všechno postará. Se starým přístupem se můžete pohybovat v desítkách až stovkách řádků kódu, se SwiftUI se jedná o jednotky až menší desítky řádků, v závislosti na složitosti uživatelského rozhraní.

Co si od toho Apple slibuje a proč taková razantní změna? Důležité je zmínit, že Apple má rád určitý pořádek, co se týče vzhledu a chování aplikací. Pokud vývojáři budou dodržovat tato pravidla, Apple se vynasnaží, aby vylepšování aplikací a aplikování novinek bylo pro ně co nejjednodušší. Když například začnou vývojáři ihned používat SwiftUI, nemusí se vůbec starat o programování tmavého režimu, o vše se postará SwiftUI. Vývojáři pak zbyde čas na vyladění funkcionality a Apple bude v App Store nabízet větší množství aplikací, které vzhledově ladí s celým iOS. Pokud vás zajímá, jak si Apple představuje, aby aplikace vypadaly, můžete si přečíst Human Interface Guidelines.

Apple zároveň cílí na programátory začátečníky a na lidi, kteří se chtějí naučit programovat. Pro začátečníka je velmi těžké orientovat se ve změti kódu, když ještě pořádně neovládá programovací jazyk. SwiftUI se víc blíží angličtině a porozumí mu dobře i člověk, který nikdy neprogramoval.

Apple ale šel dál a vytvořil nový nástroj pro psaní kódu SwiftUI a vytváření uživatelského rozhraní. Před SwiftUI bylo několik možností, jak vytvořit uživatelské rozhraní. Buď použít Storyboardy, nástroje, kde jste měli jednotlivé obrazovky aplikace. Z objektů jste si vytvořili uživatelské rozhraní a poté ho napojili do kódu. Ideální pro začátečníky a velmi jednoduché aplikace, ale pro větší týmy bylo použití Storyboardů katastrofa. Většina vývojářů vytvářela uživatelské rozhraní přímo v kódu. Bylo to sice zdlouhavé, ale vývojáři měli o všem přehled a mohli UI více upravovat.

WWDC Swift

Nyní Apple představil kombinaci obou přístupů. Vedle sebe máte jak kód, tak živý náhled. Když uděláte změnu v jednom náhledu, automaticky se objeví ve druhém. A nejlepší na tom je, že živý náhled aplikace je interaktivní, takže vývojáři mohou rychleji testovat a nemusí pokaždé aplikaci sestavovat a spouštět. Apple opravdu chce, aby programovat mohl každý.

Rozšířená realita

Před dvěma lety Apple představil knihovnu ARKit a přes noc měl největší platformu pro rozšířenou realitu. Nyní přichází třetí verze knihovny, od které se nečekaly až tak velké změny, ale spíše vyladění. A jaké bylo překvapení, že Apple nezahálel a vytvořil si oproti konkurenci solidní náskok. ARKit 3 posílá rozšířenou realitu na další level a iOS zařízení začínají být pro AR malé.

Největší novinkou je reagování na lidi v obraze. Pokud jste používali nějakou AR aplikaci, určitě vám vadilo, že digitální obsah překrývá všechny lidi, i když by měli být před digitálním obsahem. Tomu odzvonilo a AR aplikace nově zvládnou reagovat na lidi v prostoru a digitální obsah se tomu přizpůsobí. Na keynote to bylo demonstrováno na nové verzi veleúspěšného Minecraftu, Minecraft Earth, která vás doslova postaví mezi vaše výtvory. Je to obrovský skok pro celé AR a s touto novinkou jsme se přiblížili očekávané „killer“ aplikaci, která definitivně změní pohled na AR.

Další novinkou v ARKit 3 je funkce Motion Capture. Profesionální Motion Capture se používá při tvorbě animovaných filmů nebo digitálních efektů, kdy jsou obličej nebo celé tělo poseté stovkami bodů a ty jsou poté snímány kamerami. Po přenesení do počítače se na tělo aplikuje digitální vzhled a máme na světě digitální figuru, která má pohyby a mimiku reálného člověka. iOS už mimiku zvládá díky kameře TrueDepth, zbývá zaznamenat pohyb celého těla. A to je nyní možné díky funkci Motion Capture v ARKit 3.

WWDC Swift

Dá se očekávat, že Motion Capture nebude až tak přesný, na všech nynějších zařízeních se bude analyzovat pouze pomocí klasické kamery a algoritmů. Ale bůh ví, co si pro nás Apple schovává do nových iPhonů. Před dvěma lety také zvládl ARKit rozpoznat základní pohyby obličeje, a pak v září přišel iPhone X s TrueDepth kamerou, která to posunula na jiný level.

ARKit 3 skrývá další různá menší vylepšení. Aplikace by měly umět lépe detekovat okolí, digitální objekty by měly lépe „držet“ v reálném světě a všechno by mělo být rychlejší. Teď už jsou potřeba jen ty aplikace. U Apple opět mysleli i na pohodlí pro vývojáře a vytvořili dva nové nástroje, Reality Composer a RealityKit. Reality Composer slouží k rychlému prototypování scén, které se mají odehrávat v aplikaci a RealityKit je knihovna funkcí pro vývojáře, která zajistí, že digitální objekty budou správně nasvíceny podle okolního světla nebo budou mít správnou fyziku.

Machine Learning

Machine Learning neboli strojové učení je něco, na co Apple hodně sází a nový iOS tím je doslova prošpikován. Machine Learning slouží pro analýzu dat, obrázků nebo okolí. V iOS se například používá v aplikaci Fotoaparát, kdy analyzuje obraz z fotoaparátu a snaží se vytvořit co nejvěrnější ale také nejkrásnější výsledek, nebo je například použit pro lepší učení vašeho obličeje při odemykání Face ID.

Apple se často u svých aplikací chlubí, že se dokáží učit podle toho, jak s nimi uživatel zachází. Pokud tuto funkci chtěli použít vývojáři ve svých aplikacích, museli si ji udělat od základu sami. Nyní jim Apple umožňuje tuto funkcionalitu jednoduše použít pomocí knihovny CoreML verze 3. Mnoho vývojářů zajásalo, protože obor strojového učení je velmi náročný a Apple to svými knihovnami vývojářům zjednodušil.

Práce s textem je v aplikacích velmi častá. Díky novinkám v CoreML je nyní rozpoznání textu z obrázků jednodušší než kdy jindy. Je to funkcionalita, kterou Google nabízí již celkem dlouho, ale u Googlu funguje tak, že se odesílají data na server, tam se zanalyzují a výsledek se pošle do mobilu. V iOS 13 se to vše bude dít na zařízeních a díky novému Neural Enginu to v iPhonech XS a XR bude velmi rychlé. Mimo to je vylepšeno rozpoznávání a sledování objektů, tváří nebo obrázků. Vše je opět velmi rychlé a hlavně stabilní. Až příště pojedete do ciziny, je dost možné, že budete mít v iPhonu slovník, který vám přeloží obsah cedule bez toho, aniž by aplikace musela být připojena k internetu.

WWDC Swift

Project Catalyst

Apple se svým Mac App Store dost zaostává. Vývojáři na něm nenabízí tolik aplikací a tím pádem ho uživatelé málo používají. Nyní Apple přišel s nástrojem, který zvládne převést aplikaci pro iPad na macOS. Teď možná čekáte dlouhý text o složitém převádění a ladění, ale bohužel vás zklamu. Portování aplikací je od nynějška otázka víceméně jednoho kliknutí. Vývojářům bude stačit, aby v prostředí Xcode zaškrtli možnost Spustit aplikaci i na macOS, a to je, prosím, vše. Pokud se jedná o složitou aplikaci, může se doplnit lepší podpora oken nebo zkratek, ale pro obyčejné aplikace to je takhle jednoduché.

To nás přivádí na začátek ke SwiftUI. Pokud vývojáři dodrží všechna pravidla, které Apple má, můžou mít z jednoho kusu kódu celkem tři aplikace. Jednu na iOS, tedy na iPhony a iPody Touch, jednu na nový iPadOS a jednu na macOS. Co se týče funkční stránky aplikace, není to nic překvapivého, ale u uživatelského rozhraní je to něco nevídaného.

Každý operační systém má jiný způsob použití, ale bude stačit jeden kód a aplikace poběží všude. A tím se dá shrnout celá letošní WWDC. Apple strašně moc chce mít obchod s aplikacemi, které se budou prodávat, protože z nich má provize. A aby se aplikace prodávaly, musí být úžasné. Když bude tvorba úžasných aplikací jednoduchá, vývojáři jich budou tvořit více a více se budou prodávat. A když navíc mohou mít aplikace z jednoho kódu na třech různých operačních systémech, lidé budou ještě více používat ekosystém Apple a kupovat si u Apple nové a nové produkty. Je to win-win situace pro všechny.

Napsat komentář

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