Alle Kan Kode – Et Apple programmør begynder kursus

Apple har i starten af 2017 produceret et kursusprogram de kalder for “Everyone Can Code”. Dette kursusprogram har, som navnet siger, det formål at lære alle at kunne programmere.
Dette kursusprogram har jeg fordansket og du kan modtage dansk undervisning i programmet på aftenskole her på bidblog.
Målgruppen er fra ca 15 år
Apple siger selv at målgruppen for kursusprogrammet er for unge der starter på gymnasiet. Jeg mener dog at materialet kan anvendes og læres af alle fra alderen 15 år og op.
Undervisningen forgår live
Hver tirsdag aften kl 20:00 kan du komme med på en lektion i et virtuelt klasseværelse, hvor du hjemmefra din egen stue kan deltage i undervisningen.
I det virtuelle klasseværelse får du undervisningen sammen med de øvrige kursister, og vi kan tale sammen via din computer.
Hvad kræves der
Det kræver kun at du har en Mac, et Webcam, en mikrofon og et par hovedtelefoner.
Hvis du har en Macbook computer er alt dette indbygget, og du kan supplere med dit headset fra din iPhone eksempelvis.
Og så kræves der et aktivt medlemskab af, Alle Kan Kode.
Hvilket materiale bruges
Vi følger Apples eget uddannelsesmateriale.
Apple har udgivet en lærebog, som du gratis kan downloade til din Mac, din iPhone eller din iPad.
På kurset anvender vi også Apples software udviklings software XCode, som du også gratis kan downloade til din Mac
Hvordan er formen
Vi følger Apples materiale, og det tager så lang tid det tager, og hver uge får du mere viden som bygger oven på den viden du i forvejen har tillært dig via lektionerne, bogen og de opgaver du får i løbet af kurset.
Se de første lektioner og vurder om det er noget for dig
Du kan gratis se hvordan formen på kurset er, da de første 3 lektioner kan ses uden at du har et aktivt medlemskab. Lektionerne finder du neden under denne tekst.
Hvor kan du finde mere information
Du kan finde mere information omkring Alle Kan Kode ved at klikke her, og skulle du have nogle spørgsmål er du velkommen til at kontakte mig.
Lektioner
Lektion 1 – Velkommen til Alle Kan Kode
Så tager vi hul på Alle Kan Kode aftenskolen. Aftenskole programmet der har det formål at lære dig og alle der deltager at programmere i Swift på Apples platform. Velkommen…
Lektion 2 – Konstanter og variabler
Det handler om DATA, og om hvordan man håndterer data i programmer. Det gør man ved at pakke dem ind i noget der kaldes for konstanter eller variabler. Og hvad…
Lektion 3 – Operatorer
Når vi har data i programmer skal vi også kunne ændre data, og kunne se på data og ud fra vores datas værdier skal vi kunne vælge at gøre forskellige…
Lektion 4 – Kontrol flow
Et program udfører en masse funktioner i en bestemt rækkefølge, men under vejs i programmet skal rækkefølgen ændres. Det kender du fra dig selv. Nogle gange skal du dreje til…
Lektion 5 – Introduktion til XCode
Du bruger Apples værktøj XCode når du skal lave en iPhone app. Og det skal vi her i lektion 5 så det er blevet tid til at vi bliver fortrolige…
Lektion 6 – Find og ret kode fejl
Du kan ikke undgå at lave kode fejl når du programmerer. Og derfor vil du opleve at du kommer til at bruge en del tid på at lede efter den…
Lektion 7 – Find information i Xcode
Ingen kan huske alt i hovedet, så du får brug for at kunne finde brugbar information og dokumentation af de kommandoer du skal bruge i dine programmer. Om ganske få…
Lektion 8 – Interface Builder værktøjet
Brugergrænseflader er meget vigtige i et program. Det er brugergrænsefladen der i mange tilfælde gør om en bruger tager programmet til sig eller lader det ligge. Brugergrænseflader designer man i…
Lektion 9 – Lommelygte app
I denne lektion bruger vi alt det vi har lært indtil videre til at bygge en lommelygte app. Og vi laver den som et fælles projekt så der kommer masser…
Lektion 10 – Strenge
Efter sidste uges lektion trænger vi til at trække vejret dybt. Sidste uge gik stærkt, og denne gang stopper vi lidt op og fokuserer på et eneste emne, nemlig strenge….
Lektion 10.1 – Det magiske punktum
På grund af efterårsferien, er der en lille ekstra lektion som handler om datatyper. Du har brugt en masse datatyper uden at du skulle forholde dig til hvordan de er…
Lektion 11 – Lær at lave funktioner i swift
Tænk hvis du skulle forklare alt, i stedet for bare at give en kommando som “Vask op”. Eller tænk hvis du kunne sige “Vask op” og så blev der rent…
Lektion 12 – Strukturer del 1
Strukturer er en måde vi kan modellere vores verden i datatyper. Prøv at smage på ordet. Vi sætter verden i struktur. Så hvis du er ordensmenneske må dette være en…
Lektion 13 – Strukturer del 2
Der er mere vi skal lære om de datatyper vi laver som struct i Swift. I sidste lektion tog vi fat i det indledende, og i denne lektion kommer der…
Lektion 14 – Class datatyper OOP
Vi har lært om Struct datatyper og de har også sine fordele, men de mest spændende datatyper er Class datatyperne. Med disse kan vi nemlig lave det der kaldes for…
Lektion 15 – Collections
Collections betyder samlinger, og det er også det det går ud på. Collections er datatyper som samler andre datatyper. Vi nærmer os julen 2017, så du kender det der med…
Lektion 16 – Løkker i Swift
Helt tilbage i lektion 3, lærte du om 3 små trin som alt programmering er bygget over. I denne lektion skal du lære om det 3 trin, nemlig løkker. Løkker…
Lektion 17 – Introduktion til UIKit
Du har nok bemærket at der står import UIKit i alle de playgrounds vi har brugt indtil nu. Og du har nok også hørt mig omtale det nogle gange som…
Lektion 18 – Tekster og billede
Det visuelle udtryk er vigtigt i en brugergrænseflade, og i sidste lektion så vi på nogle af de mange byggesten der kan anvendes fra UIKit til en brugergrænseflade. I denne…
Lektion 19 – Kontroller i brug
I denne lektion skal vi lege med forskellige kontroller. Kontroller er dem der gør apps til noget brugerne kan interagere med, og i denne lektion arbejder vi på at få…
Lektion 20 – Auto Layout med Stack Views
Hvordan laver man en brugergrænseflade, som automatisk kan tilpasse sig alle iOS enheder uanset hvordan de vendes og drejes? Svaret hedder Auto Layout, og det tager vi hul på i…
Lektion 20.1 – Lommeregner med AutoLayout
Auto Layout kan godt virke helt umulig når man først går i gang med det. Årsagen er at du hurtigt kan lave en masse regler, og jo flere regler du…
Lektion 20.2 – Lommeregner logikken
Sidste lektion handlede om hvordan man kunne lave en lommeregner app med Auto Layout. Det er egentlig ikke meningen at vi skal bruge for meget krudt på at få lommeregneren…
Lektion 20.3 – Lommeregner datatyper
Vi fortsætter med at bygge lommeregner appen vi startede på for nogle lektioner siden. Der er masser af viden i denne app, og i denne lektion udvider vi logikken med…
Lektion 20.5 – Lommeregner v0.1
Som billedet antyder med det lille mål flag, så er vi på vej i mål med lommeregner appen. Og i den sidste lommeregner lektion, kommer vi også til at bruge…
Lektion 21 – iPad spil som modul afslutning
Vi er ved enden af modul 2, og hvert modul slutter altid med at vi laver en app sammen. Denne app er et iPad spil, og vi kommer til at…
Lektion 21.1 – iPad spillet er Game Over
Vi er ved at afslutte modul 2 i #Alle Kan Kode, og den app vi slutter modulet af med er et ord gætte spil til iPad. Vi fik brugergrænsefladen på…
Lektion 22 – Optionals
Swift har en type man kalder for optional. I andre programmeringssprog kaldes det ofte for en option, eller en nullable type. Kært barn har som sagt mange navne, men konceptet…
Lektion 23 – Type casting
Swift er type sikkert. Det har i hørt mig sige om og om igen. Men nogle gange har vi behov for at kunne skifte type, og det er der ikke…
Lektion 24 – Guard og Scope
Vi snupper 2 kapitler denne gang, og det skyldes at de kapitler vi skal igennem har begrænset kød på sig. De 2 emner vi skal lære er Guard og Scope….
Lektion 25 – Enums i swift
Når vi har nogle faste udfald som aldrig ændrer sig så definerer vi en enum data type i Swift. Og ud over at vi kan bruge en enum til at…
Lektion 26 – Segue og Navigation
En app består altid af flere skærmbilleder, og overgangen mellem disse kalder man for en segue, og måden brugeren skifter mellem disse kaldes for navigation. Hvad er en Segue? Hvis…
Lektion 26.1 – Best Practice ved Segue og navigation
I forrige lektion lærte vi om at få flere skærmbilleder ind i en app. Men det var også en lektion jeg kunne mærke krævede lidt mere uddybning. Derfor uddyber jeg…
Lektion 27 – Tab bar
Hvad er det der er i bunden af rigtig mange iPhone apps? Det er faneblade, eller på engelsk computer sprog det vi kalder for Tab bars. Og dem skal du…
Lektion 28 – Et liv som ViewController
Hvad sker hvornår, når vores brugergrænseflade tegnes, og hvor kan vi som programmører sætte kode ind der bliver afviklet på de tidspunkter vores brugergrænseflade tegnes. Det skal vi lære i…
Lektion 29 – App Workflow
Hvordan får man overblikket over opbygningen af sin app inden man begynder at kode den? Det er en af de spørgsmål som du kan finde inspiration til i denne lektion….
Lektion 30 – Vi bygger en personlighedstest app sammen
Vi er ved at være færdig med modul 3, og hvert modul slutter med at vi skal lave en app sammen. Den app vi skal lave til afslutning af modulet…
Lektion 30.1 – Mere personlighedstest app
I forrige lektion gik vi i gang med at afslutte modul 3. Hvert modul slutter altid med at vi lave en app sammen, og den app vi gik i gang…
Lektion 30.2 – Personlighedsapp resultat
Vi afslutter modul 3 i denne lektion, ved at kode personlighedstest appen næsten færdig. Det skal forstås sådan at jeg gennemgår det svære og lader det være op til dig…
Lektion 31 – Protokoller til mere
Vi har før set på anvendelse af protokoller til bla. at returnere data mellem skærmbilleder. Vi har også set på hvordan vi via en bestemt protokol kan printe alt til…
Lektion 32 – En Apps livscyklus
Vi har før set på en ViewControllers livscyklus, og nu skal vi se på en Apps livscyklus. Her tænkes ikke på hvordan den opfører sig i App store, men hvilke…
Lektion 33 – Model View Controller
Vi har været inde på emnet før, men det er nu blevet tid til at dedikere en lektion til selve strukturen som alle apps på Apples platform er opbygget efter….
Lektion 34 – Scroll Views
Din iPhone har en lækker men lille skærm, og der er grænser for hvad man kan vise på en lille skærm. Derfor scroller vi og pinch zoomer. Ja der er…
Lektion 34.1 – Tilbage til ScrollViews
I lektion 34 af #Alle Kan Kode, gennemgik vi kapitlet fra bogen omkring Scroll Views. Men kapitlet kan godt være forvirrende, og derfor kommer vi tilbage til scroll views i…
Lektion 35 – Tabel Views
Vi snusede lidt til Scroll Views i forrige lektion. I denne lektion skal vi lære om et barn af Scroll views, nemlig Table Views. Kort fortalt handler det om når…
Lektion 36 – Mere Table Views
Der er mere til TableViews end den intro du fik i forrige lektion. Så i denne lektion tager vi fat i lidt flere eksempler så du blandt andet kan slette,…
Lektion 36.1 – Statiske tabel views
Vi skulle have set på dette i forrige lektion, men vi nåede det ikke. Men så tager vi bare en lille ekstra lektion hvor vi kaster os ud i statiske…
Lektion 36.2 – Statiske Tabel Views del 2
Vi fortsætter med at se på statiske tabel views i denne lektion, hvor vi foreløbigt runder TabelViews af. I lektionen laver vi de sidste ting der skal til for at…
Lektion 37 – At gemme data
Forestil dig at du brugte en app, og næste gang du startede den havde den glemt dine data. Nej Vel? Apps skal gemme data og skal helst gøre det automatisk….
Lektion 38.1 – Opsamling på System View Controllere
Der var en del kød på forrige lektion omkring de indbyggede System View Controllere, og der er desværre også et bar fejl i eksempel opgaven i bogen. Så derfor bruger…
Lektion 39 – Avancerede skærmbilleder del 1
Brugergrænseflader er vigtige. Nogle gange er det selve brugergrænsefladen der afgør om brugeren får en værdi ud af en app eller ej. En god brugergrænseflade er intuitiv, viser et minimum…
Lektion 39.1 – Avancerede skærmbilleder del 2
I del 2 af hvordan vi kan lave avancerede skærmbilleder, fortsætter vi med at se på hvordan vi kan styre UIDatePickers så de vises og skjules på foranledning. Og vi…
Lektion 39.2 – Avancerede skærmbilleder del 3
I tredje del af avancerede skærmbilleder kommer vi til at se på sikker indtastning af heltal. Brug af en switch samt valg mellem en liste af forud definerede udfald. Heltal…
Lektion 39.3 – Avancerede skærmbilleder del 4
Denne lektion er fyldt med velkendte emner. I de forrige lektioner har vi arbejdet på en app der skal bruges til at tjekke kunder ind på et hotel. Men nu…
Lektion 40 – ToDo App del 1
Vi er kommet til afslutningen af modul 4, og hvert modul slutter med at vi i fællesskab bygger en app. Denne gang er det en opgave eller ToDo liste app,…
Lektion 40.1 – ToDo App del 2
Vi er i gang med afslutning af modul 4, og vi arbejder på en ToDo liste app. Men der er et emne som vi ikke har rørt så meget ved…
Lektion 40.2 – ToDo App del 3
Vi arbejder videre med vores ToDo liste app, og i denne lektion kommer vi til at se på nogle ting som vi næsten har prøvet før. Alligevel er der nogle…
Lektion 40.3 – ToDo App del 4
Det handler om at oprette og rette opgaver i denne lektion, og naturligvis de brugergrænseflade ændringer som vi ikke nåde at se på i forrige lektion. Nemlig hvordan du kan…
Lektion 40.4 – ToDo App del 5
I sidste del af lektion 40 serien får vi lavet vores ToDo liste app færdig. Vi mangler kun at få lavet listevisningen så du også kan markere en opgave som…
Lektion 41 – Closures
Endelig skal vi til at se på closures. Vi har brugt nogle af dem men har ikke rigtig forholdt os til hvad de er og hvorfor vi bruger dem. Kort…
Lektion 41.1 – Closures close up
Vi snupper lige en lektion mere der handler om closures. Hvorfor, fordi jeg vil være helt sikker på at i har det godt med closures inden vi fortsætter med materialet….
Lektion 42 – Extensions og små animationer
I denne lektion skal du lære om extensions som primært er en måde du kan organisere og strukturere din kode på, og så skal vi tage hul på at lave…
Lektion 42.1 – Animationer også med constraints
I denne lektion rykker vi fra forrige lektions aktiviteter i playgrounds, ind i selve XCode, og vi skal se hvordan vi kan lave animationer både med det vi lærte i…
Lektion 43 – Netværks API alle kan li
Flere og flere tjenester rykker op i skyen. Det betyder at nutidens software har brug for at tale sammen med de mange tjenester der findes i skyen, og for at…
Lektion 44 – JSON
Javascript Object Notation er næsten blevet normalen for overførsel af data via systemer på internettet. Det er der en god grund til. Det er til at læse, det fylder minimalt…
Lektiono 44.1 – Løsning af JSON opgaverne
Som lovet i forrige lektion, tager vi en opsamlings lektion denne gang. Vi gennemgår eksemplerne i bogen og løser opgaverne. Der er nogle vigtige emner i bogen omkring hvorfor vi…
Lektion 45 – Concurrency
Din iPhone har en virkelig stærk cpu. Og den er i stand til at afvikle en masse kode samtidigt. Og nogle ting er vi nød til at afvikle samtidigt af…
Lektion 45.1 – Itunes søge app
I de forrige lektioner har vi lært om URLSession og GCD og i denne lektion gør vi brug af det vi har lært, og løser en en opgave sammen som…
Lektion 46 – Restaurant app del 1
Forestil dig en simpel udgave af Just Eat. Ja den app du helt sikkert har hørt om. Sådan en app starter vi på at lave sammen. Det er selvfølgelig en…
Lektion 46.1 – Restaurant app del 2
Vi fortsætter med at se på model koden til vores restaurant app. Modellerne defineres ud fra de data vi får fra serveren, men vi kommer også til at se på…
Lektion 46.2 – Restaurant app del 3
I denne lektion koncentrerer vi os om netværkskoden i vores Just Eat Light app. Vi fik skrevet grund strukturen i forrige lektion, men vi skal have skrevet den funktionelle kode,…
Lektion 46.3 – Restaurant app del 4
Vi arbejder med brugergrænsefladen til vores Just Eat light app i denne lektion. Og ligesom i forrige lektion fokuserer vi på små områder af gangen. Og det betyder at vi…
Lektion 46.4 – Restaurant app del 5
Vi er godt i gang med vores Just Eat kopi app projekt, og selvfølgelig skal det være muligt at kunne bestille mad i vores app, ellers er den da ikke…
Lektion 46.5 – Restaurant app del 6
Hvordan kan man overføre data fra en scene i et storyboard til en anden scene, som oven i købet ikke er på samme faneblad som en selv? Det skal vi…
Lektion 46.6 – Restaurant app del 7
I denne lektion fokuserer vi på at få logikken i vores Just Eat kopi app færdig, så vi har en fungerende app med skønhedspletter, som vi så kan arbejde på…
Lektion 46.7 – Restaurant app del 8
Hvordan starter man forfra på en bestilling i vores Just eat kopi app. Det skal vi se på i denne letion og vi skal også have billeder på de forskellige…
Lektion 46.8 – Restaurant app del 9
Vores Just Eat light kopi app, er i følge bogen færdig. Men bogen har også nogle ekstra udfordringer vi kan udvide appen med. Og det skal vi naturligvis gøre med…
Lektion 46.9 – Restaurant app del 10
Vi slutter modul 5 af med lidt ekstra godbidder som du har set brugt i apps, og som jeg også har lovet jer. Eksempelvis den famøse spinner der viser at…
Lektion 47 – Design og det løse
Dette er første lektion i modul 6, og modul 6 handler ikke så meget om at kode, men om de processer der drejer sig omkring softwareudvikling. Det betyder at vi…
Lektion 48 – Prototyping og Source Control
Prototyping er en måde at designe produkter, herunder også software, og måske den mest relistiske måde at finde ud af om et produkt skal se dagens lys eller begraves sammen…
Lektion 49 – Planlægning af app og Key Value Observer
I denne lektion lufter vi lidt flere af Apples design tanker, og så skal vi se på en anden måde vi kan kommunikere data ændringer på. Til det formål vender…
Lektion 50 – Fejlrettelser og Adgang
Software er altid under forandring. Der er forbedringer og fejlrettelser, og de hænger sammen. I forrige lektion lavede vi en hel del forbedringer, og i den forbindelse fik vi en…
Lektion 51 – Save state del 1
Du kender godt oplevelsen af at en app eller din computer starter der hvor du sidst anvendte den. Når man taler om at save state, taler man netop om den…
Lektion 52 – Save state del 2
Denne lektion er del 2 af vores lille serie om at gemme tilstanden for en app. Det er en pakket lektion hvor vi får appen til at kunne gemme tilstanden,…
Lektion 20.4 – Lommeregneren samles
I denne episode 4 af de ekstra lektioner om lommeregneren, går vi i gang med at samle brugergrænsefladen med modellen / logikken som vi har udviklet tidligere, og du vil…