Na tablicah, za tablice
Na tablicah se lahko igramo, brskamo po internetu, igramo, gledamo videe, napišemo kakšno e-pismo in se igramo. Sem kaj izpustil? Točno, na tablicah lahko tudi programiramo!
Prav res, tako na Androidih kakor tudi na jabolčnih napravah najdemo številna programerska okolja. Od takih za učenje programiranja, ki so običajno prilagojena mlajšim uporabnikom, do takšnih, s katerimi lahko izdelamo čisto resne programe za pametne telefone in tablice. Da to ni samo prazna obljuba, dokazuje tokratni članek, v katerem bomo opisali kar tri programersko usmerjene igrice, ki so bile sprogramirane v programu za tablice iPad.
V članku si bomo ogledali tri skupine programov - igrice z elementi programiranja, enostavna okolja za učenje programiranja in programskih jezikov ter "resna" programska okolja za izdelavo programov za tablice in pametne telefone. Programi iz prvih dveh skupin lepo tečejo tudi na pametnih telefonih, za razvoj večjih aplikacij pa je zaradi velikega zaslona bolje poseči po tablici in morda nanjo priklopiti še tipkovnico.
Če imate v družini podmladek, ki ga zanima programiranje (ali pa si le želite, da bi jih kaj vzpodbudilo k temu), si oglejte tudi naš članek o namiznih programerskih orodjih za mlade programerje, Prvi koraki v programiranje, ki smo ga objavili v lanski januarski številki (www.monitor.si/clanek/prvi-koraki-v-programiranje2/).
Programe smo preizkušali na domačih iPadih prve in tretje generacije ter na androidni tablici Yarvik Xenta TAB10-201, ki jo je prijazno posodilo podjetje Domex.
Pregled začnimo s programi za Android, in to z igrico Light-Bot, ki jo lahko igrate tudi v spletu (armorgames.com/play/2205/light-bot). V igrici vodite robota, ki se sprehaja po kvadratni mreži, vaša naloga pa je, da vsa modra polja prebarvate v rumena. Pravzaprav robota ne vodite neposredno, temveč morate napisati program, ki ga bo popeljal naokoli.
Programski jezik je enostaven. Na voljo imate ukaze za premik, obrat, skok in barvanje polja. Z metodo povleci-in-spusti jih razmestite v dvanajst celic dolg program. Ker je dolžina programa vsaj na višjih stopnjah velika omejitev, sta na voljo tudi dva podprograma, dolga osem celic. Podprograma lahko kličete iz glavnega programa, lahko pa tudi en podprogram kličete iz drugega, tako kot na sliki.
Program je sicer čisto prijeten, ima pa nekaj opaznih slabosti. Najpomembnejša med njimi je, da med izvajanjem programa ne vidite, kateri korak robotek trenutno izvaja, zato je treba dogajanju zelo natančno slediti, če želite odpraviti napake. Druga velika slabost pa je, da se Light-Bot ne zna dobro prilagoditi velikim zaslonom na tablicah. Primernejši bo za igranje na pametnem telefonu.
Light-Bot
Igrica z elementi programiranja.
Cena: Zastonj.
Za: Enostavnost (razen najvišjih nivojev).
Proti: Neprilagojenost za velike zaslone, težavni najvišji nivoji.
Ko bodo otroci prerasli robotka, jim lahko pokažete resnično programiranje. In kaj je bolj zabavno od želvje grafike, starodavnega pristopa, ki ga je vpeljal Logo že davnega leta 1967?
Algoid je programsko okolje, v katerem pišemo enostavne grafične programe, ki na zaslonu rišejo raznobarvne pisane like. Programirano v javascriptu (oziroma Cju) podobnem jeziku, med izvajanjem pa program lahko prikazuje vrstico, ki se izvaja, kar olajša razumevanje programa - sploh takrat, kadar ne naredi tistega, kar smo si želeli. Omogočeno je tudi enostavno razhroščevanje s sprehajanjem po programu korak za korakom. Programiranje je olajšano s kontekstnim prikazom funkcij (vpišete "algo.", program pa prikaže vse metode iz tega razreda).
Algoid se financira z reklamami, a so pospravljene v spodnji del zaslona in niso pretirano moteče.
Algoid
Okolje za učenje programiranja.
Cena: Zastonj (reklame).
Za: Sodoben programski jezik.
Proti: Omejen na risanje črt.
Programiranje v programu Algoid
Večjo svobodo pri programiranju omogoča Frink, ki ponuja programiranje v javi podobnem jeziku. Pravzaprav gre za zelo zmogljiv kalkulator, ki je dobil tudi zmožnost programiranja ter veliko knjižnico fizikalnih enot in pretvornikov. Poleg programiranja računsko intenzivnih programov (veliko zgledov najdete na futureboy.us/fsp/samples.fsp) omogoča tudi programiranje grafičnih programov in zna dostopati do senzorjev naprave. Tako si lahko spišete čisto pravi program, ki se odziva (na primer) na dotik. Omejitev je le, da tega program ne morete predelati v samostojno aplikacijo, temveč ga morate izvajati znotraj Frinka.
Samo okolje je zelo špartansko. Na voljo nam je urejevalnik, pa gumb za zagon programa in nič kaj dosti več. Dokumentacija, zgledi ... vse to je dostopno le s spletnim brskalnikom, tako da boste vsaj na začetku veliko časa preživeli v preklapljanju med Frinkom in Chromom. Zaradi tega je Frink manj primeren za začetnike. Po njem bodo raje posegali programerji, ki preživijo večino časa na kaki drugi platformi, občasno pa bi radi sprogramirali tudi kaj krajšega na Androidu.
Frink
Programsko okolje.
Cena: Zastonj.
Za: Zmogljiv programski jezik, knjižnica fizikalnih enot.
Proti: Špartanskost, ne moremo izdelati samostojnih programov.
Špartanski Frinkov uporabniški vmesnik.
Frinku podobno okolje SigmaScript je malce manj špartansko, a žal tudi manj zmogljivo. Namenjeno je programiranju z jezikom lua (en.wikipedia.org/wiki/Lua_(programming_language)), a ni posebej prilagojeno tabličnemu okolju. Na voljo nam je le nekaj funkcij za prikaz opozoril in za branje nekaterih podatkov o sistemu. V praksi to pomeni, da s SigmaScriptom lahko napišemo program, ki nekaj izračuna in prikaže rezultat, to pa je tudi vse.
Začetne težave olajša nekaj priloženih zgledov, do katerih pridemo z daljšim pritiskom na urejevalno površino. Tipkanje pa olajšajo koščki kode, ki jih vstavimo s pritiskom na gumb "Code". Delovno okolje je sicer prijetno, a zaradi zgoraj omenjenih omejitev primerno le za učenje programiranja z luo.
SigmaScript
Programsko okolje z jezikom lua.
Cena: Zastonj.
Za: Prijetno delovno okolje, priljubljen programski jezik.
Proti: Programi niso sposobni interakcije z uporabnikom, ne moremo izdelati samostojnih programov.
Program za izračun prvih petnajst decimalk števila pi v okolju SigmaScript
Pregled programov za Androide končajmo s polno funkcionalnim razvojnim okoljem AIDE. Gre za urejevalnik programov v javi, s katerim lahko izdelamo program za platformo Android, ki uporablja vse funkcije razvojnega okolja Android SDK. To med drugim pomeni tudi, da lahko kar na tablici preizkusite vse, o čemer pišemo v seriji Sam svoj programer (www.monitor.si/clanek/sam-svoj-programer2/).
AIDE ima vse, kar imajo veliki (s tem mislimo razvojna okolja za namizne računalnike). Projekti lahko obsegajo kup datotek, ki si jih ogledamo v vgrajenem brskalniku. Seveda je vgrajen tudi urejevalnik, ki je odličen in vsebuje številne pomočnike, na primer takega, ki glede na okoliško kodo ugotovi, kateri javanski razred boste uporabili, in prikaže njegove metode. Vgrajena je obširna pomoč, pripomočki za refaktorizacijo in še kaj. Le razhroščevanje programov ni podprto.
Čeprav je AIDE zastonj, s prosto različico ne boste mogli napisati večjega programa, saj je omejena na pet datotek. Za večje projekte boste morali dokupiti AIDE Premium Key, ki stane 10 evrov, a je povsem vreden svojega denarja. Poleg podpore poljubno velikim projektom prinese še celotno pomoč Android SDK ter podporo distribuiranemu sistemu za upravljanje izvorne kode Git.
AIDE
Integrirano okolje za razvoj programov v javi.
Cena: Omejena prosta različica, 10 evrov za polno različico.
Za: Odlično okolje s številnimi pomočniki, izdela samostojno androidno aplikacijo.
Proti: Ne podpira razhroščevanja programov.
Programiranje v programu AIDE
Pri programiranju pogosto potrebujemo posebne znake, do katerih na tablicah pridemo le po ovinkih - s pritiskom tipke za prikaz posebnih znakov. Delo nam olajša specializirana zaslonska tipkovnica Programmer Keyboard. Pravzaprav gre za dve različni tipkovnici. Ena je podobna običajni, a vsebuje dodatne tipke - puščice za premikanje po besedilu, tipko za razveljavitev ukaza (Undo) ter tipki za kopiranje in lepljenje (Copy, Paste).
Druga tipkovnica je podobna fizičnim tipkovnicam namiznih računalnikov, le da je številski del nadomeščen s posebnimi znaki, del med navadno in številsko tipkovnico pa s posebnimi funkcijami. Njena slabost so le zelo majhne tipke, na katerih se bodo znašli le drobni in natančni prsti.
Programmer Keyboard
Zaslonska tipkovnica, prilagojena programerjem.
Cena: Zastonj.
Za: Hiter dostop do programerjem prilagojenih funkcij.
Proti: Slabo vidni napisi, majhni gumbi.
Dva načina prikaza programerske tipkovnice
Tudi za jabolčne mobilne naprave najdemo različne programersko usmerjene programe - od igric pa vse do pravih razvojnih sistemov. Ogled začnimo z igrico Parcours.robo, ki si je komaj uvrstila v ta članek. Omogoča sicer programiranje, a le povsem osnovno, brez zank, vejenja in podobnih naprednih lastnosti.
V Parcoursu moramo spraviti vozilce do cilja. To počnemo tako, da sestavimo kratek program petih ukazov, ki usmerjajo vozilce, ga poženemo, napišemo naslednjih pet ukazov in tako nadaljujemo, dokler se vozilce ne pripelje na pravo mesto. Spotoma pazimo še na porabo energije. Dokaj dolgočasno, moramo reči, ima pa igrica tudi svetlo plat - dvoigralski način. V tem načinu dobimo na zaslon dve vozilci in dva prostora za programiranje, igralca pa tekmujeta, kdo bo hitreje pripeljal do cilja.
V prosti različici je na voljo le nekaj nivojev, ki bodo zadoščali, da ugotovite, ali vas tako enostavno programiranje sploh zanima.
Parcours.robo
Igrica z elementi programiranja.
Cena: Omejena prosta različica, 1,80 evra za polno različico.
Za: Dvoigralski način.
Proti: Dolgočasno, zelo omejeno programiranje vozil.
Dvoigralski način v igrici Parcours.robo
Malce bolj zahtevna igrica je Cargo-Bot, v njej moramo napisati program, ki kup barvnih zabojev preloži v zahtevano ciljno obliko. Program je tu sestavljen iz ukazov za premik dvigala (desno, levo, dol/gor) ter ukazov za klice podprogramov. Ti so trije, seveda pa lahko kličejo tudi drug drugega. Programe lahko še pomanjšamo z zankanjem (podprogram pokliče sam sebe).
Cargo-bot vsebuje tudi enostaven učni modul, ki vas sprehodi po enostavnih nivojih in vam predstavi programiranje in način igranja. Cilj igrice je dokaj enostavno doseči, zaplete pa se, kadar želimo na vsakem nivoju pridobiti tri zvezdice, za kar moramo sestaviti najkrajši možen program. To pa ni vedno enostavno.
Kot zanimivost povejmo, da je Cargo-Bot nastal v programu Codea, s katerim lahko na iPadu sprogramiramo splošnonamensko aplikacijo. Hkrati s programom Codea (ogledali si ga bomo proti koncu članka) dobite tudi polno izvorno kodo Cargo-Bota.
Cargo-Bot
Igrica z elementi programiranja.
Cena: Zastonj.
Za: Enostavna, na voljo je izvorna koda.
Proti: Igranje hitro postane dolgočasno.
Prekladanje zabojčkov v Cargo-Botu
Prav tako v Codei je napisana precej bolj dodelana igrica Cato's Hike. Malega možička (ali deklico) moramo spraviti skozi labirint in pri tem pobirati zvezdice, ob tem pa paziti, da nas ne ugrizne hrošč, preskakovati zidove in še kaj.
Programski jezik je zmogljiv, z možnostjo zankanja in pogojnimi stavki. Programiranje je grafično in zaradi tega na trenutke malce omejujoče, a večina omejitev izgine, ko ugotovimo, da se z daljšim pritiskom na program prikaže menu za preurejanje. Dobro je izdelan učni (tutorial) del programa, še bolje pa je, da je v igrico vgrajen tudi urejevalnik nivojev.
Različica Lite vsebuje manj nivojev, pa tudi lastnih ne moremo ustvariti, zato se kar splača nameniti dobra dva evra za polno različico. Motilo nas je le, da se po dobre pol ure igranja izvajanje programov začne nerazložljivo upočasnjevati. Takrat je dobro igrico znova zagnati.
Cato's Hike
Igrica z elementi programiranja.
Cena: Omejena prosta različica, 2,30 evra za polno različico.
Za: Zmogljiv programski jezik, enostavno programiranje, lepa grafika.
Proti: Občasno jo je treba znova zagnati, ker se začne "zatikati".
Grafično programiranje v igrici Cato's Hike
Seveda ima tudi iOS svoje programe za učenje želvje grafike. Kar precej jih je, iz povprečja pa zelo izstopa Move The Turtle, "želvje" okolje z grafičnim programskim jezikom. Želvica sicer ni zastonj, a je popolnoma vredna tega denarja. Otroka (ali odraslega programerskega začetnika) sprehodi po odličnem učnem nivoju, kjer za vsako operacijo razloži, kaj in kako počne, nam pa nato prepusti, da sami pripravimo program do delovanja. Če nam ne gre, program pomaga s kratkimi nasveti.
Učnih nivojev je veliko, vsi pa so izdelani v obliki kratke igrice vrste "popravi program, da bo želvica prišla do dragulja". Seveda lahko napišete tudi čisto lasten program, ki bo na zaslonu narisal poljubno sliko.
Move The Turtle je res odlično izdelan program, ki ga priporočamo vsakomur, ki bi se rad naučil programiranja na enostaven način.
Move The Turtle
Okolje za učenje programiranja.
Cena: 2,30 evra.
Za: Odličen uvodnik v programiranje.
Proti: Grafično programiranje zaplete izdelavo kompleksnih programov.
Grafično programiranje želvje grafike v programu Move The Turtle
Še en v Codei napisan program si oglejmo. V igri ChipBots izdelamo svojega robota (ali več njih), mu napišemo program in ga pošljemo na igralno polje, kjer lahko rešuje različne naloge - se sprehaja po labirintu, lovi žogice, ki se premikajo po zaslonu, ali pa se spopada z drugimi roboti.
Začnemo lahko z vnaprej pripravljenimi roboti in programi ali pa oboje sestavimo od začetka. Robote sestavimo iz sestavnih delov - različnih vrst koles in gosenic, radarjev, laserjev in podobnih zadev. Tudi programe sestavimo iz modulov, ki bodisi krmilijo (navidezno) strojno opremo (torej gosenice, radarje, laserje) ali pa vsebujejo krmilno logiko (goto, repeat, if). Program ima na voljo le 30 korakov, uporabimo pa lahko še dva ravno tako velika podprograma.
ChipBots je odlična in zabavna igrica, ki pa ni ravno primerna za programerje začetnike. Bolj verjetno se bomo z njo zabavali programerji, ko pridemo domov.
ChipBots
Igrica z elementi programiranja.
Cena: Zastonj.
Za: Zabavno, veliko možnosti ustvarjanja.
Proti: Zapleteno programiranje, ni primerna za začetnike.
Virtualni robotki na bojnem polju
Razvojno okolje Codea smo danes že večkrat omenjali, saj je v njem napisanih kar nekaj zanimivih programov. Gre za polnokrvno programsko okolje za operacijski sistem iOS, v katerem programiramo z jezikom LUA. Omeniti moramo odličen urejevalnik kode, ki ima tipkovnico razširjeno s tipkami za pogosto uporabljane programerske znake, pa tudi za funkcije, ki jih na iOSu sicer težko izvedemo (premikanje po kodi znak za znakom, razširjanje/zmanjševanje izbora po posameznih znakih).
Programiranje lahko začnemo "iz nič" (pri tem nam pomagata vgrajena pomoč in kontekstni pomočnik, ki glede na trenutno kodo predlaga ustrezno nadaljevanje) ali pa odpremo enega od številnih priloženih zgledov, med katerimi je tudi igrica Cargo-Bot. Zgledi so zbrani z najrazličnejših področij, zato zlahka najdemo primerno osnovo za svojo aplikacijo. Pri programiranju imamo popolnoma proste roke. Dostopamo lahko do celotne strojne opreme in uporabljamo funkcije operacijskega sistema. Dobro je poskrbljeno za iskanje napak, saj lahko programe izvajamo po korakih. Na koncu pa Codea izdela zaključeno aplikacijo, ki jo lahko naložimo v AppStore. Skratka, za borih devet evrov dobite odlično programsko okolje, ki se ga ne bi sramovali niti osebni računalniki.
Codea
Integirano programsko okolje za razvoj programov v jeziku lua.
Cena: 9 evrov.
Za: Odlično programsko okolje, številni zgledi programov.
Proti: Nič.
Urejanje programa v okolju Codea
Bolj enostavnemu programiranju je namenjeno okolje ScriptKit. V njem lahko z jezikom lua povežemo različne spletne storitve in si izdelamo skripte, ki prikažejo lokacije vaših fotografij na zemljevidu, prikažejo vreme za vaš kraj, upravljajo fotoaparat v napravi in še kaj.
ScriptKit ima odličen urejevalnik kode, v katerem lahko večino dela postorimo kar z vlečenjem. S seznama blokov za gradnjo programa izberemo področje (kamera, dotiki, grafika, brskalnik ...), v njem najdemo primeren ukaz in ga potegnemo na delovno površino. Koristno, saj si nam ni treba zapomniti množice ukazov. Na voljo so tudi bloki za delo s štirimi priljubljenimi spletnimi storitvami - Dropboxom, Facebookom, Instagramom in med fotografi priljubljenim spletiščem 500px.
Večja omejitev ScriptKita je, da v prosti različici ne moremo izdelati svojih skript. Na voljo nam je le približno deset priloženih. Za polno funkcionalnost bo treba doplačati dobrih devet evrov. Zoprno je tudi, da program ne deluje na iPadu 1, ker za delovanje zahteva kamero. Neumno, saj bi lahko na starih napravah le ugasnili podporo neobstoječi strojni opremi.
ScriptKit
Programiranje skript v jeziku lua po načelu "povleci in spusti".
Cena: Omejena prosta različica, 9,10 evra za izdelavo lastnih skript.
Za: Enostavno programiranje, vmesniki do štirih priljubljenih spletnih storitev.
Proti: Ne deluje na iPadu prve generacije.
Programiranje v okolju ScriptKit