To je tek jedan od izazova koji stoje ispred razvojnih inzenjera koji se upustaju u razvoj mobilnih aplikacija. Namjerno kazemo "ra zvojni inzenjer" umjesto "programer" jer iako je programiranje sastavni dio razvijanja aplikacije, cijeli taj proces zahtjeva daleko vise vjestina i drugih tehnickih znanja. Upravo je to ono sto totaine pocetnike, one koji nemaju bas nikakvog iskustva u programiranju, nerijetko odbija jer ne samo da ee se morati upustlti u ucenje pro gramskih jezika i programiranja kao takvog nego ee morati poceti usvajati za pocetak apstraktne koncepte te brojne druge teh noloske i manje tehnoloske vjdtine. Sve to, nairne, sacinjava profesionalnog razvojnog inzenjera mobilnih aplikacija, ali i razlog za sto iza najuspjdnijih aplikacija najcesee ne stoji individualac (iako ima i mnogo takvih primjera), nego cijeU tim koji ne sacinjavaju sarno programeri nego I dlzajneri, poslovni stratezi i svi oni koji mogu nekako doprinlje ti razvoju i kasnijem sazrijevanju aplikacije.
Razvoj je sacinjen od izbora No sto zapravo znaci razvijat! aplikacije za mobilne platforme? Prije svega, kombinirati viSe razlicitih tehnologija. Poznavanje ba rem jednog programskog jezika svakako je preduvjet, no to ne znaci nuzno da to mora
'1··lIp~~l.'I' iI~~"
,.
,
1!3i.t,<".,.t1"[!j~1Mt1
:~;:'(GM"~d;"'.~1\;!1
,,.
:, .~U
pe:tb~
(:QIII ....
Za razvoj iPhone aplikacija neophodno je Mac racunalo. pa se mnogi odlucuju za Apple Mac Mini jer se za cijenu od pet i pol do sedam tisuca kuna moze dobiti prilicno snaino racunalo idealno za razvoj
7
biti Java Hi Objective-Co Svijet razvoja doista je sacinjen od izbora i to je ono sto one koji tek ulaze u taj svijet nerijetko zbunjuje. Ne sarno da je moguee mobilne aplikacije raditi HTML-om, CSS-om i JavaScriptom te drugim tehnologijama nego se cak moguee osioniti na rjesenja kOja omogueuju izradu aplikacija bez programiranja. PreviSe izbora za one bez iskustva i cvrste tehnicke pozadine nije dobro kao ni premalo izbora. Istodobno, kako su razvojne platforme iznimno dinamicne, a tehnoloski napredak kako operacijskih sustava tako i uredaja iznimno brz, tdko je bit! jednako vjest na svim platformama. Stoga se pred buduee razvojne inzenJere postavija osnovni izbor: za koju platformu raditi? Dati jednoznacan odgovor na to pitanje iznimno je nezahval no. Ipak, postoje odredene smjernice kOje takvu odluku cine laksom. Nairne, buduei da Android kao programski jezik koristi Javu, onima bez Iskustva u programiranju kao i onima koji ga nesto imaju ulazak u programski sVijet trebao bi biti nesto Iaksi nego kada bi se suocavali s jezikom Objec tive-C, koji odlikuju odredene specificnosti I, barem isprva, tde citljivu sintaksu (iako se i 0 tome moze diskutlrati). Medutlm, tehnoloska podloga najcesee nema veze s odabirom platforme za koju
Za programiranje apUkacija za Android nije potrebno mnogo - racunalo s Windowsima, linuxom ili Mac OS-om X te viseplatformsko razvojno suceLje Eclipse s dodatkom ADT i Android SDK-om
I
RAlVIJANJE APLIKACIJA BEl PROGRAMIRANJA
"~''''':..;!''''''+
1nM,tU,
.;. .. ~IIdIt)', ..:-d
'"
'. g,
74
0
ee se razvijati; to je prije - zarada. Dileme u ovom slucaju doista nema: ako se zeU zaraditi od prodaje aplikacija, sarno je jedna platforma kOja to omogueuje: iOS. Iako se i s aplikacijama za Android moze nesto zaraditl, velik dio korisnika smartfona s Androidom jednostavno nije spreman platiti aplikaciju. Korisnici iPhonea i iPada najcesee ne raz· misljaju mnogo 0 tome, nego jednostavno izdvoje pokoju sustavu novcanicu kako bi kupili aplikaciju iIi igru koja 1m se svida. Osim toga, trenutno na Google Playu i nlje moguee iz Hrvatske prodavati aplikacije. Da bi se na njima zaradilo, moraju prikazivati oglase - iako postoje i druge metode. No to je vee druga tema. Vjdtine kOje bi svaki ozbiljan razvojni inzenjer mobilnih aplikacija trebao imati mogu se svrstati u cetiri kategorije (valja samo imati na umu da se strucnjaci s tim vjestinama mogu i outsourceati). S jedne je strane tu sposobnost izrade intuitivnib graflckih sucelja. Stilsko oblikovanje moze se prepustiti dizajnerima, no dobro pozna· vanje usability koncepata (UX User eXpe· rience), pogotovo za mobilne platforme. neizbjezno je. Opeenito tehnicko iskustvc I poznavanje racunalstva, rad s bazama podataka i upravljanje njima, upravljanje memorijom, sigurnost te interakcija s har dverom takoder su vjestine kOje itekakc doprinose razvoju. Th se ukljucuje i dobrc poznavanje programskih jezika (Java, Objective-C, C++, JavaScript, HTML5) te dubinsko poznavanje platformskih SDK-ova (Software Development Kit). Konacno, tu
BUG STUDENI 2013.
lako je za stvaranje nativnih i profesio nalnih aplikacija ipak potrebno zavrnuti rukave. posegnuti za preporucenim razvoj nim suce[jem te se upustiti u puni razvojni proces, aplikacije je moguce izradivati i bez programiranja. Da. dobro ste procitali: mobilne je apUkacije moguce izradivati ada ne napisete prakticki ni Uniju koda. Doduse. ne treba ocekivati cuda jer su takva rjesenje po svojoj prirodi prilicno ogranicena (vecinom se sve svodi na pre· zentiranje podataka) i mogu posluziti kao dodatna potvrda da je jed ina puna slobod1 u razvoju moguca kada pred sobom imate; punokrvno razvojno sucelje. Ipak, rado znalost mozete uta ziti sacicom najpopu-. ; larnijih servisa - a diljem Interneta moze Ih se pronaci neobicno mnogo
Kako programirati za Android iii iOS?
ta
Za pocetak to nije nuzno, no ako se pocnete razvojem baviti profesionalno, bit te potrebni i
fizicki uredaji na kojima tete moei testirati aplikacije (unatoc simulatorima i emulatorima)
su i osnovne poslovne strategije, jer ako budete nastupali individualno, trebat cete napraviti i jasnu marketinsku strategiju te se potruditi da aplikacija na kojoj zelite zaraditi bude videna.
Tema za pocetnike Drugim rijeCima, postaje jasno da je razvoj mobilnih aplikacija iznimno opsezno pod rucje, a jednom kada se doista u njega i upu stite, to postane naglaseno jasno. Srecom, za sam pocetak programiranja nije potrebno mnogo. U slucajll Androida, dovoljno je neko racunalo na kojemu se nalaze bilo Windows, Linux iii Mac as x, Eclipse s prosirenjem ADT i Android SDK-om te malo volje za
c. •
lako Android ima yeti dio trzisnog kolaca. zarada od aplikacija veea je s Appleovom platformom, pa se mnogi odlucuju razvijati upravo za nju
citanje vrlo opsezne i dobro koncipirane dokumentacije te vodfca na Googleovu por talu za razvojne inzenjere. U slueaju izrade apHkacije za iOS obavezno je potreban Mac, instaliran Xcode koji se dobiva besplatno i nalazi se na App Storeu te pracenje jednako tako solidne dokumentacije na iOS Deve loper portalu. Prvi koraci ne bi trebali biti preteski, a sto vise budete razvijali, tim ce stvari postajati jasnije. SHeno je koncipirana i ova tema koja je prije svega namijenjena onima koji nemaju 'iskustva u programiraju iIi imaju tek neke osnove. Naime, ciIj nije bio napraviti klasic nu skolu programiranja. To bi, uostalom, na ogranieenom broju stranica bilo nemoguce.
Stoga se tema nece baviti detaljima kao sto su razlike izmedu programskih jezika ni programskim konceptima opcenito. No zato ce ponuditi izvore kako ih se i gdje moze savladati i nauciti. eilj je ove teme pruZiti uvid u to sto je potrebno kako bi se pocelo programirati za mobilne platforme te ponuditi korisne informacije i, konaeno, demonstrirati kako je to napraviti prvu apli kaciju. Drugim rijecima, pomoCi u prvim koracima svima koji se po prvi put susrecu s programiranjem za mobilne platforme. Stoga, zelite Ii da se pocnete baviti razvojem aplikacija, a ne znate odakle biste poceU, ovo je tema koja bi yam trebala pomoci da krenete na pravi put. !l,l
Mobile App Maker \,;"~l>'''' ~~;'U: ..,..,~~..;q
,',-...".
f.~X~""·~~V"~
.....-......,...""' ... wr...... "'...
"-~,...,..""' ••,.,."".. <. .
iiiHfiitMM
... Rijec je 0 domacem servisu koji se orijentira na inozemno triiSte. Odlicno je koncipiran i doista omogueava relativno lagan razvoj mobilnih aplikacija za iOS i Android. Za razvoj tete morati platati mjesecnu naknadu, dok je u besplatnoj inacici mogute izradivati HTMLS aplikacije. Svejedno, oni koji ne iele investirati u programersko znanje, mogu se posluziti ovim servisom kako bi ostvarili neku od svojih zami sU. Zapravo, teie eete ostvariti sve svoje zami sli, ali moei cete napraviti klasicnu apUkaciju za prezentaciju svoje tvrtke. ShoutEm je dobro potkovan pa omogueuje kreiranje viSe tipova aplikacija, ali kako je vee istaknuto, ne treba oeekivati cuda jer je zapravo rijee 0 konceptu alno slicnim rjesenjima. Web: www.shoutem.com
_MhiP.
AppArchitect
GameSalad
... AppArchitect je jos jedna platforma za kreiranje, kako sami autori kazu, prekrasnih mobilnih aplikacija. Doista, AppArchitect lije po izgleda, omogucuje iznimno jednostavnu izradu aplikacija bez tipkanja programskog koda i sve se svodi na povlacenje elemenata. Zapravo, dobiva se osjeeaj kao da se radi prezentacija u PowerPointu, no u konacnici se umjesto prezentacije dobiva aplikacija. 1to nativna! Zasad je moguee izradivati aplikacije za iOS, a dok je u beti, servis je besplatan i tako ee ostati do veljaee iduee godine, kada se namjerava poceti s naplatom. Cijene nisu for mirane, no procjena je da bi koristenje servisa moglo stajati 40 dolara mjesecno za osnovni paket i 100 dolara za profesionalni paket.
... Ako biste umjesto klasicnih aplikacija radije razvijali mobilne igre i pritom biste rado izbjegli programiranje, onda je GameSalad nesto sto biste mogli isprobati. Nije rijec 0 online servisu, vee eete morati viseplatformski alat za izradu mobilnih igara preuzeti na raeunalo i ipak ponesto zavrnuti rukave kako biste ovladalinacinom na koji GameSalad radi. Igre je doista mogute napraviti, ali bas kao i kod svih drugih generiekih rjesenja i aplikacija koje zapravo rade na principu predlozaka, nemojte oeekivati cuda.
Web: www.apparchitect.com
Web: www.gamesalad.com
2013. STUDENI BUG
115
UCENJE
..
~.dukq,<;ija, lJ.cenje
11strazlVanJe
N
auciti programirati i zatim se time doista i baviti zivotni je poziv, bas kao i brojna druga zanimanja. Danas nikada nije bilo Iakse uCiti programirati, i to ne samo zahvaljujuCi golemom broju edukativnih materijala koji se mogu pro naCi diljem Interneta te brojnim forumima na kojima iskusni programeri i oni koji tek pocinju mogu raspravljati 0 temama kOje ih muce i ponuditi rjesenja nego i cinjenkom da su razvojne okoline prilicno uznapre dovale pa razvoj cine daleko laksim. SVijet programiranja nikad nije bio zanimljiviji, ali ni opsezniji. Ono s cime se programeri-pocetnici kojima je ova tema i namijenjena obicno suocavaju jest potreba za svladavanjem samih osnova. Krenuti u svijet programiranja nije lako i, kao i u brojniro drugim djelatnostima, nekima ce Zivot razvojnog inzenjera daleko vise odgova rati nego drugima. Koncepti kOje treba svla dati nekima ce biti neshvatijivi, nekima ce se upornost isplatiti, dok ce drugi kroz taj svijet proIaziti elegantnije i bezbolnije. No u koju god skupinu pripadali, jedna je od najvaznijih odlika razvojnog inzenjera upornost i velika stvaraIacka zelja zbog kOje neee odustati. Cak i kada rezultati naizgled izostanu, ne treba posustati jer ee rezultati neizostavno postati vidljivi iako se to u nekom trenutku ne cini vjerojatnim. Koji je najbolji naCin za ucenje programica nja, vrlo je individualno. Medutim, ucenje i istrazivanje sastavni su dio tog puta, a razvoj ni inzenjeri neprestano moraju iznova uciti - cak i one vee stecene vjestine, jer je razvoj jezika prilicno dinamican, pogotovo sto se tice mobil nih platformi. Za razvoj aplikacija nije dovoljno nauciti tek osnovne programske koncepte i jedan jezik. Stovise, programski je jezik tu zapravo najmanje bitan. Vjestine kOje se traze mnogobrojne su, pa vee i samo to predsravlja velik izazov, no ako se steknu kva litetni temelji, sustinski razumiju podatkovne i kontrolne strukture, stvari ee biti sve lakse sa svakim novim korakom. 76
I
BUG STUDEM 2013.
Svijet razvojnih inzenjera ispunjen je neprestanim ucenjem jer je svijet mobilnog (i klasicnog) programiranja iznimno dinamican. Stovise, jed nom napisane metode nece uvijek vrijediti jer se i Sam programski jezik razvija i mijenja. No da bi se uopce zapocelo s programiranjem, potrebno je svladati osnove, a tek onda svladavati specificnosti svake platforme i jezika s kojima se suocavate. Uciti je moguce na nekoliko naCina: studiranjem, pohadanjem tecajeva, mukotrpnim citanjem knjiga i brojnih tutorijala te kombinacijom svega spomenutog
Java ili Objective-C?
It
I);Mlope.
t~
i
lOS Dev Center
~ ,-
'-'
Programski jezici (uklju cujuCi i skriptne), naime, koriste slicne elemente i principe koji se onda mogu iznova koristiti kod ucenja novoga jezika, nje .• gove sintakse i specific nosti; zata su tipicna po cetnicka pitanja je Ii lakse programirati uJavi iIi jezi kom Objective-C bespred metna. To pak samo znaci "'" da zivot razvojnog inzenje ra svakako potpada pod poznatu i cesto spominja nu sintagmu cjelozivot nog ucenja, no s jednom sustinskom prednoseu: &0 je veee iskustvo, to ee biti lakse nauciti programirati nezaobilazno je odrediste za sve one koji tek tele
za druge platforme. Samo nautiti izradivati aplikacije za iOS, ali i koji vee dulje vrijeme rade na
uvijek treba imati na umu njihovu razvoju (https'/Ideyeloper apple cQmideycenter/ios/)
specificnosti odredene platforme. Npr. kod razvoja mobilnih apli na algoritamskom programiranju te rjesa kacija uvijek na umu treba imati da ee se vanju zadatka koji ee rijetko imati stvarnu one izvrSavati na uredajima s ogranicenim primjenu (na stranu izuzeci koji kroz razne kapacitetom baterije, pa su optimizacije seminare zainteresiranim studenima zele vrio vazne. pribHziti stvarni razvojni ciklus aplikacija), Jedna od strategija na putu do postanka ra No sve je to dio akademskog obrazovanja zvojnim inzenjerom jest upisati odgovarajuCi te samo poticaj da svatko tko se zeli baviti studij. Domaea sveucilista nude programe razvojem mobilnih aplikacija takvo sto, S koji su vezani uz samo programiranje i dobivenim temeljima, zapocne samostalno, racunalstvo. Medutim, studijski programi Formalno obrazovanje za one koji zele nisu usko specijalizirani, nego imaju za cilj naueiti stvarati aplikacije u kracem roku sva ponuditi kvalitetan (i prilicno sirok) temelj kako je predugacko, a mnogima i nedostizno za daljnje samostalno ucenje specificnih jer su vee s formalnim obrazovanjem zavr jezika i tehnologija. Ono sto ee se studijem silL No i tada se moze obrazovati i stvarati svakako dobiti jesu jasne osnove programi temetje kroz razne teeajeve bez obzira na ranja iako se na studijima previse inzistira studij. U Hrvatskoj ih je u ponudi nekoliko ~
'1:
~
_Al_~""" ~"~",,
...... ltO,';"N
"""t",,~~r
____
~' C-'M.WIl... t$J
ra___
Kako programirati za Android iU iOS?
i svi se veCinom fokusiraju na Android, sto je otprilike razumljivo. Nairne, za razvoj iOS aplikacija potreban je Mac te je pritom potrebno platiti i 99 dolara godisnje za iOS Developer Program, a takva investicija u danasnje vrijeme nije bas za svaciji dzep. Kako bi se pocelo programirati za Android, potrebno je bilo kakvo racunalo (moze biti instaliran i Linux) te besplatni razvojni alatL Za isprobavanje aplikacija na fizickim uredajima nije se potrebno registrirati kao razvojni inzenjer (time se dobiva mogucnost objave aplikacije u sluzbenoj trgovini) pa je i to jedna od prednostL
--1--" -, ~-
-- . -'''----'' -.t-..
. .-·-I
e~VO!l
UCENJE UUCIONICI
Nauciti osnovno stvaranje aplikacija za mobilne platforme moguce je i kroz nekoliko tecajeva. Za sada ih nema mnogo i vecina se fokusira na Android, no evo nekoliko korisnih tecajeva (i edukacija) koji ce yam itekako dati dobru osnovu za daljnji napredak i stvarni rad na razvoju apUkacija
projektni zadatak i zavrsni zadatak koji valja samostalno rijesiti. Prolazi se cijeli niz specificnosti vezanib uz platformu Android, a od polaznika se trati zavrsen tecaj objektno orijentiranog programiranja ili poznavanje tema obradenih u tom tecaju.
Jt9 511'00 kao Apple, i Googb~ ima vlasmi centar namijenjen razvojnim inzenjerima, ali i totalnim pocetnicima. Tu je stvarno sjajna dokumentacija, ali i hrpica pocetnickih tutorijala (bttp' //developer android com/training/)
CRUZ
Samoucenje kao paradigma Tecajevi su, dakle, svakako dobar pocetak jer ce nakon zavrsenog tecaja neki koncep ti koji se na prvi pogled doimaju suvise slozenima biti demistificirani, jednako kao i nacin na kOJi se koristi sarno razvoJno su celje te cete sted ispravnu metodiku rada. U samoj sustini nauciti programirati nije teSko, no nauciti da pisete kvalitetan kOd jest. Upravo tu ldi zamka za pocetnike koji nerijetko, umjesto da programski kOd u raznim materijalima prepisuju s razumi jevanjem, sarno kopiraju ne razmiSIjajuci previse 0 tome sto iz njihove perspektive svojevrsni snippet zapravo radi i kako utjece na same performanse aplikacije te njezine druge aspekte. Zato je iznimno vazno dobro se upoznati sa svime 5tO odredena razvojna platforma nudi, ukljucujuci njezine bibliote ke, te doista dubinski poznavati platformu za koju razvijate. To pak podrazumijeva mnogo istrazivanja i eksperimentiranja, ali sugerira i da je za programiranje najbolje jednostavno s njime krenuti. Od samih osnova pa sve do najslo zenijih koncepata te, barem djelomice, uciti kroz pokusaje i promasaje. Na tom putu svakako pomazu knjige, pa se valja prirediti na tu investiciju. Srecom, mreZa svih mreZa sarna po sebi je nepresuSan izvor za progra mere-pocetnike gladne znanja. Od sluzbene dokumentacije, preko specificnih tutorijala, pa sve do videotutorijala. Izbora doista ima mnogo. Stoga ce yam naredne stranice kao buducem razvojnom inzenjeru za jednu iIi obje platforme sigurno biti vrlo korisne_
> Cilj Algebrina programa jest pruianje znanja i vjestina za samostalno izradivanje aplikacija za mobilnu platformu Android te njihovo plasiranje na trziste. Pro laze se osnove programiranja u Javi, uvod u programiranje za Android te SQL. Zatim se edukacija usredotocuje na osnovnu izradu aplikacije te na druge aspekte platforme Android. Cijeli se tecaj zakljucuje procesom objave aplikacije u sluzbenoj trgovini. . CIJENA:Akcijska cijena 5.900,00 kn, redovna cijena 7.918,00 kn URL: http"/laLgebra hrledukacjjal razyoj-a plikaci ja/programer mobilnjb-aplikacija-androjdl
> Kratki tecaj u trajanju tri ili pet dana koji organizira CROZ nudi osnove u programiranju mobilnih aplikacija za Apple iOS. Upoznaje se s razvojnom okolinom Xcode te programskim jezikom Objective-C i njegovim konceptima; zatim je tu pregled programskog okvira CocoaTouch koji se koristi u razvoju iOS aplikacija, pregled naprednih koncepata te se, konacno, govori o razvojnom ciklusu, testiranju aplikacija i procesu objavljivanja aplikacija u App Storeu.
organizira edukaciju u trajanju od 110 sati, podijeljenih na predavanja i primjere, vjezbe, zadatke za samostalno rjesavanje izvan nastave,
CIJENA: Na upit
URL: http://www.croz.netlrazyoj-ios
aplikacija-ipbone-jpad/
NETAKADEMIJA
2013. STUDENI BUG
I 77
...
, Razvoj AntJroid 'aplikacija > SUeno kao i kod teeaja za razvoj ,
apUkacija za iPhone, CROZ nudi i kratke tecajeve za razvoj Android aplikacija (p05toje i tecajevi za 5amu Javu). Tecaj traje pet dana, a prolaze 5e najvazniji aspekti razvoja: od postavLjanja razvojnog sueeLja, preko izrade korisniekog sucelja, pokretanja novih aktivnosti te komunikacije medu aktivnostima, do spremanja podataka te pozadinskih aplikacija 1 lokacijskih usluga.
"
I
CIJENA: Na upit URL: bttp'lIwww croz net/razyoj android-apUkacijal
-
SKULA NA INTERNETU
Osim kLasicnih tecajeva moze se pronaci niz eesto kvalitetnih predavanja putem kojih je moguce usvajati vjestine potrebne za uspjesno programiranje. Evo nekoLiko najzanimljivijih e-ueionica
> Rijec je 0 Stanfordovu projektu za e-ucenje koji je u kratkom roku stekao vetik broj korisnika jer svima zainteresiranima omogucuje pohadanje tecaja koji predaje sveueitisni profesor 5 toga sveuciLista, sasvim besplatno i online. Predavanja ima mnogo, pa se uz teme usko vezanih uz racunalstvo mogu p05lusati (i pogledati) brojna druga zanimljiva predavanja. URL: bttp:/lwww coursera ori
MIT OPEN COURSEWARE
TREEHOUSE
GAUSS INFORMATIKA
Take the world's best courses, . online, fOI fIee. ~,-~~'
iPhone Develop'ment i Android Development > Domaca tvrtka koja se naLazi u Osijeku vet neko vrijeme organizira edukaciju za one koji tele razvijati za 105, ali iza Android. Naravno, edukacije razdvojene iako su u odredenim segmentima sUene. Npr. oba se teeaja provode u grupama od po !iest polaznika, a za ciLj imaju polaznicima pribliziti principe objektnog programiranja te jezike za svaku od pLatformi (Java za Android i Objective-C za iOS). Osim toga, poucava se cijeli niz drugih specifienosti potrebnih za razvoj za svaku od platformi.
:~::~'.~~ «zt~"~: .><:~,o:~~>'
_j',~ :~
.
st.
CIJENA: Na upit URL: hmrllgau55-informatika.coml programi-obrazovanjal
> Uz brojne druge seminare, na ovom se svjetski poznatom sveucilistu mogu pronaci predavanja i seminari vezanih uz programiranje. Zapravo, cilj je ponuditi sve 5to se moze cuti i vidjeti na MIT-u, i to sasvim besplatno. Stoga 5e dobiva djeli niz materijala: od udzbenika, preko multimedijskih sadrzaja, pa sve do zadataka, projekata i primjera. Ovo je obavezna stanica za sve one koji tek pocinju s programiranjem, ali i one koje zanimaju i naprednija predavanja.
URL: bttp:llocw.mit.edu(
EDUKACENTAR Uvod u razvoj Android aplil Semina r u trajanju 20 skolskih sati namijenjen je svima koji se zeLe upoznati s razvojem mobiLnih aplikacija na platformi Android. Govori se 0 sueelju Eclipse 5 ADT-om i Android 5DK-u, 0 izradi grafickih sucelja, upoznaje se 5 programskim jezikom Java; tu je i rad sa zvukom i drugim elementima te niz jednostavnih primjera apLikacija. CIJENA: Na upit URL: http"lIwww.edukacentar hrl Sem ina rilRazvoj-mobiln ib-a p lj kadja/ 78
I
BUG STUDENI 2013.
Jos jedna sve popularnija e-ucionica putem koje je moguce nauciti programirati u razlicitim jezicima i za razlieite platforme. Dakako, pokriveno je programiranje za iOS i za Android. Na raspolaganju je vise od ti5uCU videozapi5a, a tijekom ucenja valja rjesavati niz zadataka. cime cete zasluziti znackice. P05toji i sadrzaj za koji 5e mora placati. pa su dostupna dva modela pretplate: Silver koji stoji 25 dolara mjesecno te Gold koji 5toji 50 dolara.
URL: http'//teamtreehouse com!
COURSERA
-
UDACITY
T ake the world's best courses, online. for free.
~.,'
.. - ... ." \.
- -..:
--: '"
.
.
Kako programirati za Android iii iOS?
> lako nudi jedva tridesetak raznih tecajeva (najvise ih je iz podrucja racunalstva), ovo odrediste za online ucenje sve je popularnije. Nije ni cudo jer mijenja nacin na koji se odvijaju klasie:na predavanja naglasavajuci interaktivnost - neprestano se trazi rjesavanje zadataka i problema. Upravo je zato ovo idealno odrediste za stjecanje osnovnih vjestina u programiranju.
STACK OVERFLOW • ~
G
\
zajednica) koju definitivno ne biste smjeli propustiti. Tu cete pronaCi doslovce sve 5tO vam padne na pamet: od zanimljivih e:lanaka. preko tutorijala. do primjera koda. Dakle. sve 5tO jednom programeru koji uti moze zatrebati. URL: wwwJavacodegeeks.com
> Velika zajednica koja radi na principu 'postavi pitanje i dobij odgovor". To liko je popularna medu programerima da je gotovo sigurno da eete trazeci savjet putem Googlea medu prvim ponudenim rezultatima pronaci upravo odgovor sa Stack Overflowa. URL: bttp'//stackoverflow.coml
> Premda se iz naziva ovoga bloga moze zakljue:iti da se fokusira iskYucivo na Appleovu platformu. zapravo cete ovdje pronaci hrpicu zgodnih (i nerijetko korisnih) tutorijala koji su ponekad popraeeni i videoisjeccima. Osim toga, tu je i niz primjera gotovog koda (snippeti) te drugi zgodni resursi.
-_... ..._...........__ ..........
....
~-
MOBILETUTS+ > I sam Google radi na poucavanju
URL: www icodeblog com
pa je dostupan Google Developers University Consortium, putem kojega je moguce pronaci niz predavanja iz razliWih podrucja. no svih vezanih uz Googleove tehnologije. Stoga je ova odlicno mjesto za ucenje razvoja za Android. URL: https'Udevelopers google comi university!
~Internetski
resursi
PROGRAMERSKA VRELA
Premda su dva sluzbena portala za razvojne inzenjere (ona za iDS i onaj za Android) i vise nego dovoljna da pronadete odgovore na prakticki sve sto vas moze zanimati dok programirate (osim toga, tu je i nezaobilazni Google). dostupno je i nekoUko drugih web stranica koje ee dobro doti pri ucenju, ali i razvoju aplikacija
> Jos jedna Envatova web stranica, no koja se bavi iskljue:ivo raznovrsnim tutorijalima za mobilne platforme. ponajvise iDS i Android. Tu eete pronaci niz raznovrsni h kvalitetnih clanaka; neki su informativne prirode i za cilj imaju upoznati e:itatelje 5 odredenim segmentima razvoja. a neki vode korak po korak pri izradi primjera aplikacije. .
:. ~.'::~'~"''''-"'' ....
':;''''7:",~~,h''''
" .,-..
-
Programiranie za mofiilne plaftorme > I nas je forum izvrsno mjesto za
URL: bttp:/lmobile,tutsplus.coml
> Ako ste se odlucili programiratl
komentiranje i trazenje savjeta. ali i pruzanje pomoei manje iskusnima. Tim viSe sto je dostupna i kategorija upravo namijenjena programiranju za mobilne platforme. Forum moze posluziti i kao mjesto za testiranje aplikacija - clanovi nerijetko znaju ponuditi svoje iskreno misljenje a apUkaciji za koju to zatrazite.
u Javi i za Android, avo je jedna od web stranica (mozda bolje receno;
URL; bttp·//www.bug hrlforum/
JAVA CODE GEEKS
2013. STUDENI BUG
119
....
UZ KNJlGE DO SAVRSENSTVA Osim internetskih resursa. jedan od vrlo vaznih elemenata pri ucenju razvoja za mobilne platforme (ali i opcenito za programiranje) svakako su knjige. Srecom, knjiga ima napretek. no nisu sve prikladne za pocetnike i one koji nemaju bas nikakva iskustva u programiranju. Evo nekoliko naslova (tiskanih i e-knjiga) za Android i iOS uz koje ce pocetak u programiranju biti nesto laksi, a koje mozete pronaci na Amazonu
Knjige za iOS lHf ?""~'" .,~~:,"t;;,aJ.'~?!-1
lOS Pr@gramming: The Big Nerd. Ran
. EDBURNmE
Zgodna knjiga koja vodi od samih osnova pa do slozenijih koncepata prateci razvoj igre Sudoku. Ova knjiga kroz prakticni primjer doista pomaze pri ucenju razvijanja za Android i stjecanja vaznih vjestina.
Jos jedna knjiga iz iznimno poznate serije instrukcijskih knjiga koja ce itekako dobro doti pri svladavanju prvih koraka u razvoju za Android.
. IAN F, DARWIN O'Reilly je dobro poznata izdavacka kuta cije su programerske kuharice dobro prihvacene jer nude konkretna (i vecinom kvalitetna) rjesenja za mnoge programerske probleme.
Guide· JOE CONWAY, AARON HILUGASS Sjajna knjiga koja vodi i pokazuje kroz osnovne koncepte za razvoj aptikacija za iOS. Ritam obrade materijala je dobar; navedeni primjeri aplikacija nisu suhoparni i ovo je knjiga koju vrijedi procitati
Sams Teach Yourself iOS 6 Application Development in 24 Houu:,s . .lDHN RAY lako je i ova knjiga itekako pogodna za pocetnika, na trenutke moze biti nerazumljiva onima koji nisu ovladali konceptima objektno orijentiranog programiranja. Stoga to treba imati na umu dok ju citate i uz nju vjezbate.
iOS(#) Cookbeok . VANDAD NAHAVANDIPOOR
Slicno kao i za Android. dostupne su j kuharice za iOS (stoga znak #
zamijenite inacicom i~S-a). Aktualna je kuharica za iOS 6. no moze se
uskoro ocekivati i za iOS 7.
Beginning iOS 6 Development: Expioring the iOS SDK· DAVID MARK, JACK NUTTING, JEFF LAMARCHE, FRmRIK OLSSON lako knjige iz serije "... za neznalice" obicno imaju negativnu konotaciju. zapravo su prilicno korisne. Nacin na koji obraduju temu programiranja prikladan je upravo pocetnicima.
Dobro poznavanje iOS SDK-a vrlo je vazno za uspjesno programiranje. a ova ga knjiga prilicno dobro rasclanjuje i objasnjava. Doduse. ovo je tek jedna od mnogih knjige iz iste serije.
Effedive Objfi'Cthle~C 2..0 - MATI GALLOWAY nudi doista iscrpan pogled na razvoj aplikacija za Android. no za totalne pocetnike. Stoga ovu knjigu u ruke uzmite tek nakon sto ste stekli odredeno iskustvo.
80
I
BUG
STUDENI 2013.
Mozda i najbolja knjiga koja se bavi programskim jezikom Objective-C i nudi konkretne (i odlicne) savjete. No ovo nije knjiga za one koji nimalo ne poznaju jezik Objective-C te Cocoa i Cocoa Touch.
Kako programirati za Android iii iOS?
ALATI
Bez alata nema zanata
Kako svaka platforma za koju se programira donosi i svoje specificnosti, ne cudi da i za svaku platformu postoje i specijalizirani razvojni alati.lzuzetak tu nisu ni Android i iOS, a osim sto postoje sluZbeni alati i razvojna sucelja, koji su i vise nego dostatni za razvoj, dostupni su i drugi. viseplatformski alati, koji . olakSavaju istodobni razvoj za vise platformi. No uz njih. tu su i druge aplikacije. ali i nezaobilazni te mocni SDK-ovi
.15_ ~1i~11"-' ............, .:';;100t
~i!!l'"
,2~ i~"_
..,.;....:
,a....
~
~.-,...
...... '...~-<'
i.~~01"'(,',"""''''
>b"'"
.b*
.. ~;:-
,, .,, .,,
._
,~--....
,~~
.......................,....,
.~:!.
.a~ I
w
o
I
__
i
,~~ 1
w.. ,t....."""''''',''''\.!Ol,I<\"lA' ..tth
~
I..lt.........,~
.
~1
~
f{lj~tj""IfIH
~:=
.............. . ;;:-............
"
lii: .......~
P
rofesionalne tvrtke koje se bave razvo jem mobilnih aplikaeija obicavaju stro go razdvajati programere koji se speci jaliziraju za Objeetive-C i za Android Javu. Ne samo da su ta dva jezika razlitita nego je i pristup razvoju drukciji. Razlitite su i dizajnerske smjemiee; cijeli je ekosustav drukciji premda je rezultat u konacniei isti: stvara se mobilna aplikacija, ali za razlicite platforme. Ipak, te razlike, slieno kao i kod drugih tema, znaju neobicno utjecati na sve one koji se bave razvojem, pa se neprestano iznova ponavljaju debate oko toga sto Je bolje - Appleov iDS iii Googleov Android. Dio tog debatiranja nerijetko obuhvaca i razvojne alate. S jedne je strane tu Eclipse, poznato integrirano razvojno sucelje za Ja vu, a s druge rclativno ugladeni Xcode. Ono sto je svakako nesporno jest einjenica da ce pocetnici, pa i oni iskusniji, daleko bde pri hvatiti nacin na koji radi Xcode, a daleko ce tde nauciti da se snalaze u Eclipseu, kojl je po svojoj prirodi prilieno kompleksan. Isto vrijedi i kada se razvojno okruzenje prvi put postavlja. Kod razvoja aplikacija za iPhone I iPad sve se svodi na to da se nabavi raeunalo s Mac OS-om X, instalira Xcode I moze se poeeti s programiranjem. Bez mnogo pet Ijaneije, za pocetak. U slucaju Androida stvan bas i nisu takve, no uz nekoliko pocetnih koraka te dodat nog preuzimanja neizostavnih dodataka u rukama cete imati prilicno mocno razvojno
sueelje. U njemu se, doista, isprva ponesto teze snaci, no jednom kada se na njega navi knete, eak nl najzapetljanlje radnje viSe nece predstavljati problem iako ce i dalje uzimati viSe vremena nego sto bi trebale. Jedna od kljuenih prednostl Androlda pred i~S-om definitivno je einjenica da sluzbeno razvoino sueelje radi na vise platformi, ukljucujuci Linux i Mac OS X. Jednostavnije receno, za razliku od Apple ove metodologlje, razvoj za Android moze biti sasvim besplatan iii, ako nista drugo, daleko jeftiniji cak i kada se u obzir uzme
i naknada koju je potrebno platlti da bi se aplikaeije objavljlvale u sluzbenim trgovi nama. U slucaju iDS-a obavezno se mora uclaniti u iDS Developer Program, sto stoji 99 dolara; potrebna je kupovina Appleova racunala, a valja imati i iPhone. Clanarina za razvojne inzenjere Android aplikacija za objavu uradaka na Google Playu stojl 25 do lara, no s adresom iz Hrvatske nije moguce prodavati apUkacije. No zato je testiranje aplikacija na fizickim uredajima s Android OS-om jednostavno, dok je procedura za iDS daleko slozenija.
-
Tlt.a(jl~m Studio .. ","",rftlJ(,IItI.~'tM'"
".."',....,u."'I..III:""Iu_
Xamarin Studio rjesenje je za izradu viseplatformskih aplikacija, ito pisuci k6d u programskom jeziku C#, pri cemu se mogu koristiti nativni API-ji, sto je idealno rjesenje za .NET programere (~
Titanium Studio jos je jedan moderni IDE koji omogucuje brzl razvoj nativnih mobilnih aplikacija. Razvojno sucelje temelji se na Eclipseu, a uz Titanium dolazi i njegov vlastiti SDK koji omogucuje razvoj s pomocu HTML-a, PHP-a, JavaScripta, Rubyja i pythona (yJwwappceler..atQu;Qm) 2013. STUDENI BUG
I S'J
Viieplatformske . {i druge} alternative
ALTERNATIVNO
PROGRAMIRANJE
Android Studio novi je Googleov poku~aj da napravi razvojno 5ucelje. Temelji 5e na razvojnom sucelju IntelliJ IDEA. a nudi vise mogucnosti od Eclipsea sADT-om kao sto su GradLe. refaktoriranje koda specifieno za Android, ugradenu podrsku za Google Cloud, ProGuard i drugo (http://goo gllUEvL)
Nerijetko najveci problem s razvojnim suceljima, neovisno 0 tome za koju su plat fomlU, obicavaju imati svi oni kOji su navikli raditi u Microsoftovu razvojnom sucelju Visual Studio. Tome je tako pogotovo ako je rijec 0 Eclipseu, koji bi se iskusnom razvoj nom inzenjeru za: Microsoftove tehnologije mogao uciniti kao posvemaSnji metez. SHcno vrijedi i za Xcode jer se treba naviknuti i na drukcije sucelje i principe samoga Mac OS a X. Srecom, tehnologija nikada ne miruje i ako neSto stalno doista jest, onda je to konstantan razvoJ. Tako su nastali alternativni alati kao sto je Xamarin, koli se dobro integrira u Visual Studio cineci viseplatformsko programiranje tim jednostavnijim. Ne samo da je Xamari nom moguce istodobno razvijati aplikacije za vise platformi nego ih je moguce pisati u sasvim drugom jeziku - C-sharpu (C#). Doduse, takva alternativna viseplatformska rjdenja ipak nisu bez nedostatka. Prije sve ga, tako napravljene aplikacije u sustini nisu nativne aplikacije (uvijek se mora dogoditi prevodenje, sto moze rezultirati novim bu govima i problemima), a to se reflektira i na performanse i na same mogucnosti. Tu je i problem velikih razlika u sucelju aplikacija za razHcite platforme, nekonzistentnosti kOje se zbog toga pojavljuju te brojni drugi pro blemi. To ne znaci da se takva rjesenja mora eliminirati, nego samo da treba biti svjestan njihovih ogranicenja. No sto je zapravo potrebno za programira nje? U samoj sustini, uz racunalo, dovoljno je neko kompatibilno razvojno sucelje, sluzbeni SDK (So/tware Development Kit), a uputno je imati i mobilni uredaj s OS-om za koji namjeravate razvijati budud da je to jedini konkretan nacin za istinsko testira nje aplikacija. Sto se sucelja tice, bas kao i preferirane platforme iIi izbora uredaja, sve je stvar osobne preferencije i formiranja navike (iako Xcode prednjaci sto se tice izrade grafickog sucelja). Naravno, kada se prevladaju osnove i krene u razvoj konkret nijih projekata, bilo samostalno Hi u timu, svijet mobilnog programiranja pokazat ce se cak i 0pseZnijim nego sto je to u slucaju izrade klasicnog softvera. Iz te perspektive, razvojno sucelje kole koristite postat ce one cime ga se od pocetka i trebalo smatratl: tek jedan od alata u nizu potrebnih za uspjesan razvoj aplikacija. 82
I BUG STUDENI 2013.
Osim sluzbenih razvojnih suceLja te osnovnih SDK-ova. tijekom je vremena nastao i zavidan niz drugih alternativnih razvojnih sucelja. dodatnih alata te hrpa nezavisnih SDK-ova koji razvoj aplikacija na ovaj ili anal nacin cine drukcijim i fLeksibilnijim
PHONEGAP
omogucuje kompiLiranje aplikacija za do devet razlicitih platformi istodobno. To, dakako. ukljucuje iOS i Android. Naravno, tu su aplikacijska programska sul:elja (API) potrebna za pristup specificnim mogucnostima smartfona i tableta, a tu je i MoSync Reload, koji omogucuje izradu viseplatformskih aplikacija koristeCi iskljul:ivo HTMlS i JavaScript (slicno kao PhoneGap).
URL: www mosync com
RHOMOBILE > PhoneGapje besplatnorjesenje otvorenog koda (FOSS) namijenjeno . izradi aplikacija za Android, iPhone i iPad uredaje (aliidruge), pri (emu se koriste standardni web jezici (HTML, CSSi JaitaScript).Za one koji nekim I:udom prepozriaju slil:nost 5 Apache Cordovom - .u praVl,l5u. PhoneGap je svojevrsna distribucija Apache Cordove; u sustini su oboje namijenjeni viseplatformskom razvijanju mdbilriih aplikacija, pri cemu omogucuju piistup nativnim funkcijama smartfona kaosto su kamera, cikcelerometar i kompas. Upravo je stoga avo sjajan SDK za one koji imaju i?kustva 5 JavaScriptom i zele napraviti nesto naprednije mobilne aplikacije, i to istodobno za vise platformi, a uz minimalne ili nikakve intervencije.
URL: www phonegap.com
MOSYNC > Jos jedno besplatno rjesenje
otvorenog koda koje omogucuje
izradu nativnih mobilnih aplikacija
koristeci jedan te isti programski
kod. Oslanja se na C/C++ ili HTMlSI
JavaScript te kombinaciju svega, a
> RhoMobile Suite zapravo je paket koji se sastoji ad RhoElementsa, Rhodesa. RhoConnecta, RhoStudia, RhoHuba i alata RhoGaLLery, koji zdruzeno (bolje receno: tu je Rhodes, framework otvorenog koda koji se temelji na Rubyju) omogucuju eLegantan razvoj aplikacija bez obzira na ciljanu platformu. Prednost je !ito programski kad treba pisati samo jednom, a on ce se kompilirati za praktiCki svaku mobilnu platformu koja je trenutno dostupna. Iza ovoga rjesenja stoji Motorola. a pohvalno je !ito Rhodes nudi princip rada Model View Controler te brojne druge moguCnosti. Rijec je. dakle. a rjesenju koje svakako treba iskusati.
URL: httpRgQQ.gllm9xt2
Kako programirati za Android iii iOS?
RAZVOJIGARA
UMJESTO APLIKACIJA · IGRE! >
Razvijanje igara prilicno je kompleksan posao, a osim samoga programiranja, potrebnoje imati rjesenja za cijeli niz drugih aspekata koji su potrebni kada zeLite izraditi kvalitetnu igru. Stoga i ne cudi da se dobrim igrama obicno bave timovi, a vrlo rijetko individualci. No Clanovi takvoga tima svakako moraju biti upuceni u programiranje i dobro se koristiti razvojnim alatima - i ne sarno onima koji sluze za razvoj klasicnih aplikacija. Nairne, stvaranje igara. bas kao i aplikacija, otezavaju velike razlike medu platformama, a to je dodatno naglaseno upravo kod izrade igara. Srecom, postoje viseplatformska rjesenja koja takvo sto ipak cine manje bolnim nego sto doista jesUedno od najpoznatijih viSeplatformskih rje senja upravo je Unity 3D. Ono je dovoljno kompleksno za razvoj zbilja fantasticnih igracih naslova. a istodobno dovoljno jednostavno da njime mogu ovladati i totalni pocetnici. Ono sto mnoge iznenaduje svakako je cinjenica da je inicijalno ovaj engine sasvim besplatan, a specifican je i po tome sto podrzava tri programska jezika (UnityScript, C# i Boo). Doduse. besplatna inacica ima i odredenih nedostataka, no puna U cenca stoji 1.500 dolara, sto i nije mnogo s obzirom na ono sto se nudi. Uz Unity 3D, dostupna su i druga rjesenja. kao sto je Marmalade SDK. Rijec je 0 moenom viseplatformskom SDK-u koji omogucuje izradu mobilnih igara za smartfone i tablete. Dakako, za rad s ovim SDK-om
Vrhunsko rjesenje za izradu atraktivnih viseplatformskih mobilnih (i drugih) igara moguee je dobiti sasvim besplatno 0J;ww unity3d com)
potrebno je znanie programskog jezika C++ te odredeno programersko iskustvo. Sam SDK moguee ie iskusati besplatno 30 dana, sto je dovolj no vremena da se prode kroz hrpicu tutorijala, a nakon toga ovaj SDK valja kupiti. i to prema razlicitim modelima. Najjeftinija inacica stoji 150 dolara godisnje po racunalu (Community); nju slijedi ona za 499 dolara godisnje po racunalu (lndie); zatim je tu model Plus, koji stoji 1.499 dolara godisnje po racunalu (s ovime se dobiva podrska i za ra zvoj igara za pametne televizore), dok profesionalna i najopremljenija inacica stoji 3.499 dolara godisnje po racunalu. II!
> Eclipse kao standardno razvojno sucelje za Android nekada je trebalo rucno podesavati dodajuei mu Android SDK Tools te ADT Plugin (instalirani se JDK podrazumijeva). Sreeom. otkad se pojavio ADT Bundle, ko]i u jednom paketu donosi sve sto je potrebno, podesavanje samoga sucelja prakticki je nepotrebno, osim ako vee koristite Eclipse za programiranje u Javi i namjeravate prosiriti razvoj apUkacija na Android. Tada treba proei dobro dokumentirani proces podesavanja sucelja koji cete pronaei na Googleovu portalu za razvojne inzenjere. ADT Bundle, dakle, pocetak programiranja za Android cini doista lakim. Treba samo na zeljenu lokaciju dekomprimirati sadrzaj Zip arhive (cijeU eete paket pronaei na DVD-u koji ste dobili uz ova] broi), otvoriti mapu eclipse i pokrenuti izvrsnu datoteku eclipse.exe. Sve ostalo vee je spremno. Doduse, medu vaznijim koracima svakako je definiranje virtualnog uredaja (emulatora) za testiranje aplikacija, a po potrebi ee se kasnije morati dodavati i drugi paketi. ADT Bundle i to cini jednostavnim.
Kreiranje simulatora Android Virtual Device Manager najlaksi je nacin za kreiranje virtualnog uredaja. Stoga ga valia pokrenuti tako da se u Eclipseu klikne na Window i zatim na AVD Manager. U prozoru koji ee se otvoriti valia kliknuti na New. Zatim valja unijeti ime virtualnog uredaja iizabrati vrstu uredaja
'l-1l.t'
(veCinom je dovoljno izabrati uredaj prema velicini njegova ekrana), prema cemu ee biti definirane i druge postavke. Parametre je moguee podesavati prema vlastitim preferencijama, pri cemu ne treba pretjerivati (npr. kod definiranja kolicine radne memorije), a svakako je uputno kvacicom oznaciti opciju Use Host GPU. Jednom kada je sve definirano, ostaje sarno kliknuti na gumb OK. Virtualni uredaj pokreee se tipkom Start. nakon cega valja biti strpljiv jer se emulator tradicionalno pokreee prilicno sporo.
Upravljanje paketima Android SDK alate, platforme i druge komponente organizira kao pakete koje je moguce preuzimati i instalirati Android SDK Managerom. Pronaci cete ga u rna pi gdje je dekomprimiran ADT Bundle. u obliku izvrsne datoteke (SDK Manager.exe). Instalacija paketa maksimalno je jednostavna: potrebno je sarno kvaCicom oznaciti zeljeni paket i zatim kliknuti na gumb koji ee pokrenuti instalaciju. Medutim. svakako treba instalirati SDK Tools. SDK Platform-tools i SDK Platform. System Image, Android Support i primjeri koda preporucljivi su iako nisu nuzni. No za pocetnike (i druge) svakako su to dobrodosli dodaci. No kako razvijanje aplikacija bude postajalo ozbiljnije. tako ce i potreba za paketima porast;. pa cete nerijetko svracati upravo u Android SDK Manager po nove pakete i azuriranja, §
~ !'~J
j
'~:Ii..t~
Xcode
> Xcode vise nije jedino razvojno sucelje za izradu apUkacija za iOS, no dugo je to prakticki bio (vee je neko vrijeme dostupan JetBrainsov AppCode. dok viSeplatformska rjesenja neeemo usporedivati). Posebnih koraka za postavljanje zapravo i nema. a sve sto je potrebno uciniti jest na Appleovu racunalu pokrenuti App Store. u polje za pretrazivanje utipkati Xcode j pokrenuti instalaciju. Svakako je potrebno imati aktivnu vezu s Internetom i biti strpljiv jer ce se preuzeti gotovo 2 GB podataka. Jednom kada je Xcode spreman, s programiranjem s moze zapoceti odmah, a jednako je tako spre~an i simulator. Ono sto mnoge muci jest da Je za Xcode potrebno imati Appleovo racunalo, Doduse, moguee je posluziti se trikom " virtualizacije te instalirati Mac OS X 10.8 Il~ visi u virtualnu masinu. Medutim. takvo Je sto nelegalno premda moze posluziti iskljucivo u edukativne svrhe - samo kao svojevrsno eksperimentiranje prije nego odlucite kupiti barem Apple Mac Mini. 2013, STUDENI BUG
I 13::;
'
ZIVOT APliKACIJE
-
Od testiranja do objave
je ovisno 0 platformi na kojo; se razvija (na Mac OS-u X stvari ee raditi bez ikakve in· tervencije, dok je i za Windowse i za Linux: potrebno odraditi nekoliko koraka, pri eemu je Linux ponesto s!ozeniji). Nakon toga na samom uredaju valja uklju eiti USB debugging te ee iduci put kada se u Eclipseu pokrene debugiranje apHkacije medu ponudenim uredajima biti i onai pri kljueen na raeunalo. Zelite Ii pak provjeriti je Ii uredaj dostupan, to je moguce napraviti naredbom adb devices. 8to se testiranja apHkacija na iPhoneu iIi iPadu tice, stvari
The easiest way to get feedback on your mobile
application
Jednom kada je onaj osnovni razvojni dio zavrsen i aplikacija se cini spremnom, val.ja ju testirati. Osim testiranja u simulatoru, uvijek je prije objave uputno aptikacije provjeriti i na fizickim uredajima, najbolje na vise od jednog. Dok 5 jedne strane u slucaju Androida testiranje aplikacije nije problem jer je vrto jednostavno iskoristiti gotov APK, ustucaju iOS-a stvari su znacajno stozenije i skupLje. Isto vrijedi i ustucaju konacne objave aplikacije na stuzbenih trgovinama. Evo sto morate znati estiranje aplikacija definitivno je neiz bjezno, a premda se zapravo odvija i tije kom samog razvoj nog procesa, ono konac"no testiranje prije same objave aplikadje uvijek je pozelj no odraditi na fizickim uredajima. Iz perspektive razvojnog inrenjera za An droid takvo sto uopce ne predstavlja problem. Dapa ee, vee je tijekom samog ra zvoja umjesto u emulatoru testne primje,rke aplikadje moguee pokretati na jed nom iii viSe fizickih ure daja. Dovoljno ih je sarno USB kablom prikljueiti na raeunalo, a onda aplikaciju pokretati izravno iz Eclip sea iIi iz naredbenog retka (ADB). Dakako, fizieki uredaj u tom slucaju ipak ne moze zamijeniti emulator jer je fragmen 84
I
BUG STUDENI 2013.
Android USB debugging opcija je koju svakako treba ukljuciti na uredaju koji ce postuziti za testiranje aplikacije (pronaci tete ju u Settings pa Developer options)
tadja uredaja za Android ogromna, pa je samim time razvojnim inzenjeri ma tesko uzeti u obzir sve vrste uredaja koji se nala ze u opticaju. Isto vrijedi i predvidanje ponasanja aplikadje na raznim ver zijama platforme premda SDK tu poprilicno poma ze. Kako bi smartfon s Android OS-om posluzio za testiranje dovoljno ga je, dakle, prikljueiti na raeunalo. Ako vee nisu, svakako valja instalirati i potrebne upravljacke programe i ostale dodatke, lito
Sign up, free -7
~~. ~;:,;'~:-:;'~ BETA FAMILY IN NUMBERS WIW MCRE THAN
III:=''''
Testiranje aplikacije moguce je prepustiti i drugima putem servisa kao 5tO je The Beta Family. Rijec je 0 crowdsourcing platformi koja omogucuje da drugi testiraju j daju misljenje 0 aplikaciji na kojoj radite wwwthebetafamily.com
su daleko sloznije. Iako se veCina razvojnih inzenjera grozi postupka kroz koji treba proei, on ee ih ipak na kraju docekati. Zasto Apple nije pojednostavio proceduru, pitanje je 0 kojemu se moze debatirati, no stvari Sil takve kakve jesu. Sreeom, tu je okvir koji ee vas kroz nekoliko koraka sprovesti do uspjeha, a pozitivno je 5tO jednom kada pro Zivite ovaj proces, bit ee jednostavnije proCi kroz proces pripreme aplikacije za objavu u sluzbenoj trgovini. Procedura za Google Play opet je nesto jednostavnija. No kljucna je razlika 8to se od prodaje apli kacija putem App Storea moze zaradivati, dok to nije moguce putem Google Playa sve dok ste registrirani 5 racunom u Hrvatskoj jer se ona ne nalazi na popisu poddanih ze malja. Sreeom, zarada je i da!je moguca kroz reklame, 110 aplikacija mora biti naznacena kao besplatna.
Kako programirati za Android iii iOS?
KakD te~tirati.iOS aplikac.Je na IPhoneu
~
APPLEOV RAZVOJNI PROGRAM
---" -
-""" ...
Apple proceduru registracije uredaja za testiranje aplikacija nije ucinio jednostavnom pa i ne cudi da mnogi pribjegavajujailbreaku kao jeftinom i, zacudo, jednostavnijem rjesenju. No sLuzbeni je nacin jedini podrzan, a za njega cete se morati uclaniti u iDS Developer Program, sto ce vas stajati 99 dolara godisnje. Stoga pripremite kreditnu karticu i cvrste zivce za igru pokusaja i promasaja
.
.
'-'~;-"'~~-""'".''''~-''.-''.'''
.
"
-...
~~~-
..
~
putem'scodeaj uhutarQrgani~fa. Akocetekoristiti.Jtuneskakobiste • kQpirali ovugolemuvi-iJednost; prvo ju l)ior~M (jllokUknoJiitilti!ilptitjsriuti kOO1Qinadjutipki'cqrnmandif;C.N qkori tQgq uXci:)deu yafjauOrgalj.'zerllPQ1J . Deviqes.pronii,tIsR9Je.j'iiiPtJ:OlletEL . .• .' kli~llutiriagumb Us~JQr.[)eVetoPrnent.· . '. ·.Sretom, ovo jenQjoe.zJ!Qlnij(trenutj:lk ..·•
lOS DeveIot>er I'nlgram U"U"c'l:»!J>I,,,,,,y<'Wk''''l.'
• ...
,.......... .... ".-..",,,, ... .... ~
..
-
.
.
~
-..,..~.~,,",,,,, ~.~
,~".,-""-
..
.......
,~,""'~
... ". -,....
~-~-'
... ,.,.
.
·orak·4.
ICorak-2. .'
.
,~,-
. K.·· •. •
. -. .
Generiranje certifikata 1
---
rA_~'""'"':-C:.,,<"-.
,,"""'\OI:G;\r:moo"""llIl1
._
,_
_
_.~
_.'
n
..
Nakon ~to je certifikat spreman, ... potrebno je registrl~ati uredaj koji ce sluziti za testiranje. Ponovno se valja vratiti na iDS Provisioning Portal te pronaci poveznicu Devices i zatim kliknuti na Add Devices. . Dovoljno je upisati proizvoljan naziv te dodati Device ID ili UDID. Rijecje 0 jedinstvenoj vrijednosti od 40 znamenki kojom se uredaj identificira. UDID je moguce doznati ili putem iTunesa ili
2013. STUDENI BUG
I 85
-
·~
Prodaja nakon razvoja
. ,il I!
i zatim instalirati u Keychain (obicnim dvokLikom).
r
Generiranje prom.. Nakon toga na iOS Provisioning Portalu odaberite ProviSioning te zatim Distribution i stvorite novi profiL. Za distribucijsku metodu valja naznaciti App Store te iskoristiti vee kreirani App ID. Ostaje potvrditi profil i pricekati koji trenutak kako biste ga preuzeli i instalirali (bit ce dodan Xcodeu),
Potpisivanje i podes
> Slicno kao i kod definiranja uredaja za testiranje aplikacije, I u slucaju objave aplikacija u trgovini potrebno je proci odredenu proeeduru. To znaci da je ponovno potrebno generirati eertifikat. provisioning profil, ali procl i neke druge korake kao ito je proees odobravanja aplikaeije koji provodi sam Apple. Doduie, materija oko objave aplikacije i sve ito ona podrazumijeva prilicno je opse!na pa svakako valja citati slu!benu dokumentaciju ili - guglati Prvi koraci Ako ste odlucili pratiti vodic kako testirati iOS aplikacije na fizickim uredajima, onda ste vee nekoliko koraka blize jer znaci da ste se pridruzili lOS Developer Programu. Ako niste, onda je vrijeme da to svakako ucinite. U samoj sustini, cijeU proces objave aplikacije u sluzbenoj trgovini podrazumijeva kreiranje App ID-a, generiranje distribucijskog certifikata. i distribucijskog provisioning profila, potpisivanje apUkacije stvorenim profilom, nekoliko sitnih podesavanja u Xcodeu i, konacno, kreiranju aplikacije na iTunes Connectu s odgovarajueim metapodacima. Dakle, morate biti cLanom iOS Developer Programa i imati pristup iOS Provisioning Portalu.
Generiranje certifikata Ako ste vee testirali aplikaciju. to znaci da imate i generiran App ID. Stoga p'rije svega treba generirati distribucijski certifikat i distribucijski provisioning profil. Oboje se izvodi otpriUke slicno kao u slucaju testiranja aplikacije. Stoga prvo kreirajte novi CSR (certificate signing request) te zatim pokrenite proceduru generiranja certifikata. Potom na iOS Provisioning portalu. u odjeljku Certificates, pa Distribution, kliknite na Add Certificate. Posaljite generirani CSR te pricekajte da se generira certifikat koji je potrebno preuzeti
86
I
BUG STUDENI 2013.
U Xcodeu otvorite projekt i oznacite prvu stavku u popisu datoteka. Zatim pronadite karticu Build Settings. Po potrebi kliknite opciju All umjesto Combined te u popisu parametara pronadite stavku Code Signing. Provjerite ima li opcija Release definiran generiran distribucijski profil. Zatim kao build scheme naznacite iOS Device i krenite na postupak arhiviranja (Archiving).
Stvaranje arhive Prije nego je moguee stvarno poslati aplikaciju. potrebno je stvoriti arhivu cijeloga projekta ili. jednostavnije receno, set datoteka koje ee stvarno biti poslane na iTunes Connect. Treba provjeriti je li parametar Build Configuration (pod Archive) namjesten na Release Hi to podesiti. Srecom, funkcija Auto-Create Schemes to ce sasvim bezbolno rijesiti. Osim toga, za projekt treba svakako u stavki Build Settings u polje za pretrazivanje utipkati skip te zatim parametar Skip install postaviti na Yes. Konacno. valja iz izbornika Product izabrati stavku Archive. Jednom kada je arhiva generirana, trebali biste ju pronaci pod Organizer i zatim Archives.
iTur:es (mined iTunes Connect Appleov je servis kroz koji se upravlja prodajom aplikacija. Cijeli je servis prilicno razraden pa ee trebati nesto vremena za upoznavanje. No zasad se treba usredotociti na objavu same aplikacije. Stoga kliknite na Add a New App. U padajucem izborniku valja naznaciti napravljeni bundle identifier i zatim prat;ti vodic korak po korak. Jednom kada praces zavrsi. aplikacija ce biti dodana sa statusom Waiting for Upload. U tom se trenutku valja vratiti u Xcode, pokrenuti Organizer te Archives, pronaci aplikaciju i kliknuti na Submit. Tada zapocinje proces odobrenja koji moze potrajati nekoliko tjedana, nakon cega ce aplikacija napokon biti dostupna u trgovini. ;~i
Kako programlrati za Android iii iOS?
DISTRIBUCIJAANDROID APLIKACIJA
•
J ApLikacije za Android ne moraju se nuzno distribuirati putem sluzbene trgovine, iako je to pozeljno, vee se mogu slobodno slati putem e-poste ili objavljivati na vLastitim web stranicama. Ipak, GoogLe Play je sredisl1je mjesto za trazenje apLikacija pa ih je tamo najbolje postaviti. Sreeom, proces nije slozen .
=-"
Moje apilkaCije
Tt90vina
roces objave aplikacije u sluzbenoj Googleovoj trgovini, iako poneSto jed nostavniji i manje zapetljan od procesa objave iOS aplikacija, ipak traii odredeni angaiman. Prije svega valja prirediti aplikaciju za objavu; zatim registrirati Google Play racun, pri cemu je moguee koristiti vee po
-
""'!I- ..
uz malenu pomoe standardnih alata Keytool i Jarsigner. Privatni kljuc koji ee se generirati mora za dovoljlti nekoUko uvjeta. Morate bitl njegov iskljucivi vlasnik (vazno je sacuvati kljuc i upamtiti lozinku koja ee se koristiti pri gene riranju kljuca); mora biti vazeei najmanje 25 godina; i, dakako, ne smije biti privatni kljuc za debugiranje. Osim toga, lozinke moraju biti sto kompleksnije, a treba se pripaziti i da kljuc ne dospije u neieljene ruke (vazan je i za naknad no azuriranje aplikacije u sluibenoj trgovini). Proces stvaranja kljuca i digitalnog potpisivanja moze se izvesti rucno (sve je prilicno detaljno opisano u sluibenoj Googleovoj dokumentaciji na portalu za razvojne inzenjere) ill uz malenu pomoe prikladnog carobnjaka u Eclipseu s postavljenim prosirenjem ADT, pri cemu ee se generirati potrebne datoteke s pomocu Keytoola i Jarsignera te ee biti prireden paket za distribuciju alatom zipatign. Stoga u Eclipseu unutar Package Explorera izaberite File te zatim Export. Otvorite mapu Android te izaberite Export Android Applica tion i kliknite Next. Time ee se aktivirati ca robnjak koji ee vas voditi korak po korak kroz proces digitalnog potpisivanja, sto ukljucuje i izbor privatnog kljuca kojim ce konacni APK biti potpisan. Jednom kada carobnjak zavrsi, aplikacija je spremna za objavu. Kao rezultat samoga procesa izvoza aplikacije dobit ee se sasvim spreman APK koji zatim valja poslati na Google Play. Prije toga valja samo prirediti ikone te druge graficke elemente uz jasan i sto precizniji opis. Sve to pomaze korisnicima da se odluce instalirati bas vasu aplikaciju. Kada je to spre mno, skocite na konzolu za razvojne inienjere, ako vee niste napraviti svoj profil razvojnog inzenjera (time se stjece pravo za distribuciju besplatnih aplikacija, 5to je trenutno i jedno moguee iz Hrvatske), potrazite poveznicu Upload Application i dalje pratite upute. Na koncu samo jos treba pritisnuti gumb Publish.
- ---
'''''...._ _ _......_ _ _ _ t _
.""--....
---~
... ........ "'-.....-~....~..
,,--~.-~""""
""" ........
_-,_ ............. ....
'.dll".~_ ... ~,... ... ~'""
Registracija kao razvojni inzenjer prvi je korak do objave aplikacije u trgovini, a jednom kada to odradite i platite 25 dolara (godisnja naknada), dobit cete pristup konzoti za razvojne inienjere
stojeCi Googleov racun (ako ga imate) te platiti naknadu od 25 dolara za jednu godinu. Nakon toga je pripremljenu apUkaciju moguce objaviti relativno bezbolno. Naime, Google ne namece proces odobravanja aplikacije, nego ce gotove apUkacije tek pregledati kako bi ustanovio da nije rijec 0 kakvom malwa reu. Stoga ce, jed nom kada je apUkacija poslana, ubrzo biti i dostupna u sluibenoj trgovini. Medutim, prije nego to bude moguce, aplikaciju koja je jos zapravo u testnoj fazi valja prirediti i digitalno je potpisati. Na Androidu sve aplikacije moraju biti potpisane, a dok aplikaciju debugirate, bilo u emulatoru iU na fizickom ure daju, za vas ee to automatski napraviti Eclipse. Taj se digi talni potpis iii kljuc ne moze koristiti za konacnu aplikaciju, nego je kljuc potrebno zasebno generirati. Srecom, nUe potrebno kupovati certifikat kako bi se apli kacija potpisala, nego ga je moguce generirati
.•...;.... _.•;"'H
....
~,;;
Umjesto rucne procedure za pripremu aplikacija za objavu mogute je iskoristiti carobnjak za izvoz aplikacije u Eclipseu 5 prosirenjem ADT (ADT bundle dolazi sa svime sto je potrebno) 2013. STUDENI BUG
I 87
PRIMJERI APLIKACIJA'"
-
Iz teorije u praksu Kako je ucenje programiranja najcesce lakse tako da se prate i potom anaLiziraju primjeri gotovih aplikacija, ni ova tema nije mogLa proci bez aplikacija koje uz pracenje uputa mozete i sami izraditi i potom koristiti za analizu ili kao ideju za stvaranje svoje prve apLikacije ada se tek poeinje s programiranjem, uobieajeno je najprije napraviti apli kaciju s dobro poznatim pozdravom: zdravo, sVijete! Iako to doista ima smisla jer se time svladavaju same osnove te takav primjer moze posluZiti za upoznavanje razvojnog sueelja, uvid kako je to napisati koju liniju programskog koda te odmah provjeru kako je to kompilirati i testirati aplikaciju, takvi primjeri bas i nisu pretjerano korisni. Sigurno ne onima koji odmah zele i traze vise. Stoga smo odlueili ponuditi dva primjera aplikacije • jedan za Android i jedan za iOS - koji bi trebali bid razumljivi totalnim po eetnicima, a istodobno dovoljno zanimljivi za proueavanje te kasniju nadgradnju. Ovo je potonje najeeSce i najvaznije jer se tako nerijetko najbolje uei programirati· prouea vanjem primjera, popravljanjem eventualnih pogresaka i prosirivanjem funkcionalnosd aplikacije. !ako je izvomi kOd obje aplikacije dostupan na DVD-u (oba su projekta sprem
K
na za otvaranje u prikladnim razvojnim sueeljima), valja imati na umu da je ipak uputnije praHti stvaranje aplikacije korak po korak te programski kod prepisivati. Takav pristup ima nekoliko oeiglednih prednosti. Naime, ne samo da cete tako lakse upamtiti sintaksu nego Cete pritom i ovladati razvojnim suceljem. Gotove pro jekte mokte iskoristiti kako biste provjerili je li razvojno sucelje podeseno kako treba te kasnije za referencu i dobar nacin da se snadete u vrstama datoteka kOje su kljucne za svaki projekt. Otvaranje projekta za iOS vrlo je jednostavno - dovoljno je dvokliknuti datoteku projekta - dok je u slucaju Androida i razvojnog sucelja Eclipse princip ponesto drukeiji. Prezirnije, da biste otvorili projekt, za pravo ga morate uvesti. Stoga u Eclipseu iz izbornika File izaberite opciju Import (nakon sto je projekt dekomprimiran u neku mapu na disku) te potom stavku Existing Android Code Into Workspace. Izaberite
Izvorni kod za oba primjera aplikacije pronaci cete u rubrikama na DVD-u koji ste dobili uz ovaj broj
mapu u kojoj se nalazi vec gotovi projekt; ako nije oznacen, oznaCite ga kvaCicom te potom oznaeite i opciju Copy projects into UJorkspace ako projekt zeHte imati u svojoj radnoj mapi. Ostaje yam jos samo da klikne te na gumb Finish. _
Lata brajevi plikacija za Android koju smo odlueili napraviti za primjer treba generirati nasumicne brojeve za lutriju • preciznije re ceno, za dva sistema domace lutrije. Iako se na prvi pogled cini jednostavnom, za izradu aplikacije trebalo je rijesiti nekoHko izazova. Ovaj je primjer zanimljiv bas zato sto jasno pokazuje s eime se programed, koliko god bazicno to bilo, moraju susretati. Naime, ne sarno da je valjalo napraviti generator koji ce izbacivati nasumicne brojeve nego se taj generator mora pobrinuti da se medu nasumicno izabranim brojevima oni ne ponavljaju - inaee dobivena kombinacija za lutriju ne bi bila valjana_ Osim toga, u primjeru se koriste i dodatne kontrole (radio-gumbi) za izbor sistema lutrije te kontrolna struktura switch. Sve to ovaj primjer Cini dobrim upravo za pocetnike, ali i odlicnim za dodatna prosirenja. Izvorni k6d mo zete pronaCi na DVD-u koji ste dobili uz ovaj broj
Kreiranje projekta Prije svega je potrebno pokrenuti Eclipse, a to cete uCiniti tako da u mapu u koju ste dekomprimirali ADT Bundle koji ste dobili na DVD-u uz ovaj broj pronadete mapu eclipse te u njoj pokrenete izvrsnu datoteku eclipse.exe. Nakon toga valja izraditi projekt. On se za ovu aplikaciju stvara sasvim isto kao i bilo za koji drugi pro jekt. U Eclipseu se jednostavno izabere opcija New, zatim Android Application Project te se popune obavezna poJiao Kao ime aplikacije unesite Generator lutrije, a sve ostale postavke (i u drugirn prozori 88
I
BUG STUDENI 2013.
rna carobnjaka) ostavite na podrazumijevanirn vrijednostirna. Nakon toga valja pricekati da Eclipse stvori projekt.
Dodavanje znakovnih nizova Kako se ne bi neprestano morali ponavljati isti nazivi za razlicite elemente u projektu, najprije je uputno na lijevoj strani prozora pronaCi mapu values te u njoj XML datoteku strings.xmL U nju cemo dodati znakovne nizove kOji ce se koristiti; u suprotnom ce Eclipse
Kako programirati za Android iii iOB?
sugerirati da znakovne nizove dodate u tu datoteku prl svakom kompiliranju (1 debuglranju). Vrijednosti je moguee jednu po jednu unositi putem grafiekog sueelja, no za potrebe ovoga primjera bit ee dovoljno da izravno unesete sljedeee vrijednosti i snimite projekt: <7xml version="l.O" encoding='utf-8"?>
Setti ngs
Hello worldk/string>
Lutrija 6 od 45
Lutrija 7 od 39
Generiraj
Dodavanje elemenata
Trazenje pogresaka Jedna od neizbjeznih aktivnosti svakoga programera 5vakako je trazenje i uocavanje bugova, Oni mogu biti doi5ta raznovrsni, ali 5e iz gresaka ponekad najbolje uti Proces debugiranja samo je jos jedan od ciklusa kroz koji mora proti svaka aplikacija, a bez obzira na prirodu pogresaka u programskom kodu, ponekad su one teze uocljive. Stoga i ne cudi da se u aplikacijama koje su vee odavna dozivjele svoje sluzbeno izdanje i moze ih se kupiti (ili dobiti besplatno) u sluzbenim trgovinama nerijetko mogu pronaCi kojekakve pogreske. Sretom, korisnici ih obicavaju uredno dojavljivati pa ih zatim razvojni inzenjeri mogu ispravljati i objavljivati nadogradnje za aplikacije. Kako biste i sami stekli dojam koUko je ponekad tesko uociti neku pogresku, koliko god ona oCita bila. namjerno smo napravili pogresku u izvornom kodu aplikacije za Android, Doduse, ta je pogreska vidljiva iskljucivo u izvornom kodu aplikacije koji mozete pronati na DVD-u uz ovaj broj, dok je na idutim stranicama programski kOd ispravan. Potonji te. naime, posluziti da pogresku lakse otkrijete. Medutim, prije nego sto pocnete usporedivati programski kOd u tiskanom izdanju s izvornim kodom aplikacije na DVD-u, pokusajte pogresku pronaci sami. To je, naime, jos jedan proces ucenja programiranja i svladavanja osnovnih koncepata. _
android:id="@+id/radio_radio7d039"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/sedamod39" I>
u idueem je koraku potrebno dodati grupu radio-gumba te ostale elemente kojl ee sacinjavati sueelje same aplikacije. Umjesto da se elementi dodaju jedan po jedan rueno, u datoteku activity_main. xml koja se nalazi na lijevoj strani u mapi layout treba dodati sljedeee:
android:id="@+id/radioLotoGrupa"