Xcode 15 vám umožňuje zobrazit náhled uživatelského rozhraní vaší aplikace pro iOS při jejím vytváření. Zde je návod, jak jej použít, abyste viděli, jak se vaše aplikace zobrazuje uživatelům.
Xcode 15 představil uživatelské rozhraní Náhledy které vám umožní zobrazit, jak bude vaše uživatelské rozhraní vypadat, když jej vytvoříte v SwiftUI.
Konkrétně Xcode přidal #Preview
makro, které vám umožňuje definovat, jak se budou zobrazovat náhledy pro jakékoli zobrazení nebo zobrazení, které přidáte do aplikace SwiftUI.
V Swift a v jazycích založených na C, a makro je direktiva kompilátoru, která říká kompilátoru, že se blíží něco zvláštního, a aby zacházel s kódem definovaným v makru jako se speciálním případem v době kompilace.
Když kompilujete svůj kód, překladač přeloží všechna makra, která najde, do kódu na základě toho, co je uvnitř makra. Makra umožňují definovat blok kódu jednou a poté jej v aplikaci vícekrát použít.
SwiftUI vám umožňuje definovat vaši aplikaci pomocí textu a textových definic pohledů, na rozdíl od starších vizuálních pohledů AppKit Interface Builder. Pomocí SwiftUI a náhledů můžete zadat svůj kód do podokna editoru Xcode vlevo a jeho náhled zobrazit v simulátoru Xcode vpravo.
Jak píšete a měníte svůj kód SwiftUI, náhled uživatelského rozhraní se mění v reálném čase, aby vám ukázal váš pohled.
To má velkou výhodu v tom, že vám umožňuje vidět, jak bude vaše aplikace vypadat, aniž byste museli spouštět cyklus kompilace/sestavení/spuštění pokaždé, když provedete změnu kódu.
Typicky v SwiftUI můžete definovat ContentView
z a View
pomocí Swiftu struct
. Například:
struct ContentView: View {
Pod tím můžete ve výchozím nastavení definovat #Preview
makro jako jednoduché vrácení ContentView, který Xcode použije k zobrazení pohledu v podokně náhledu:
Toto je výchozí nastavení #Preview
makro, které byste měli zadat, aby se váš pohled objevil v podokně náhledu v Xcode. Můžete také přidat další kód do svého #Preview
makro pro každý pohled, abyste dále přizpůsobili, jak Xcode zobrazí váš pohled.
Když kompilujete svůj kód, kompilátor Swift ve skutečnosti rozšíří #Preview
makro na příkaz Swift "Preview(_:body:)"
který má volitelný název a a ViewBuilder
jako parametry.
A ViewBuilder
je definován Swiftem @ViewBuilder
klíčové slovo, které Swiftovi indikuje, že následují některé prvky uživatelského rozhraní k zobrazení.
Pokud chcete definovat několik #Preview
makra ve stejném zdrojovém souboru, můžete předat jméno jako Swift String
odlišit každý:
ContentView(someInput: true)
Dokumentace SwiftUI má také stránku, která vysvětluje #Preview
makro a také mluví o tom, jak používat a ViewBuilder
spolu s tím.
Obecně byste měli jeden definovat #Preview
makro pro každý vlastní pohled, který definujete ve zdrojovém souboru SwiftUI.
Pokud nepoužíváte a #Preview
makro pro každý vlastní pohled, který vytvoříte, pak budete muset zadat a Poskytovatel náhledu protokol pro každý pohled – což je o něco složitější proces a vyžaduje trochu více kódu.
Poskytovatelům náhledu jsme se věnovali v předchozím článku, který zmiňujeme níže, takže je zde nebudeme znovu pokrývat.
Jakmile budete mít svůj #Preview
makra definovaná ve vašem kódu pro každý z vašich pohledů, můžete zobrazit plátno náhledu Xcode výběrem Editor->Plátno z hlavní nabídky Xcode.
Obecně platí, že ve Swift je zobrazení v aplikaci definováno třídou Swift View
což je synonymum pro a UIView
v Objective-C nebo an NSView
pro aplikace macOS v Objective-C.
Každý Swift View
může obsahovat jeden nebo více dílčích pohledů ContentView
. The ContentView
je zobrazení, které se zobrazí na obrazovce při spuštění aplikace.
Ve skutečnosti ve společnosti Swift, a View
je definována jako struktura i protokol na struktuře, nikoli jako třída. Ve Swiftu jsou struktury flexibilnější než třídy, ale lze je nastavit tak, aby se chovaly jako třídy a snáze přidávaly další data a chování.
A protocol
je sada metod nebo vlastností definovaných pro strukturu nebo třídu, kterou musíte implementovat.
Chcete-li poskytnout vlastní zobrazení ve Swift, deklarujete typ, který odpovídá k View
protokolu a implementuje požadované body
vypočítaná vlastnost, která poskytne obsah vašeho pohledu.
V tomto příkladu definujeme vlastní strukturu s názvem MyView
který dědí ze třídy Apple View
a který odpovídá View
protokol definováním počítané vlastnosti body
(také jako a View
), který má singl Text
subview s textem „Ahoj, světe!“ v něm.
Když tato struktura běží, jeden Text
zobrazení se zobrazí s textem „Ahoj, světe!“ V uživatelském rozhraní.
Apple poskytuje různé předdefinované pohledy (např Text
), které můžete použít ve svém zobrazení body
k vytvoření uživatelského rozhraní.
Na plátně Xcode Preview, když změníte jakýkoli kód v MyView
struct, plátno aktualizuje pohled v reálném čase, aby vám zobrazilo vaše změny.
Výsledkem používání náhledů Xcode je, že během psaní můžete vidět své uživatelské rozhraní v Xcode – aniž byste museli vytvářet a spouštět aplikaci. To ušetří obrovské množství času při vývoji.
SwiftUI a náhledy usnadňují a odlehčují vývoj – a výrazně snižují počet kroků potřebných k sestavení uživatelského rozhraní v kódu.
Úplnou diskuzi o tom, jak pohledy fungují v Xcode, najdete v části dokumentace SwiftUI společnosti Apple Zobrazit základy.
Dokumentace a zdroje
Apple má sedmadvacetiminutové video z WWDC ’23 s názvem „Build programmatic UI with Xcode Previews“, které shrnuje, jak používat Xcode Previews, abyste viděli své uživatelské rozhraní při jeho sestavování.
Apple má v dokumentech Xcode kompletního průvodce, jak zobrazit náhled uživatelského rozhraní při jeho vývoji v Xcode s názvem „Náhled rozhraní vaší aplikace v Xcode“.
Přečtěte si také náš předchozí článek „Jak používat náhledy Xcode, abyste viděli, jak vaše aplikace vypadá, když ji vytvoříte“.
Zdroj: appleinsider.com