Objavljeno: 29.11.2016 | Avtor: Boris Šavc | Monitor December 2016

Applovo igrišče

Mobilna aplikacija Swift Playgrounds je namenjena predvsem otrokom. Novi generaciji programerjev skozi igro predstavi osnove kodiranja in jih na zabaven način vpelje v svet programskega jezika swift. S pridom jo lahko uporabijo tudi učitelji, starši in drugi, zdravih programerskih temeljev željni odrasli.

Osnovni zaslon, ki se nam prikaže po začetnem uvodu, je razdeljen na dva dela. Z ikonama na spodnjem robu zaslona izbiramo med lastnimi projekti (My Playgrounds) in nalogami ter izzivi (Featured).

Apple je igrišče predstavil že v razvojnem okolju Xcode. Gre za zmožnost, ki v sicer profesionalnem razvojnem okolju za razvijanje aplikacij predstavlja prostor, v katerem kodo preizkušamo in se učimo osnov. Swift Playgrounds zasnovo zmožnosti Playground v Xcode nadgradi s tridimenzionalnim likom, ki ga nadzorujemo s pisanjem prave kode. Lik z imenom Byte se premika skladno z ukazi v programskem jeziku swift. Ker je kodo moč izvoziti v razvojno okolje Xcode, lahko pripomoček uporabljamo tudi za izdelavo osnovnih programskih prototipov. Aplikacija Swift Playgrounds je uporabnikom (novejše) tablice iPad v trgovini App Store na voljo brezplačno.

Začetek

Osnovni zaslon aplikacije Swift Playgrouds, ki se nam prikaže po začetnem uvodu, je razdeljen na dva dela, Featured in My Playgrounds. V prvem razdelku najdemo dva sklopa začetnih nalog, osnove Fundamentals of Swift in nadaljevalni tečaj Beyond the Basics, ter vrsto izzivov. Slednjih se lotimo, ko opravimo z začetnimi nalogami in osvojimo dovolj znanja in poguma za resnejši skok v morje kode programskega jezika swift. Oba sklopa začetnih nalog z ukazom Get najprej prenesemo iz spleta, nato z direktivo Open izberemo prvega – Fundamentals of Swift. Uporabniški vmesnik, ki se nam prikaže, je odvisen od orientacije tablice. V ležečem položaju bomo kodo pisali na levi polovici zaslona, akcija pa se bo izvajala na desni. Malce drugače je aplikacija zasnovana, ko je tablica obrnjena pokončno, grafika je pripeta na vrhnji del zaslona, ustvarjanje se dogaja spodaj.

Pisanje kode je (spočetka) preprosto in ne zahteva tipkovnice. Ukazi, ki so na voljo, se sproti izpisujejo na zaslonu spodaj.

Pisanje kode je preprosto, ukaze, ki jih program sproti uvaja, zgolj izbiramo. Prva naloga, v kateri se mora Byte premakniti naprej in pobrati dragulj, je tako rešljiva s trikratno izbiro ukaza moveForward() in direktivo collectGem(). Po pritisku gumba Run My Code naredi Byte v digitalnem svetu tri korake in pobere rdeč dragulj. V nadaljevanju spoznamo še ukaza za obračanje turnLeft() in premikanje stikal toggleSwitch(), nato pridemo do prvega programa z napako. Razhroščevanje je predstavljeno z že napisanim programom, ki Byte popelje v slepo ulico. Na nas je, da nepravilne ukaze zbrišemo in nadomestimo s pravimi. Ko naletimo na prve težave, ki jih navadno odpravljamo z večkratnimi poskusi in učenjem iz napak, nas zmoti počasnost sicer prikupnega lika. Izvajanje spisanega programa pohitrimo z uporabo gumba 1x, ki je v desnem zgornjem kotu grafičnega zaslona. Najvišja, štirikratna brzina bo zadovoljila tudi najbolj neučakane programerje.

Funkcije

Skladno z ukazi se spreminja digitalni svet. Vedno zahtevnejše okolje zahteva kompleksnejše programe. Zadnja vaja v prvem sklopu nalog želi, da najdemo najhitrejšo pot, ki Byte pripelje do dragulja. Svet je posejan s portali, ki nas hitro zavedejo, da Byte pošljemo okoli zadnjice v žep. Ko premagamo še zadnjo oviro uvoda, nas čakajo funkcije. Spoznamo jih s svežo predstavitvijo, podobno tisti, ki nas je čakala ob zagonu aplikacije. Bistvo funkcij je predstavljeno z zavezovanjem čevljev. Ker se oba čevlja zavežeta z enakim vrstnim redom korakov, jih združimo v enoten postopek. Nastala je prva funkcija.

Funkcije v obstoječo kodo vrivamo tako, da najprej izberemo ustrezno sintakso in jo z vlečenjem zavitega zaklepaja vstavimo vanjo.

Čevlje pri pisanju kode nadomesti obračanje na desno. Ker ukaza med poprej nastavljenimi direktivami ni, ga ustvarimo sami. Byte se obrne v desno tako, da ga pošljemo trikrat v levo. V programu je obračanje videti takole:

func turnRight() {

turnLeft()

turnLeft()

turnLeft()

}

Nastalo funkcijo uporabimo v kompleksnejšem svetu, ki nam premikanje oteži s tremi stikali in parom portalov. Pri načrtovanju pohoda na poslednje neprižgano stikalo si pomagamo s povečevanjem in obračanjem digitalnega sveta. Akcijo nam omogočita znani gesti s prsti, ščipanje in raztegovanje prstov nam dogajanje približa ali oddalji, obračanje prstov pa menja pogled, iz katerega gledamo svet in svojega junaka. V nadaljevanju sekcije nadgradimo znanje o funkcijah, ki jih lahko poljubno imenujemo in tudi gnezdimo. Ena izmed vaj nas nauči, da v funkciji po želji kličemo druge funkcije. Kmalu ugotovimo, da so problemi rešljivi na več načinov, Swift Playgrounds navadno pričakuje zgolj dosego cilja, poti pa ne ocenjuje. Sklop o funkcijah se konča s pomembnim naukom. Pri načrtovanju programa je pomembno, da probleme, na katere naletimo, razbijemo na več manjših. To storimo z identificiranjem ponavljajočih se zaporedij. Ko je ta trdnjava osvojena, so na vrsti zanke.

Poleg samostojnega učenja aplikacija Swift Playgrounds podpira tudi učenje drugih.

Zanke

Vsako novo orodje se nam najprej predstavi v lahko razumljivih slikah in besedi. Na primeru sajenja korenja se naučimo zanke For.

Predstavitveni film zanke predstavi na zgledu sajenja korenja. Ponavljajoče se akcije zanke izvajajo tolikokrat, kot določimo v sintaksi. Čeprav se sprva zdi, da snov ni težja od že osvojenih funkcij, se težavnostna krivulja vaj strmo dviga. Pri reševanju nalog je treba veliko pozornosti in še več razhroščevanja. Manjka nam pripomočkov, ki bi iskanje napak olajšali. Že označevanje korakov, ki jih Byte trenutno izvaja, bi bilo nadvse dobrodošlo, tako pa se moramo zadovoljiti z domačimi pomagali. Med kodo vrinemo presledke, ki nam vsaj malce nakažejo, kje trenutno se pri izvajanju kode mudi Byte. Prva naloga z zankami, ki nam ponudi vpogled v ustrezno sintakso, je rešljiva z:

for i in 1 … 5 {

moveForward()

moveForward()

collectGem()

moveForward()

}

Naloge so odlično zasnovane. Poleg kode nas učijo uporabljati Swift Playgrounds. Druga vaja zank nam tako razloži, kako zanko For pripeti na obstoječo kodo. Postopek je preprost, z izbiro ustreznega ukaza jo najprej vstavimo na začetek kode, izberemo zaviti zaklepaj in zanko razširimo čez želeno kodo. Kot bi mignil, je Byte na cilju. Vedno bolj spoznavamo, da aplikacija ni le otroška igrača, temveč je namenjena vsem programiranja željnim uporabnikom. Učenje programiranja je žal mogoče zgolj z neutrudnim ponavljanjem napak, ki jih s polžjimi koraki odpravljamo ter hkrati osvajamo, da jih v prihodnosti ne bi več delali. Swift Playgrouds želi težaško delo zaviti v zabavno ogrinjalo in tako rudarjenje približati prav vsakomur.

Pogojni stavki, logični operatorji, naprednejše zanke

Učenje nadaljujemo s pogojnimi stavki, ki so predstavljeni na zgledu gneče na cesti in prehoda za pešce. Če je luč zelena, Byte cesto prečka, v nasprotnem primeru počaka. Praktično se stavka If naučimo s prižiganjem naključno izklopljenih in vklopljenih stikal, kombiniranjem pogojev z zankami, ustvarjanjem pametnejših funkcij in še česa. Pogojne stavke nadgradimo z logičnimi operatorji, kjer Byte na primer pošljemo v določeno akcijo le, ko je pot zaprta in je pred zaporo dragulj (logični IN/AND &&), če je simpatični nevednež na stikalu ali pod svetlečim kamnom (logični ALI/OR) ali če blokade na poti ni (logični NE/NOT !). Prav tako nadgradimo zanke, kjer sintakso For zamenja While. Slednja zanka se izvaja, dokler ni zadoščeno poprej določenemu pogoju. Predstavitev zanko While lepo pojasni na zgledu zabijanja žeblja. S kladivom žebelj zabijamo, dokler gleda iz deske. Podobno se v prvi vaji Byte premika in prižiga stikala, dokler ne naleti na prvo, ki je že vklopljeno.

while isOnClosedSwitch {

toggleSwitch()

moveForward()

}

Aplikacija Swift Playgrounds nas iz vaje v vajo opremlja z zahtevnejšimi orodji in nas informira o različnih pristopih, ki so nam na voljo. Tako moramo pri eni izmed vaj z zankami izbrati pravo. Uspešno opravljena naloga nam za vedno vcepi razumevanje, kdaj uporabiti zanko While in kdaj For. Včasih je težava rešljiva s katerokoli izmed zank, včasih zgolj z eno, včasih pa s kombinacijo obeh. Med drugim se naučimo, da je zanke moč gnezditi in še nadgraditi njihove sposobnosti. Zadnji sklop prvega dela vaj Fundamentals of Swift nas s popravljanjem obstoječe kode in reševanjem najrazličnejših težav nauči o algoritmih. Čeprav so nas programiranja včasih učili drugače, najprej smo spoznavali algoritme, šele nato kodo, Apple na Igrišču izbere drugačen pristop. Če smo dosedanjim lekcijam vestno sledili, tudi s poslednjim sklopom ne bi smeli imeti težav. Pripravljeni smo na nadaljevanje poti, naprednejše naloge otvorijo spremenljivke.

Naprednejša orodja

Nadaljevalni sklop nalog z naslovom Beyond the Basics ne spominja več na igranje iger Where’s My Water in Cut The Rope, temveč gre za resnejše probleme, kar pokaže že prva vaja, kjer moramo poleg pobiranja draguljev (z drugim likom, Byte ostaja na otroškem igrišču z osnovami) nabrano tudi prešteti. Naprednejše naloge nas poučijo o tipih, inicializaciji, parametrih in poljih. Ko osvojimo vse, se lotimo izzivov. Nabor slednjih Apple pridno širi, trenutno so na voljo razbijanje zidakov Brick Breaker, igra Kamen, papir, škarje (Rock, Paper, Scissors), labirint Running Maze, risanje zvokov Drawing Sounds, miselni orešček Blink in potapljanje ladjic Battleship.

Kodo, ki poganja naloge na Igrišču, najdemo pod ikono s tremi pikami in izbiro Advanced. Zgolj za naprednejše uporabnike.

Če nam reševanje vnaprej zastavljenih težav za učenje ni dovolj, lahko v vsakem trenutku preverimo, kaj se dogaja v ozadju. Datoteke, ki se izvajajo pri lekcijah, so dostopne z izbiro ikone s tremi pikami, možnostjo Advanced in ukaza View Auxiliary Source Files. (Ležeči) Zaslon se predeli na dvoje, na levi so imeniki in datoteke, na desni njihova vsebina. Vsa izvorna koda je na voljo zgolj za branje. Naprednejši uporabniki bodo iz nje razbrali marsikatero skrivnost in se podučili o različnih prijemih, ki jih uporabljajo pravi znalci.

Dovolj igranja

Da je aplikacija Swift Playgrounds resno orodje, ki ga bo vesel vsak nadobudni programer, priča vrsta zmožnosti, ki z igranjem nima nobene zveze. V Igrišče je moč uvoziti prave projekte iz razvojnega okolja Xcode in se z njimi ukvarjati na poti. Tablica iPad jih sprejme na dva načina. Najlaže jih je uvoziti ob pomoči oblačne shrambe iCloud Drive. Na osnovnem zaslonu izberemo znak plus in izbiro iCloud Drive in že smo povezani z jabolčnim oblakom. Če so na njem projekti iz razvojnega okolja Xcode, jih lahko uvozimo. Če želimo povezavo z drugimi oblačnimi storitvami, s katerimi je povezana tablica iPad, uporabimo po znaku plus ukaz More. Prav tako se programiranja na tablici iPad po želji lotimo iz ničle. Nov projekt brez pomagal ustvarimo z izbiro znaka plus in direktive Create Playground. Gumb Run My Code nam spisano kodo prevede in izvede. Kot vsak dostojen prevajalnik nam tudi Swift Playgrounds ob napakah sporoči, kaj je šlo po zlu.

Poleg samostojnega učenja aplikacija Swift Playgrounds podpira tudi učenje drugih. Dogajanje na zaslonu lahko posnamemo z izbiro ikone s tremi pikami in ukazom Record Movie. Na zaslonu se prikaže rdeč gumb za snemanje, z njim ustvarimo predstavitveni material za učenje drugih. Podobno akcijo zajamemo v sliko (Take Picture), dokument (Create PDF) ali jo predvajamo v živo (Broadcast Live). Slednje je omogočeno z vrsto pretočnih aplikacij, ki jih najdemo na tržnici App Store. Učiteljem sta za nameček namenjeni tudi odlični elektronski knjigi Swift Playgrounds: Learn to Code 1 in 2, ki ju najdemo v digitalni knjigarni iBooks. Na voljo sta povsem brezplačno.

Učenje z aplikacijo Swift Playgrounds nam olajšata brezplačni Applovi e-knjigi, ki ju najdemo v knjigarni iBooks.

Naroči se na redna tedenska ali mesečna obvestila o novih prispevkih na naši spletni strani!

Komentirajo lahko le prijavljeni uporabniki

Monitor na Facebooku

Monitor TV na YouTube

0dAqUiHKe3c

  • Polja označena z * je potrebno obvezno izpolniti
  • Pošlji