Programmera i Swift

4 dagar

Om kursen

Swift är ett objektorienterat programspråk framtaget av Apple för utveckling för deras plattformar macOS (Macintosh-datorer), iOS (iPhone och iPod touch), iPadOS (iPad), watchOS (Apple Watch) samt tvOS (Apple TV). Swift bygger på öppen källkod och är även tillgängligt för utveckling för operativsystemet Linux och z/OS. Språket lanserades 2014 och uppdaterades i september 2019 till version 5.1. Utvecklare har tillgång till ett standardbibliotek som är gemensamt vid utveckling för samtliga plattformar. Detta standardbibliotek bygger också på öppen källkod. Därutöver finns separata tilläggsbibliotek som är specifika för utveckling för macOS, iOS, iPadOS, watchOS och tvOS.

Kursen ger en solid grund att stå på för alla som ska arbeta med programmering i Swift. Kursen omfattar merparten av programspråket Swift samt centrala delar av Swifts standardbibliotek. Kursen tar endast upp de delar av biblioteken som är generella för all utveckling i Swift (modulerna Swift och Foundation), och inte de plattformsspecifika tilläggsbiblioteken. Kursen tar alltså inte upp apputveckling för iOS eller utveckling av applikationer för macOS, men är däremot ett lämpligt gemensamt första steg för dem som efter kursen vill utbilda sig inom något av dessa områden, t ex via kursen Apputveckling för iOS. Kursen bygger på version 5.1 av Swift.

Kursens teoripass varvas med praktiska övningar i programspråket Swift och dess standardbibliotek. Vi utnyttjar verktyget Xcode, där interaktiva playground-filer används i de inledande momenten, medan övningar i senare kapitel byggs som projekt i Xcode. Vi visar också hur man utför enhetstester med testramverket XCTest.


Innehåll

Programspråket Swift

  • Historik
  • Variabler, konstanter och typinferens
  • Flerradiga strängkonstanter
  • Namnsättningsregler
  • Operatorer
  • Typomvandling
  • Kommentarer
  • Synonymer för typnamn
  • Satser, block och inre block
  • Villkorlig exekvering (if - elseswitchguard - else, villkorsoperatorn)
  • Upprepad exekvering (whilerepeat - whilefor - in)
  • Användning av breakcontinue och fallthrough i styrstrukturer
  • Värden som kan saknas (optionals)
  • Explicit kontra påtvingad uppackning av värden
  • Förvalsoperatorn
  • Hur man väljer rätt variabeltyp
  • Sammansatta värden (tuples)
  • Funktioner och funktionsanrop
  • Externa och lokala argumentnamn
  • Funktionstyper
  • Lambdauttryck (closures)
  • Kvarhållna värden (capture)
  • Uppräknade datatyper (enumerated types)
  • Uppräknade datatyper med matchande värden
  • Uppräknade datatyper med anknutna värden
  • Poster och posttyper
  • Lagrade och beräknade egenskaper
  • Egenskaper med observation av ändring
  • Instans- och typegenskaper
  • Nästlade typer
  • Objektorienterad programmering
  • Värdetyper kontra referenstyper
  • Objekt och klasser
  • Meddelanden och metoder
  • Initieringsmetoder
  • Åtkomstnivåer
  • Självreferens (egenskapen self)
  • Klassegenskaper och klassmetoder
  • Metoder i posttyper och uppräknade datatyper
  • Automatisk referensräkning (ARC)
  • weak- resp unowned-deklarerade referenser
  • Arv och dynamisk bindning
  • Omdefinition av egenskaper och metoder
  • Typomvandling av objektreferenser
  • Utbyggnad av typer (extensions)
  • Gränssnitt (protocols)
  • Ogenomskinliga typer (opaque types)
  • Test av typtillhörighet för objekt
  • Att välja mellan posttyper och klasser
  • Språkunderstödd felhantering
  • Selektorer
  • Kontroll av API-tillgänglighet under exekvering
  • Villkorlig kompilering


Swifts standardbibliotek

  • Grundläggande datatyper
  • Texthantering (String)
  • Datastrukturer (ArraySet och Dictionary)
  • Typerna Any och AnyObject
  • Stöd för klartextpresentation (CustomStringConvertible)
  • Stöd för likhetsjämförelse (Equatable och Hashable)
  • Stöd för storleksjämförelse (Comparable)
  • Stöd för kopiering (NSCopying)
  • Utskrifter i kommandoskalet
  • Kommandoradsargument
  • Matematiska konstanter och funktioner
  • Bitvektorer (OptionSet)
  • Nationellt korrekt formatering av värden
  • Nationellt korrekt sortering
  • Hantering av datum och klockslag
  • Hantering av lokala filer
  • Hantering av URL-adresserade filer
  • Flertrådad exekvering (DispatchQueue)
  • Tidsstyrd exekvering (Timer)
  • Underrättelser (NotificationCenter)
  • Key-Value Coding
  • Key-Value Observing


Utvecklingsverktyget Xcode

  • Interaktiva playground-filer
  • Att arbeta med projekt
  • Att använda dokumentationen
  • Enhetstester med ramverket XCTest


Mål

  • Du ska förstå och kunna använda programspråket Swift.
  • Du ska känna till centrala delar av Swifts standardbibliotek.
  • Du ska kunna utföra enhetstester med hjälp av testramverket XCTest.


Målgrupp

Systemutvecklare som vill lära sig programspråket Swift från grunden.

Förkunskaper

Kunskaper om objektorientering motsvarande kursen Objektorientering samt erfarenhet av något högnivåspråk. Erfarenhet av objektorienterad programmering är en fördel men inget krav.

Beskrivning

Kursen omfattar programspråket Swift, centrala delar av Swifts standardbibliotek och testramverket XCTest. Teori varvas med praktiska övningar i täta pass.

Kursmaterial

  • Egenproducerad kurspärm (vi tillhandahåller ett provavsnitt)
  • USB-minne eller CD-skiva med samtliga illustrationsexempel och lösningsförslag till samtliga övningar





Kurslängd
Fyra dagar

© Copyright 2021 HB Bohel Smådatorprodukter. Alla rättigheter reserverade. Alla varumärken och registrerade varumärken tillhör respektive ägare.