Why should you use Swift Playground?

Swift Playgrounds: Lær at kode som en professionel

23/03/2022

Rating: 4.6 (918 votes)
Indholdsfortegnelse

Hvorfor bruge Swift Playgrounds?

Swift Playgrounds er et revolutionerende værktøj, der gør det sjovt og tilgængeligt at lære at kode og bygge rigtige apps. Uanset om du er en komplet nybegynder eller en erfaren udvikler, der ønsker at eksperimentere med Apples nyeste teknologier, tilbyder Swift Playgrounds en engagerende og interaktiv platform. Med Swift Playgrounds kan du bygge apps ved hjælp af SwiftUI, Apples kraftfulde og moderne framework til brugergrænseflader, som udviklere verden over bruger til at skabe deres app-oplevelser. SwiftUI gør det nemt hurtigt at skabe elegante brugergrænseflader og udtrykke dine ideer. Du får også adgang til centrale frameworks som SpriteKit, Bluetooth og Metal. Din kode kan interagere direkte med den iPad eller Mac, den kører på. For eksempel reagerer dine playgrounds på iPad på touch-gester og interagerer med hardware som accelerometer, gyroskop og kamera. Med understøttelse af Swift Packages gør Swift Playgrounds det nemmere end nogensinde at kode dine kreationer. Pakker er bundter af genbrugelig kode, som du eller andre udviklere kan oprette og inkludere i dine projekter. Med pakkernes kraft kan du hurtigt skrive kode, der formaterer data, forespørger databaser, kommunikerer over et netværk og meget mere.

How do I contact Swift Playground?
Or call 1-800-MY-APPLE. Choose your country or region Copyright © 2024 Apple Inc. All rights reserved. Privacy Policy Terms of Use Sales and Refunds Legal Site Map Swift Playground makes it fun to learn to code and build real apps. You solve interactive puzzles in the guided “Get Started with Code” and learn the basics of…

De første skridt med Swift Playgrounds

Swift Playgrounds giver dig mulighed for at bygge en komplet iOS-app fra bunden, direkte på din iPad. Du kan trække på Apples kraftfulde SwiftUI-framework, du kan importere biblioteker, som andre har skrevet, og hvis du ønsker det, kan du endda flytte dit projekt over på din Mac og fortsætte det i Xcode, Apples fuldt udviklede kodeeditor. Denne guide vil føre dig igennem opbygningen af din allerførste app ved hjælp af Swift Playgrounds til iPad, hvor du vil kunne vise billeder af dine venner og familie, og hvor et tryk på et af dem vil afspille en lyd – det er bare for sjov, men du vil lære meget undervejs og samtidig udnytte anden indbygget software på din iPad. Denne tutorial henvender sig til begyndere, så du behøver ingen forudgående Swift-erfaring. For at følge med skal du installere Playgrounds fra App Store, men det er alt – du behøver hverken Xcode eller en Mac. Hvis du var nysgerrig, bruger jeg Apples Magic Keyboard med en iPad Pro, der kører iOS 15.2.

For at komme i gang, tryk på "App"-knappen under "Get a Playground" for at oprette et nyt projekt. Dette vil som standard blive kaldt "My App", og det vil få et tilfældigt ikon – jeg viser dig senere, hvordan du ændrer disse. Tryk på dit nye playground for at åbne det til redigering, og du vil se, at Playgrounds er delt i to dele: til venstre er der simpel Swift-kode til at komme i gang, og til højre er der en live-forhåndsvisning, der viser din faktiske kode, mens den kører. Jeg forventer, at startkoden vil ændre sig over tid, men det er okay, for jeg vil have dig til at slette næsten det hele – lad kun dette blive tilbage:

import SwiftUI struct ContentView: View { var body: some View { Text("Hello, world!") } } 

Mens du sletter dele, vil du se forhåndsvisningen til højre ændre sig øjeblikkeligt – den er virkelig live, og senere vil du se, at den også er interaktiv. Vores resterende kode gør flere ting: Den fortæller Swift at inkludere SwiftUI-frameworket. Swift er programmeringssproget, vi bruger til at bygge vores apps, men SwiftUI er et sæt værktøjer, der giver os knapper, billeder og andre almindelige brugergrænsefladeelementer. Den opretter et nyt stykke brugergrænseflade, kendt som en "view" i SwiftUI, der hedder ContentView. Du vil oprette mange views i dine apps, men hver enkelt skal have sit eget unikke navn. Den siger, at "body" af dette view – det, der faktisk vises på skærmen – vil returnere en form for SwiftUI-view. Det betyder, at vores ContentView vil vise andre brugergrænsefladeelementer indeni. Endelig siger den, at den brugergrænseflade, vi ønsker at vise, er teksten "Hello, world!".

Tilpasning af tekst med Modifiers

Vi skal til at skrive meget mere kode, men først vil jeg bruge et par minutter på at lege med det grundlæggende, så du får en bedre forståelse af, hvad der foregår. Vi kan tilpasse, hvordan vores tekst ser ud, ved at tilføje modifiers. Der er mange af disse indbygget i SwiftUI, og du vil ofte finde dig selv bruge flere ad gangen for at opnå den helt rigtige effekt. For eksempel, prøv at ændre din tekst til at inkludere disse modifiers:

Text("Hello, world!") .font(.largeTitle) .foregroundColor(.blue) 

Det vil give teksten en stor skrifttype og en blå farve. Du kan også styre baggrundsfarven på teksten ved at tilføje endnu en modifier. For eksempel kunne vi give vores tekst en hvid forgrundsfarve og en blå baggrundsfarve således:

Text("Hello, world!") .font(.largeTitle) .foregroundColor(.white) .background(.blue) 

Der er to ting, du vil bemærke her: Vi indstillede forgrundsfarven på teksten ved hjælp af foregroundColor(), men baggrundsfarven ved hjælp af blot background(). Dette er bevidst: forgrundsfarver er altid simple farver, men baggrunde kan indeholde alle mulige andre ting, såsom billeder. Bemærk, hvordan baggrunden passer næsten præcist omkring kanten af teksten – Swift kender den nøjagtige størrelse på teksten, inklusive dens naturlige linjeafstand, og sørger for, at baggrundsfarven har samme størrelse. Hvis du ønskede at gøre baggrunden lidt større end teksten, kan du bede SwiftUI om at inkludere lidt padding før baggrunden, som følger:

Text("Hello, world!") .font(.largeTitle) .foregroundColor(.white) .padding() .background(.blue) 

Og nu vil du se den blå baggrund strække sig ud over teksten, hvilket er pænere. Du kan specificere, hvor du vil have paddingen placeret, f.eks. padding(.horizontal), men for nu skal du blot holde dig til padding(). Mange SwiftUI modifiers kan anvendes flere gange, hvilket får dem til at stable sig og skabe interessante effekter. For eksempel kunne vi anvende mere padding og en anden baggrundsfarve, derefter endnu mere padding og en tredje baggrundsfarve:

Text("Hello, world!") .font(.largeTitle) .foregroundColor(.white) .padding() .background(.blue) .padding() .background(.mint) .padding() .background(.green) 

Tip: Alle disse farvenavne, vi bruger, er indbygget i SwiftUI, men du kan også oprette dine egne fra bunden.

Oprettelse af en Liste

Nu hvor du har set nogle af de grundlæggende principper i SwiftUI, vil jeg begynde at bevæge mig over til den faktiske app, vi skal bygge. I iOS er to af de mest almindelige typer af views kaldet List og NavigationView: den ene repræsenterer en rullende liste af data, som du ser i Indstillinger, og den anden giver mulighed for at vise en titel øverst og valgfrit mulighed for at vise mere information, når noget bliver trykket på. Du kan placere alle mulige data inde i dine lister, men lad os starte med blot lidt tekst for nu – ændr din kode til dette:

NavigationView { List { Text("Hello, world!") } .navigationTitle("Friendface") } 

Du vil se, at vores tekst vises til højre, med en buet boks omkring den for at fremhæve, at dette er en listelinje. Der er også meget plads over den – det er plads til titlen på vores navigation view, som i øjeblikket er tom. Vi kan give vores egen titel ved hjælp af endnu en modifier knyttet til listen, som følger:

NavigationView { List { Text("Hello, world!") } .navigationTitle("Friendface") } 

Vi tilføjer mere til det om et øjeblik, men først vil jeg gerne have dig til at prøve at swipe rundt i vores forhåndsvisning – du vil se, at du kan rulle lidt op og ned, titlen "Friendface" strækkes lidt, når du ruller ned, og når du ruller op, skrumper den væk til en mindre titel. Dette er præcis, hvordan resten af iOS fungerer, og vi får det hele gratis med SwiftUI. Den forhåndsvisning er vores rigtige kode, der kører, men Swift Playgrounds har også en Play-knap, der kører appen i fuldskærm, som om den kørte på iPaden alene. Hvis du trykker på den nu, vil du se noget interessant: vores liste optager kun det øverste venstre hjørne af skærmen – hele højre side er tom! Dette sker, fordi systemet tror, at vores liste er designet til at lade brugere vælge fra en liste af data, så når de vælger noget fra den liste, ser de flere detaljer til højre – igen, præcis som Indstillinger-appen fungerer, men også Mail, Beskeder og mange andre. I denne app ønsker vi ikke den adfærd, så vi kan bede vores NavigationView om at optage al tilgængelig plads. Dette gøres med endnu en modifier, denne gang knyttet til NavigationView. Så du skal afslutte app-afspilning og gå tilbage til ContentView.swift – tryk på det orange og hvide Swift-ikon øverst, og tryk derefter på Stop fra listen af muligheder. Tilbage i ContentView skal du tilføje denne modifier til sidst i vores NavigationView:

.navigationViewStyle(.stack) 

Nu, hvis du trykker på Play igen, vil du se, at vores Liste optager hele skærmen – meget bedre!

Arbejde med dynamiske data

Inde i vores Liste har vi et enkelt stykke tekst, men egentlig ønsker vi at vise mange stykker tekst – én for hvert ven eller familiemedlem, vi ønsker at have i vores app. Vi kan gøre dette ved hjælp af en anden type view kaldet ForEach, men den skal have to vigtige stykker data:

  • En liste over alle de elementer, vi ønsker at vise. Den vil give os ét element ad gangen og bede os om at konvertere det til et SwiftUI-view, der kan vises i listen.
  • En måde at identificere hvert element i vores liste unikt, ellers har SwiftUI ingen måde at vide, hvilken datadel der skal tilhøre hvilken listelinje.

Begge disse kræver lidt ny læring, men kun en smule. Den første nye ting er, at vi skal levere en liste af navne uden for "body" af viewet, som følger:

struct ContentView: View { let names = ["Paul", "Sophie", "Charlotte"] var body: some View { NavigationView { List { ForEach(names, id: \.self) { name in Text(name) } } .navigationTitle("Friendface") .navigationViewStyle(.stack) } } } 

Det opretter en ny værdi kaldet names, og den indeholder et array af tekst: Paul, Sophie, Charlotte. Arrays lader os holde flere værdier ét sted, og de er præcis den type ting, som ForEach kan lide at få. Den anden nye ting er vores ForEach view. Husk, at denne skal have en liste over alle de data, vi ønsker at vise, hvilket vil være vores names array, men den skal også have at vide, hvordan man unikt identificerer hvert element i arrayet. Vi har Paul, Sophie og Charlotte i vores names array, hvilket betyder, at hvert navn er unikt. Udover selve teksten er der intet andet unikt ved elementerne i vores array – de har f.eks. ikke ID-numre knyttet, de har bare selve teksten. Så når det kommer til at fortælle SwiftUI, hvad der gør hver datadel unik, bruger vi en speciel værdi, \.self, hvilket betyder, at vi lover, at selve elementet er unikt. Hvis du senere tilføjer flere navne, der ikke er unikke, vil du støde på et problem, men det er godt nok her! Så juster din List-kode til dette:

List { ForEach(names, id: \.self) { name in Text(name) } } 

Du vil se, at vores forhåndsvisning opdateres til at vise alle tre navne, præcis som vi ønskede – dejligt! Lad os bryde den nye kode ned: Vi har stadig en liste af elementer, bortset fra at vi nu specificerer dem ved hjælp af et array af data i stedet for at kode alle vores tekstvisninger direkte. Vi har fortalt ForEach at oprette sine elementer ud fra names arrayet, og også at hvert element i det array kan identificeres unikt af sig selv. ForEach vil give os ét navn fra arrayet ad gangen og spørge, hvad vi vil gøre med det. Det er name i { name in ... } – det sender bogstaveligt talt ét navn ind i vores listelinje, så vi kan gøre, hvad vi vil med det. I dette tilfælde viser vi det navn i et tekst view, hvilket er grunden til, at vi ser navnene i vores liste. At have data i et array er meget pænere end at skrive dem ind manuelt, for nu kan vi ændre vores array for at se flere elementer i vores liste:

let names = ["Paul", "Sophie", "Charlotte", "Adrian", "Novall", "Allen"] 

Import af billeder

En af de store fordele ved at bygge software på din iPad er, at der er så mange andre apps, du kan trække på for at få ekstra indhold. Her vil vi importere nogle billeder, men senere vil vi også bruge Apples Voice Memos til at importere nogle lyde. Først billeder: I sidebjælken til Swift Playgrounds vil du se en "Add New Item"-knap, der ligner et dokument med et plus over sig – tryk på den nu, og vælg derefter "Photo". Du vil se dit fotobibliotek, der viser alle de billeder, du tidligere har taget, og jeg vil gerne have dig til at vælge et billede enten af dig selv eller af en ven eller et familiemedlem. For mig vil jeg importere et billede af min ældste datter, Sophie. Når det er importeret, får det standardnavnet "Image Asset", men jeg vil omdøbe det til "Sophie". Du kan omdøbe dit billede ved at trykke længe på det og derefter vælge "Rename" fra popover-menuen. Jeg vil derefter importere et andet billede, denne gang af min yngste datter Charlotte, og omdøbe det fra "Image Asset" til "Charlotte". Endelig vil jeg importere ét billede mere, men denne gang vil jeg tage det live, fordi det viser dig et interessant problem, du sandsynligvis vil støde på. Jeg ville betragte det som en fejl i Swift Playgrounds, så måske når du følger denne video, er det ikke længere et problem! Uanset hvad, vil jeg nu starte kamera-appen, skifte til frontkameraet og tage et billede af mig selv. Nu vil jeg gå tilbage til Swift Playgrounds og importere det billede, og du vil se, når jeg gør det, er det vendt på hovedet! Dette sker, fordi de fleste telefonkameraer gemmer billedet på én fast måde, men derefter gemmer en skjult flag for at huske, hvilken orientering der skal bruges, når det vises. Den orientering ignoreres af Swift Playgrounds, så vi ser billedet, som iOS ser det internt. For at rette dette vil vi starte med at slette billedet, fordi det ikke er godt for os, som det er. Nu skal du gå til Fotos-appen, vælge det billede, du lige har taget, og foretage en hvilken som helst ændring – selv en lille beskæring er fint. Når du trykker på "Done", bliver iOS nødt til at omskrive billedfilen for at anvende din ændring, og den udnytter automatisk denne mulighed til at skrive den i den korrekte orientering. Så efter du har foretaget en lille ændring i dit billede, kan du gå tilbage til Swift Playgrounds og importere det igen – det burde hele være fint nu. Da det er et billede af mig, vil jeg omdøbe det fra "Image Asset" til "Paul". Vi har tre billeder af mennesker, hvilket er mere end nok til at fortsætte, men jeg vil tilføje et bonusbillede af min hund, Luna. Hun er ikke den klogeste hund, men hun er en god pige! Dette vil igen få standardnavnet "Image Asset", men jeg vil omdøbe det til "Luna". Nu vil jeg opdatere vores names array for at matche de fire billednavne, vi tilføjede:

let names = ["Paul", "Sophie", "Charlotte", "Luna"] 

Og nu til den bedste del: i stedet for blot at vise teksten Paul, Sophie og Charlotte, kan vi vise billeder i stedet. Ændr dit ForEach view til dette:

ForEach(names, id: \.self) { name in Image(name) .resizable() .scaledToFit() .cornerRadius(25) .padding(.horizontal) } 

Det vil få din forhåndsvisning til at ændre sig, men den vil se lidt mærkelig ud nu – bestemt ikke de billeder, du forventede. Dette sker, fordi vores billeder vises i deres oprindelige størrelse, som er alt for stor til vores lille forhåndsvisning. Vi kan bringe dem i størrelse ved at tilføje to modifiers: en til at lade SwiftUI ændre størrelsen på billederne og en til at få dem til at skalere ned, så de passer til den tilgængelige plads:

Image(name) .resizable() .scaledToFit() 

Meget bedre! Husk, hvordan jeg tidligere påpegede den buede boks omkring vores listelinjer? Den var velkommen tidligere, fordi den fik vores linjer til at se visuelt distinkte ud i vores layout, men nu er den ikke så pæn – det ville være meget pænere, hvis vores billeder gik fra kant til kant. Vi kan opnå det ved at ændre List til ScrollView – bogstaveligt talt bare ændre ordet "List" til "ScrollView", og vi får et bedre layout. SwiftUIs List view er til rullende tabeller af data, som vi har i Indstillinger-appen, eller når du vælger en kontakt at tale med i Beskeder, men når du ønsker dit eget brugerdefinerede layout, er en simpel ScrollView enklere, fordi vi kan placere, hvad vi vil deri. Apropos at placere, hvad vi vil deri, hvad med at tilføje lidt ekstra styling til vores billeder? Prøv at tilføje disse to modifiers under scaledToFit():

.cornerRadius(25) .padding(.horizontal) 

Pænt!

Afspilning af lyd

I denne app vil vi vise ansigter, der tilhører forskellige venner og familie, og derefter afspille lyde, når de bliver trykket på. Vi har håndteret billeder, men hvordan får vi dem til at gøre noget, når der trykkes på dem? Nå, dette håndteres gennem et andet SwiftUI view kaldet Button, som er oprettet med to stykker information: noget kode, der skal køres, når knappen trykkes, og en etiket til knappen – det, du ønsker, at brugerne skal se på skærmen. For os er etiketten vores billede, så vi kan starte med at pakke billedet ind i en knap som følger:

Button { // ??? } label: { Image(name) .resizable() .scaledToFit() .cornerRadius(25) .padding(.horizontal) } 

Linjen // ??? kaldes en kommentar – når du starter en kodelinje med to skråstreger, fortæller det Swift at ignorere linjen. Kommentarer er nyttige til at minde dig selv om, hvordan koden fungerer, men her er det en pladsholder for vores knaps handling – hvad vil vi have til at ske, når knappen trykkes? Nå, når du bare bygger din app, vil du måske udskrive en besked til skærmen ved at erstatte kommentaren med dette:

print("\(name) was tapped!") 

Delen \(name) fortæller Swift, at vi ønsker at indsætte den aktuelle værdi af name i beskeden, så nu vil et tryk på Sophie udskrive "Sophie was tapped!" – du kan se disse beskeder ved at vise konsollen, når din app kører. Hvad vi ønsker her er at afspille lyde for vores personer, hvilket betyder, at vi skal starte med at importere nogle lydfiler, vi kan arbejde med. Jeg har allerede lyde optaget til Sophie, Charlotte og Luna, så jeg importerer dem ved at vælge "Insert From", når jeg tilføjer et nyt element. Dette vil bringe listen over seneste dokumenter i mit iCloud Files frem, hvor jeg har mine filer klar til brug – jeg trykker bare for at importere dem, og du kan gøre det samme. Swift Playgrounds kan forhåndsvise lydfiler for os: vælg en for at åbne den, og tryk derefter på Play-knappen for at høre, hvordan den lyder. Hver af disse lydfiler matcher navnene på mine fotos, med "m4a" til sidst – det er filtypen, der bruges til lydfiler. Der var ikke en til mig, men det er okay, for jeg kan bare optage en nu ved at starte Voice Memos og optage noget. Hvis du skal gøre det samme, skal du optage din lyd som normalt og derefter trykke på "Share"-ikonet og vælge "Save to Files" og gemme den, hvor du vil – jeg vælger iCloud Drive, fordi det er mere bekvemt, men du kan gøre, hvad der fungerer. For mig vil den nye lyd allerede være kopieret over til iCloud Drive, så jeg kan gå tilbage til Swift Playgrounds og importere Paul.m4a ligesom de andre lydfiler. Så nu har vi en masse billeder og en masse lyde, hvordan får vi rent faktisk en lyd til at afspille, når dens passende billede bliver trykket på? Nå, SwiftUI har ikke en indbygget måde at afspille lyde på – "UI"-delen betyder brugergrænseflader, ikke lyd. Men det er okay, og det er faktisk en del af min plan, fordi det giver mig en chance for at vise dig en reel kraftfuld funktion i SwiftUI: du kan importere kode, som andre har skrevet, direkte fra kodingsdelingssider som GitHub. I dette tilfælde skrev jeg allerede et gratis framework for at gøre lydafspilning lettere i SwiftUI, og vi kan importere det her og begynde at bruge det. For at gøre det skal du gå tilbage til "Add New Item"-knappen og denne gang vælge "Swift Package". Swift Playgrounds vil bede dig om pakke-URL'en, som skal være en internetlokation, der indeholder den kode, du vil læse. Til dette projekt vil jeg gerne have dig til at indtaste følgende: https://github.com/twostraws/Subsonic. Det er navnet på mit lyd-framework, og når du trykker på Enter, vil Swift Playgrounds hente information om det, så det kan bruges i vores app. Når du ser indstillingerne "Version" og "Allow Updates", skal du trykke på "Add to Project" for at importere det. Du vil se, at Subsonic er opført under "Packages" i din sidebjælke, så hvis du nogensinde beslutter dig for, at du ikke vil have det i fremtiden, kan du trykke længe og vælge "Remove Package Dependency" for at fjerne det helt. Uanset hvad, her vil vi bruge det, så start med at gå tilbage til din kode i ContentView.swift. Hvis du har en masse m4a-filer eller billeder åbne, kan du trykke på lukke-ikonet nær toppen for at fjerne dem. Nu skal vi foretage yderligere to ændringer i ContentView.swift for at få denne app til at fungere rigtigt. Først skal vi tilføje en ekstra linje helt øverst for at fortælle Swift, at vi ønsker at importere al funktionaliteten fra Subsonic-pakken. Det betyder at tilføje import Subsonic ved siden af import SwiftUI – jeg foretrækker at placere det før, fordi jeg holder mine importlinjer i alfabetisk rækkefølge, men det er faktisk ligegyldigt. Og den anden ændring er i din knaps handling, erstat print()-koden med dette:

play(sound: "\(name).m4a") 

Det tilføjer "m4a" til den aktuelle persons navn for at matche vores lydfiler og beder derefter Subsonic om at afspille dem. Det er det! Du kan straks trykke på ansigterne til højre for at afspille de matchende lyde – Subsonic vil gladeligt afspille mange lyde på én gang, så du kan trykke på det samme ansigt gentagne gange eller trykke på flere forskellige.

Why should you use Swift Playground?
With access to thousands of APIs in the iOS and macOS SDKs, you can create amazing playgrounds that explore the web, generate 3D worlds, experiment with physics, and much more. Swift Playground includes the App Gallery to demonstrate common app concepts such as tabbed navigation and downloading data.

Få det til at fungere bedre i fuldskærm

Indtil videre har vi mest brugt det lille forhåndsvisningsområde på højre side af vores kode, men hvis du trykker på Play-knappen, vil du se vores app køre i fuldskærm. Det er sådan, folk, der installerer appen fra App Store, vil se vores app, og selvom den fungerer, er det ikke en god oplevelse, fordi vores billeder er så store! For at rette dette kan vi tage en mere skalerbar tilgang: i stedet for blot at vise ét billede ad gangen, kan vi vise et gitter af billeder. Dette kræver to trin, startende med at beskrive for SwiftUI, hvor mange kolonner vi ønsker at have i vores gitter. Tilføj dette under let names linjen, uden for "body" af vores view:

let columns = [GridItem(.adaptive(minimum: 250))] 

Det betyder "opret et array af gitterelementer, men placer kun ét element deri: et adaptivt gitterelement, der har en minimumsstørrelse på 250 punkter". Adaptive gitterelementer lader os sige, at vi er ligeglade med, hvor mange kolonner vi har i vores gitter, så længe de er mindst 250 punkter brede – vi giver SwiftUI mulighed for at gøre dem bredere, hvis det er nødvendigt, men de skal være mindst 250 punkter brede. Det andet ændring er at pakke al vores ForEach-kode – alt, der i øjeblikket er inde i ScrollView – ind i en anden ny view-type kaldet LazyVGrid. Dette opretter gitre af views, og du skal fortælle det, hvordan du vil have dit gitter lagt ud, og hvad der skal være inde i gitteret. For os er gitterlayoutet det nye columns array, vi lige har lavet, og hvad der skal være inde i, er al vores ForEach-kode. Så ændr din kode til dette:

ScrollView { LazyVGrid(columns: columns) { ForEach(names, id: \.self) { name in Image(name) .resizable() .scaledToFit() .cornerRadius(25) .padding(.horizontal) } } } 

I forhåndsvisningsområdet vil alt se ens ud, fordi vores gitter automatisk tilpasser sig for at udnytte pladsen bedst muligt. Men hvis du trykker på Play-knappen, vil du se billederne spredt ud over en gitterrække – du får stadig al den samme rulningsadfærd som før, men nu kan mange billeder vises på samme række.

Afslutning

Det er al den kode, vi vil skrive i dette projekt, men før vi er færdige, vil jeg vise dig en vigtig sidste funktion: ændring af din apps indstillinger, der styrer dens navn, accentfarve og ikon. Disse tilgås alle under "App Settings"-vinduet, som du kan få ved at trykke på "My App" i sidebjælken. Navnet på din app vil være det, der vises, når du vælger et projekt i Swift Playgrounds, men vil også blive brugt på Hjemmeskærmen, hvis du sender din app til App Store – jeg vil ændre min til "Friendface" for at matche, hvad jeg har brugt andre steder. Derefter bruges din apps accentfarve til at farve to dele af din app: alle interaktive ting som farvede ikoner og knaptekst, men også pladsholderikonet. Swift Playgrounds vælger automatisk en tilfældig accentfarve for dig, men du kan ændre den, hvis du vil. Endelig kan vi ændre app-ikonet til noget andet. Der er en masse indbyggede ikoner at vælge imellem, som kombineres med din accentfarve for at skabe noget ret unikt. Alternativt kan du trykke på "Custom" for at importere et billede, du har designet fra Fotos eller Filer.

Hvor går turen hen?

Vi har dækket meget i denne tutorial, men det er virkelig kun begyndelsen – Swift Playgrounds kan tage billeder med kameraet, læse brugerens placering, godkende ved hjælp af Face ID, få adgang til mikrofonen og meget mere. Desuden er SwiftUI selv virkelig fyldt med utrolige funktioner, der lader dig oprette rige, kraftfulde apps til iPhone og iPad, men også Apple Watch, Apple TV og macOS. Faktisk kan Swift Playgrounds endda dele dit projekt med din Mac, så du kan skifte til Apples Xcode i stedet – det er det meget større værktøj, som de fleste professionelle iOS-udviklere bruger, men al den Swift og SwiftUI, du har lært, fungerer lige så godt her. Uanset hvad, det er slutningen på denne tutorial. Vi har dækket en masse:

  • Grundlæggende SwiftUI views og modifiers
  • Brug af List og NavigationView
  • Import af billeder og lyd via Fotos og Voice Memos
  • Ændring af billedstørrelse og afrunding af deres kanter
  • Tilføjelse af knapper, der udløser handlinger
  • Import af Swift-pakker skrevet af andre
  • Layout af vores billeder som et gitter i stedet for en liste
  • Tilpasning af dine app-indstillinger

Hvis du vil fortsætte med at lære Swift og SwiftUI, har jeg et stort, gratis kursus, der inkluderer over 20 projekter, quizzer til at teste din læring, tips, svar og meget mere. Det hedder 100 Days of SwiftUI, og som sagt er det helt gratis – det bruger Xcode, men jeg tror, du vil opdage, at alt fungerer godt i Swift Playgrounds også! For at finde ud af mere, klik her: 100 Days of SwiftUI. Jeg ser frem til at se de fantastiske ting, du laver med Swift Playgrounds! Send mig en tweet @twostraws og lad mig vide, hvad du synes om Swift Playgrounds 4 – er du begejstret for at begynde at bruge det, er der bestemte ting, du savner, og tror du, det vil hjælpe en helt ny række af udviklere med at komme i gang med Swift og SwiftUI?

Hvordan kontakter jeg Swift Playgrounds?

Eller ring 1-800-MY-APPLE. Vælg dit land eller region. Copyright © 2024 Apple Inc. Alle rettigheder forbeholdes. Privatlivspolitik Brugsbetingelser Salg og tilbagebetalinger Juridisk Sitemap. Swift Playgrounds gør det sjovt at lære at kode og bygge rigtige apps. Du løser interaktive gåder i den guidede "Get Started with Code" og lærer det grundlæggende i...

Ofte Stillede Spørgsmål

Kan jeg bruge Swift Playgrounds uden en Mac?

Ja, Swift Playgrounds er designet til at kunne bruges fuldt ud på en iPad, uden behov for en Mac. Du kan bygge og teste dine apps direkte på din tablet.

What does the name of my App mean in Swift Playgrounds?
The name of your app will be what’s shown when selecting a project in Swift Playgrounds, but will also be used on the Home Screen if you ship your app to the App Store – I’m going to change mine to Friendface, to match what I’ve used elsewhere.

Hvad er SwiftUI?

SwiftUI er et moderne framework fra Apple, der bruges til at bygge brugergrænseflader på tværs af alle Apples platforme. Det gør det nemmere og hurtigere at skabe smukke og responsive designs.

Hvordan tilføjer jeg billeder og lyd til min app?

Du kan tilføje billeder og lydfiler direkte i Swift Playgrounds ved at bruge "Add New Item"-funktionen og vælge "Photo" eller "Audio". Du kan også importere Swift Packages som Subsonic for at få udvidet funktionalitet til lydafspilning.

Kan jeg dele min Swift Playgrounds-app med andre?

Mens Swift Playgrounds primært er et lærings- og udviklingsværktøj, kan du eksportere dine projekter til Xcode på en Mac for at bygge og distribuere dem som rigtige apps via App Store.

Hvis du vil læse andre artikler, der ligner Swift Playgrounds: Lær at kode som en professionel, kan du besøge kategorien Teknologi.

Go up