Izdelava aplikacije iOS
Programiranje ni bilo še nikoli tako preprosto. Apple je z zadnjim operacijskim sistemom iOS in programskim jezikom swift poskrbel, da se nekdaj težaškega opravila zlahka loti vsakdo. V tokratni izdaji jabolčnih trikov bomo spoznali osnove programiranja za naprave z Applovim mobilnim operacijskim sistemom. Gre zgolj za prve korake in poskus, da vam vzbudimo radovednost za nadaljnje raziskovanje. Kdo ve, morda se v vaših glavah skriva dobičkonosna zamisel na ravni govorečega mačka Talking Toma?
Razvoj aplikacij za telefone iPhone, tablice iPad in celo ure iWatch še nikoli ni bil tako preprost. Apple se iz leta v leto trudi, da bi programiranje za svoje prenosne naprave čim bolj približal vsakomur. Z razvojnim okoljem Xcode 7, programskim jezikom swift in novimi orodji, kot je neposredno naslavljanje grafično procesne enote Metal, je cilju bliže kot kdaj prej. Razvijanje mobilnih aplikacij se zdi nadvse težaško in zahtevno opravilo, a podrobnejši pogled razkriva, da učna krivulja le ni tako strma, ko je videti sprva. V veliko pomoč pri učenju nam je skorajda neusahljiv vir informacij, ki nam je pri razvijanju programskih izdelkov za naprave z Applovim mobilnim operacijskim sistemom iOS na voljo praktično za vsakim vogalom. Dodaten motiv predstavlja morebiten zaslužek, mobilne aplikacije na napravah z iOS še danes prinašajo več denarja, kot na primer na Androidu, zato niso redki primeri, ko razvijalci z dobro aplikacijo, če že ne obogatijo, pa vsaj dostojno živijo.
Za programiranje aplikacij za naprave z operacijskim sistemom iOS potrebujemo Applov računalnik Mac in za resnejše delo tudi telefon iPhone ali tablico iPad, na katerih umotvore resneje preizkušamo. Prvi korak, ki ga mora narediti vsak zelenec v svetu razvoja aplikacij za iOS, je odpiranje uporabniškega računa Apple Developer. Če bomo razvijali sami, lahko nadgradimo svoj račun Apple ID, v nasprotnem primeru je priporočljivo odpreti novega. Registracija razvijalca je brezplačna. Z njo smo upravičeni do bogate zbirke orodij in učnih pripomočkov, ki jih časti Apple. Z osnovnim računom lahko aplikacijo tudi preizkusimo na mobilni napravi in ne le v razvojnem okolju. Letno članarino namreč plačamo zgolj, če želimo programske izdelke prodajati na Applovi tržnici App Store ali se nam cedijo sline po dodatnih posladkih, kot je dostop do beta različic prihajajočih operacijskih sistemov iOS in macOS.
Pred razvojem mobilne aplikacije moramo natančno vedeti, kaj želimo z njo doseči. Priporočljiva je izdelava načrta. Najprej na kratko opišemo osnovni cilj aplikacije. Opis naj bo kratek in jedrnat, po možnosti v enem samem stavku. Nato nanizamo zmožnosti programa. Pri načrtovanju je treba biti previden, saj si s prevelikim obsegom nalog delamo medvedjo uslugo. Pred samim programiranjem poskrbimo za strategijo programa, da se končni izdelek sklada z načrtovanimi tržnimi prijemi in pričakovanji ciljnega občinstva. Ker je uporabniški vmesnik nastajajoče aplikacije med pomembnejšimi sestavnimi deli za uspeh, ga poprej skiciramo do najmanjše podrobnosti, z gumbi in njihovo namembnostjo vred. V zadnjem koraku predpriprav zberemo potrebne vire, pripravimo grafiko in poskrbimo za tehnično podlago, na primer za strežnike, ki bodo potrebni za delovanje programa.
Poigravanje na igrišču
Programiranje je za začetnika spočetka zastrašujoče opravilo. Kako se bomo z zahtevnostjo spopadali, je odvisno pretežno od našega predznanja. Apple se trudi programiranje približati prav vsakomur in je z operacijskim sistemom iOS 8 in programskim jezikom Swift znižal mejo dostopnosti na povsem novo raven, a si je za obvladovanje orodij kljub temu treba vzeti čas. Osrednje orodje, v katerem bomo programirali aplikacijo za telefone iPhone in tablice iPad, se imenuje Xcode. Gre za integrirano razvojno okolje (IDE), ki je prijazno do začetnikov. Omeniti velja tako imenovano igrišče Playground, na katerem lahko zelenci do onemoglosti preizkušamo zamisli in na novo naučene tehnike.
Takoj po zagonu okolja Xcode izberemo prvo možnost Get started with a playground. Če okna Welcome to Xcode, v katerem je omenjena možnost, ne vidimo, ga prikličemo z ukazom Window/Welcome to Xcode. V naslednjem koraku poimenujemo svoje igrišče in izberemo platformo, na kateri se bomo igrali. Poleg mobilnega operacijskega sistema iOS sta na voljo še macOS (OS X) in tvOS. Ko izberemo še mesto na disku, kamor se bo naša telovadba s kodo shranjevala, se prikažejo naslednje vrstice:
//: Playground - noun:
a place where people can play
import UIKit
var str = »Hello, playground«
Prva vrstica je komentar, označimo ga z //. Gre za besedilo, ki je za izvajanje programa nepomembno, a nam (in drugim) pomaga pri kasnejšem pregledovanju kode. V drugi vrstici v program uvozimo poprej pripravljene knjižnice, ki so jih za nas sprogramirali drugi. Za začetek je dovolj, da vemo, da jih potrebujemo, ni pa se nam treba obremenjevati z razmišljanjem, kako delujejo. Osredotočimo se tako na tretjo vrstico, ki ustvari spremenljivko z imenom str in vrednostjo “Hello, playground”. Vrednosti posameznih spremenljivk so pregledno izpisane tudi v desnem stolpcu, ki nam je pri programiranju v veliko pomoč. Če vrednost spremenimo, se spremeni pripadajoči pomožni izpis. S spremembo smo naredili prve korake v vlogi programerja! Igramo se naprej in dodamo še kakšen izpis. Če v naslednji vrstici na primer vnesemo poljuben matematični izraz (5*5), se nam v desnem stolpcu izpiše rezultat. Ko smo z osvojenim zadovoljni, pobrišemo kodo do izraza import UIKit. Čas je, da spoznamo spremenljivke.
Spremenljivke so namenjene shranjevanju najrazličnejših vrednosti. Osnovna sintaksa je var IME: tip_spremenljivke = VREDNOST. Tako nam izraz var starost: Int = 18 v pomnilnik shrani starost polnoletne osebe. Že v prvem programu nam je igrišče Playground določilo spremenljivko z besedilom Hello, playground. Namesto skrajšanega izraza var str = “Hello, playground” bi lahko vstavili tudi celotno direktivo, skladno z omenjeno sintakso, na primer var besedilo: String = “Hello, playground”. Med osnovne vrste spremenljivk poleg omenjenega besedila String in celih števil Int spadata še vrednost Bool (resnično, neresnično) in decimalna števila Double. Za vajo napišemo nekaj izrazov z omenjenimi vrstami spremenljivk:
var SrecnaStevilka: Int = 7
var Decimalka: Double = 1.43
var SemProgramer: Bool = true
var Ime: String = »Boris«
Če želimo posamezni spremenljivki v nadaljevanju spremeniti vrednost, je dovolj krajši izraz. Ukaz Ime = “Boris Šavc” nam tako nemudoma predrugači spremenljivko z imenom Ime, ne da bi nam jo bilo treba še enkrat definirati. Posebne vrste spremenljivk so konstante, določimo jih z ukazom let namesto var. Direktive let Ime: String = “Boris” tako kasneje v programu ne moremo več spreminjati. Če kljub temu poskusimo, nam igrišče Playground sporoči napako Cannot assign to value: “Ime” is a “let” constant, kar pomeni, da smo skušali spreminjati konstanto. Napako Xcode označi z rdečim krogcem na začetku vrstice s pomanjkljivo oziroma zgrešeno kodo.
Poleg simuliranja kalkulatorja je igrišče Playground sposobno tudi primerjanja števil in drugih vrednosti. Primerjanja se lotimo z operatorji > (večji od), < (manjši od), == (enak), >= (večji ali enak), <= (manjši ali enak), && (in), || (ali). Najprej določimo nekaj spremenljivk in jih nato primerjamo med seboj (koda 1).
V desnem stolpcu se ob kodi izpišejo rezultati primerjav, ki so lahko resnični (true) ali neresnični (false). Ob podrobnejšem pregledu napisanih izrazov lahko ugotovimo, da morata biti v primeru operatorja && oba izraza resnična, da je resničen tudi končni rezultat, pri || pa je dovolj le pravilnost ene izmed podanih primerjav. Daljše poigravanje s primerjavami je priporočljivo, saj jih bomo pri programiranju velikokrat potrebovali.
Podobno velja za pogojne stavke, ki izvedejo določen del kode zgolj v primeru, ko je podani pogoj resničen (ali ne). Primer stavka IF je:
if (ProdajanostAvgust >
ProdajanostJunij) {
ProdajanostAvgust =
ProdajanostAvgust + 1
} else if (ProdajanostAvgust
>= ProdajanostJulij) {
ProdajanostAvgust =
ProdajanostAvgust + 1
} else {
ProdajanostAvgust =
ProdajanostAvgust - 1
}
V našem primeru nam zaradi večje prodajanosti poletne številke v primerjavi z junijsko in julijsko vrednost te poveča za ena. Če bi bila prodajanost manjša, bi vrednosti odšteli eno točko. Sam primer ni najbolj smiseln, a lepo prikazuje telovadbo s pogojnim stavkom, ki nam pri programiranju predstavlja eno temeljnih orodij. Med slednje sodijo tudi funkcije.
Funkcije so odseki kode, ki jih v programu lahko uporabimo večkrat. Navadno gre za zaključene sklope, ki opravljajo posamezno nalogo. Med programiranjem uporabljamo tako lastne kot tuje funkcije, ki so jih napisali drugi programerji. Zgled preproste funkcije je print(), ki nam izpiše vrednost, določeno z vnosom med oklepaja.
print (“Rad berem revijo
Monitor”)
V funkcijo print vstavimo poljubno vsebino, pa tudi zgoraj omenjene spremenljivke. Vrednosti med seboj ločimo z vejico, spremenljivke med oklepajema uporabimo brez narekovajev.
print (“Vrednostni količnik
poletne številke Monitorja
je ”, ProdajanostAvgust)
Spremenljivko po želji vrinemo v besedilo, pri tem pa uporabimo znak \ in oklepaja.
print (“Vrednostni količnik \
(ProdajanostAvgust) pripada
poletni številki revije
Monitor”)
Znotraj oklepajev lahko s spremenljivkami tudi računamo.
print (“Vrednostni količnik
\(ProdajanostAvgust - 1)
pripada poletni številki
revije Monitor”)
Drug zgled kontrolnega stavka je zanka WHILE. Gre za izvajanje določene kode, dokler je dani pogoj resničen.
var Odstevanje = 3
while (Odstevanje > 0) {
print(Odstevanje)
Odstevanje = Odstevanje - 1
}
print(»Štart«)
Ker gre za več vrednosti hkrati, se na desni strani ne izpisujejo dejanske vrednosti, temveč izpis (3 times) zgolj nakaže, kolikokrat se je zanka izvedla. Podrobnejši pregled prikličemo z ukazom / View / Assistant Editor / Show Assistant Editor. Izogibati se moramo neskončnim zankam, ki naredijo program neuporaben. Iz zanke se izvijemo z ukazom break, ki izvajanje prekine, če nastopi določen pogoj.
var Odstevanje = 10
while (Odstevanje > 0) {
print(Odstevanje)
Odstevanje = Odstevanje - 1
if (Odstevanje < 2) {
break
}
}
print(»Štart«)
V našem primeru se zanka prekine, ko odštevanje doseže vrednost 2. Pri pisanju kode je ukaze za boljšo čitljivost priporočljivo podpisovati, ni pa nujno, kot razlikovanje velike in male pisave. Ukaz, pisan z veliko začetnico, prevajalnik namreč prekine z napako. Prekinitvi break podoben ukaz je continue, ki zanko sicer prekine, a izvajanje programa namesto na izhodna vrata pošlje na začetek zanke.
var Odstevanje = 10
while (Odstevanje > 0) {
print(Odstevanje)
Odstevanje = Odstevanje - 1
if (Odstevanje < 6) {
Odstevanje =
Odstevanje - 1
continue
}
if (Odstevanje < 2) {
break
}
}
print(»Štart«)
Primer programa s prekinitvijo continue odšteva od števila 10 po 1, nakar pri številih, manjših od šest, vsako drugo cifro izpusti. Še vedno se zanka konča, ko odštevanje prispe do 2.
Deli in vladaj
Za zdaj bodi dovolj naštevanja programerskih tehnik. Podali smo dovolj mehanik za enomesečno igranje z njimi. Ko prerastemo igrišče Playground, se lahko v iskanju odpravimo v splet. Že Apple sam ponuja zajetno količino gradiva, namenjenega začetnikom v svetu programiranja. Ob večjem zanimanju bomo s programiranjem naslednje mobilne uspešnice nadaljevali tudi mi. Če pri programiranju naletimo na nepremostljive ovire ali se pač preprosto ne vidimo v vlogi programerja, poiščemo zunanjo pomoč. Zlato zamisel nam lahko pomaga uresničiti najeti programer. Poiščemo ga na raznih forumih ali spletiščih, kakršno je Meetup, in v družabnih omrežjih (npr. LinkedIn).
Objava aplikacije na tržnici App Store
Končano aplikacijo objavimo na tržnici App Store. Opravilo zahteva prijavo v storitev iTunes Connect, ki je ločena od računa Apple Developer Membership. Včasih so razvijalci na to čakali teden dni ali več, da je Apple odobril aplikacijo in jo dodal ponudbi tržnice App Store, danes je ta čas bistveno krajši. Aplikacijo navadno odobrijo v štiriindvajsetih urah od oddaje vloge. Omeniti velja, da ima Apple v procesu povsem proste roke in lahko izdelek zavrne iz vrste razlogov, največkrat zaradi pomanjkljive dokumentacije ali nedovoljene vsebine, h kateri sodita golota in pornografija. V spletu je objavljenega veliko gradiva, ki dokumentira posamezne (zavrnjene) izdelke in razloge za njihov neuspeh. Postopek si bomo pobliže ogledali ob kakšni priložnosti, ko bomo skupaj izdelali program, vreden objave in pozornosti uporabnikov Applovih mobilnih naprav.
Poleg lažjega razvoja s testiranjem programskih izdelkov na pravih mobilnih napravah nam račun Apple Developer ponuja tudi dostop do zgodnejših različic operacijskih sistemov in drugih Applovih orodij.
Prvim korakom v svetu programiranja za naprave z operacijskim sistemom iOS je namenjeno igrišče Playground.
Dogajanje med izvajanjem kode spremljamo v desnem stolpcu.
Spremenljivke so namenjene shranjevanju najrazličnejših vrednosti. Če tipa ob deklaraciji ne navedemo, ga prevajalnik skuša uganiti na podlagi pripadajoče začetne vrednosti.
Odseke kode, ki opravljajo posamezno nalogo večkrat v programu, imenujemo funkcije. Z njimi si olajšamo delo in izboljšamo berljivost kode.
V primeru zank nam zaradi številnih vrednosti desni stolpec pri izpisovanju dejanskega dogajanja odpove. Na pomoč mu priskoči Assistant Editor