Razvoj mobilnih aplikacij je ekipni šport

Objavljeno: 29.3.2011 | Avtor: Miran Varga | Kategorija: Vklop | Revija: Marec 2011 | Teme: iPhone

Vročica, ki so jo med programersko skupnostjo zakuhali izdelovalci pametnih mobilnih telefonov, je s prihodom tabličnih računalnikov dobila nove razsežnosti. O razvoju mobilnih aplikacij in izzivih programerjev smo klepetali z Gregorjem Reboljem, direktorjem podjetja Klika, ki se predstavlja kot neodvisni laboratorij za razvoj programske opreme.

Ukvarjate se z razvojem mobilnih aplikacij za pametne telefone in tablične računalnike. Kateri so vaši največji izzivi?

Največji izziv za programerje v omenjenih panogah je hitro spreminjanje tehnologij. Opravka imamo z razmeroma novimi in hitro razvijajočimi se platformami, nekaterim med njimi se še vedno pozna nezrelost, saj so še vedno sredi razvoja.

Kdo je nezrel?

Nezrelost je, denimo, danes najbolj očitna pri odprti platformi Google Android, ki je namenjena najrazličnejšim mobilnim napravam, tako pametnim mobilnikom kot tabličnim računalnikom. Zaprte platforme imajo s tem precej manj težav, a zopet svoje omejitve. V primeru Appla in njegovega iOS je delo za programerja bolj strogo, več je omejitev, a pravila igre so jasna.

Poudariti velja, da gre razvoj s časom hitro naprej, zato je tudi Android danes že močno napredoval, prav tako ga podpira silno veliko razvijalcev, to pa samo platformo nenehno izboljšuje. Svoj pečat ji dajejo tudi izdelovalci naprav, predvsem mobilnih telefonov, ki to platformo uporabljajo za svoje izdelke.

Koliko časa v povprečju potrebujete za razvoj nove aplikacije?

Povprečno prva različica aplikacije od nas zahteva mesec do dva dela, odvisno od tega, kako kompleksna je, in od želja naročnika. Pri razvoju mobilnih spletnih aplikacij za pametne telefone ali tablične računalnike je navadno tako, da vsa podjetja želijo kar najhitrejši odziv in rešitev, saj nihče ne želi zamuditi tega "trendovskega" vlaka.

Uporabljate kakšne zvijače, da bi aplikacija prej zaživela v praksi?

Težko bi temu rekli zvijače. Eno izmed pravil programerjev se v angleščini glasi: "Release early, release often." (op. a. Izdajaj zgodaj, izdajaj pogosto.) Za gradnjo sodobnih aplikacij velja, da so precej modularno zasnovane, zato se večkrat zgodi, da uporabnikom najprej ponudimo predvideno osnovno funkcionalnost, nato pa dodajamo preostale funkcije. Silno veliko podjetij, tudi največjih svetovnih velikanov, danes preprosto da na trg izdelek in počaka na odziv uporabnikov, nato pa se programerji zakopljejo v seznam predlaganih izboljšav in ga, če je le mogoče, uresničijo.

Kdo odloči, kdaj je aplikacija zrela za trg?

Mi, seveda skupaj z naročnikom. Enostavno povedano, pa se objava zgodi takrat, ko aplikacija ustreza vsem zastavljenim ciljem za izdajo.

Ali pri razvoju oziroma popravkih in nadgradnjah upoštevate želje uporabnikov in v kakšnem obsegu?

Cilj vsake aplikacije, še posebej pa spletnih in mobilnih, je odlična uporabniška izkušnja. Zato so zelo pomembne pripombe uporabnikov glede grafičnega uporabniškega vmesnika. O morebitnem dodajanju funkcionalnosti pa odloča naročnik. Vseh želja uporabnikov preprosto ni mogoče uresničiti. Ene želje so bolj očitne, druge prav domiselne. Med uporabniki so tudi tehnološki navdušenci, ki se ne zadovoljijo zgolj s tipično rabo, saj imajo več znanja kot navadni uporabniki. Pri teh uporabnikih je treba poudariti, da so v manjšini in zato njihove želje niso vedno prioriteta.

Kako temeljito testirate aplikacije pred samo izdajo? Bržkone si nihče ne želi nepravilnega delovanja ali celo povzročanja škode uporabnikom?

Obseg testiranja je odvisen od velikosti projekta, saj se glede na ciljno skupino uporabnikov oblikujejo tudi testne skupine. Poleg programerjev in drugih razvijalcev tako aplikacijo pred izdajo preizkusijo tudi, denimo, bolj laični uporabniki, če je seveda namenjena njim. Iz domače in tuje prakse so že znana presenečenja, ko navadni uporabniki razvijalce opozorijo na kakšno posebnost ali pa predlagajo drugačno reševanje problema. Je pa res, da so razvijalci vedno zelo kritični do svojega dela, zato so primeri nepravilnega delovanja ali celo nedelovanja silno redki.

Prav tako aplikacije, ki so namenjene prenosu iz spletnih in mobilnih dveri tujih ponudnikov, kakršna sta Apple Store in Google Market, za vami strokovnjaki še dodatno pregledajo?

Drži, vendar se tudi nivo preverjanja zelo razlikuje od ponudnika do ponudnika. V šali bi lahko dejal, da je Apple Store zaprt kot Nemčija pred drugo svetovno vojno, Google Market pa spominja na čase ameriške zlate mrzlice, ko so vsi drveli po zlato in pravil skoraj ni bilo. Na splošno velja, da ima Apple zelo stroga preverjanja in stroga pravila za objavo aplikacij. Še posebej, če gre za plačljive aplikacije. Google Market je njegovo nasprotje, aplikacijo na njihovih dverih lahko objavimo brez preverjanja v nekaj minutah in po eni uri lahko že doseže milijon uporabnikov. To je svojevrsten fenomen, a takšna odprtost povzroča tudi težave.

O kakšnih težavah je govor?

Tako kot v svetu virusov in drugih škodljivih kod lahko tudi na področju mobilnih aplikacij že govorimo o ribarjenju, torej spletnih prevarah. Nekdo lahko, recimo, ukrade ime aplikacije, grafični vmesnik ali drug del kode posamezne aplikacije in jo predstavi kot največji hit ter na Googlovi spletni tržnici ponudi po nizki ceni, recimo dva dolarja. Še preden jo strokovnjaki spregledajo in ugotovijo, da gre za zlorabo in prevaro, je aplikacijo namestilo na deset- ali stotisoče uporabnikov. Če so se pri tem vsi opekli le za dva dolarja, je škoda razmeroma majhna. Kaj bi šele bilo, če bi aplikacija kradla podatke ali onesposobila telefon ... Prav zaradi tega je pričakovati, da bo tudi Google v kratkem uvedel bistveno strožja pravila in nadzor nad aplikacijami.

Katera znanja potrebuje razvijalec sodobnih mobilnih in spletnih aplikacij? V katerih jezikih so napisane?

Vsaka platforma ima svoje jezike, vsekakor pa so v rabi vse sodobne tehnologije, od jave, objective C, HTML5 do .NET in številne druge. Pri razvijalcih seveda šteje tudi znanje več programskih jezikov, saj navadno ene aplikacije ne pišejo zgolj za eno platformo.

Katere platforme pa so v vašem poslu najbolj priljubljene oziroma razširjene?

Poleg spletnih aplikacij vodijo predvsem mobilne aplikacije za naprave na platformi Android in Applov iOS.

Kakšno je razmerje aplikacij, ki ste jih razvili v vašem podjetju - vodi Applov iOS ali platforma Android?

Razmerje je blizu idealnega, 50 : 50. Sicer pa večinoma razvijemo skoraj vse aplikacije za obe platformi, morda za odtenek vodi Android. V pomoč nam je tudi to, da imajo aplikacije na strežniški strani skupne gradnike. Za t. i. zaledni del aplikacije je uporaba programskega jezika java odlična izbira, saj dele njene kode lahko porabimo tudi na platformi Android. Priporočljivo je, da se poslovna logika implementira na skupnem zalednem sistemu, mobilni del aplikacije pa je samo uporabniški vmesnik.

Kako pa je z zahtevnostjo programiranja - je lažje pisati aplikacije za Android ali iOS?

Vsekakor je lažje pisati aplikacije za iOS, saj ima Apple praktično le eno platformo, pa tudi strojno opremo. Aplikacijski vmesniki in programske knjižice so bolj zrele na platformi iOS. Je pa res, da je na iOS manj svobode, oziroma več omejitev.

Na drugi strani je Android veliko bolj fleksibilen, a od razvijalcev zahteva več časa. Tudi platformi se pozna, da je delno odprtokodna, na nekaterih področjih, denimo krmiljenju uporabniškega vmesnika, še precej nedodelana, itd. Vsekakor pa tudi za androidne aplikacije velja, da če jih sprva narediš dobro, imaš v nadaljevanju precej manj težav pri razširitvah in nadgradnjah.

Poglavje zase je na primer grafični uporabniški vmesnik in možnosti njegovega urejanja. Večkrat se programerji šalimo, da je na Applu kar težko narediti grdo aplikacijo, na Androidu pa se mora razvijalec res potruditi, da bo videti lepa.

Ali je moč aplikacijo za iOS enostavno "prevesti" na platformo Android in nasprotno? Ali pa morate razvoj začeti od začetka?

Skoraj vedno se razvoj nove aplikacije začne od začetka, priredba aplikacij na druge platforme pa je odvisna od uporabljenih rešitev, ene je laže prirediti, spet druge teže. Kot omenjeno, je za tako rabo najprimernejši jezik java, ki omogoča enostavnejšo izdelavo skupnih gradnikov mobilnega in strežniškega dela rešitve.

Ali aplikacije, razvite za platformo Android, zahtevajo prilagoditev za vsako generacijo naprav posebej?

Načeloma ne. Največji izziv je navadno združljivost za nazaj, saj se mora razvijalec odločiti, kaj vse bo podpiral. Neredko je ovira sama tehnologija, saj zaradi hitrega razvoja na starejših različicah mobilnih operacijskih sistemov preprosto ni vseh funkcij, ki bi jih rade izkoriščale novodobne aplikacije. Nasprotno ni težav, prepričani smo, da bodo skoraj vse aplikacije pisane za Android 2.x brez težav delovale tudi na različicah 3.x.

Je programiranje ekipni šport ali lahko uspehe doseže tudi posameznik?

Odvisno od tega, koliko se mudi. (Smeh.) Manjše projekte lahko izvede posameznik, za vse zahtevnejše in obsežnejše rešitve pa velja, da delo prevzame ekipa specializiranih razvijalcev. V takšni ekipi so arhitekti, zadolženi za načrte gradnikov in funkcionalnosti, grafični strokovnjaki za dizajn in grafični uporabniški vmesnik aplikacije, programerji za kodo na zalednem in mobilnem delu ... Velike stvari lahko naredi le ekipa.

V mobilnem svetu se uveljavljata predvsem dva poslovna modela - prvi predstavlja plačljive aplikacije, drugi pa temelji na brezplačnih aplikacijah, podprtih z oglasi. Kateri vam je bližji in zakaj?

Izbor poslovnega modela je vedno naročnikova odločitev. Mi pogosto razvijamo plačljive aplikacije. Izjema so le aplikacije za promocijo, turizem ... Pravi poslovni model, ki bi se utegnil obdržati na dolgi rok, je po našem mnenju ta, da je aplikacija zastonj, uporabniki pa bi kupovali vsebine, funkcionalnost, storitve ... Da pa bi odpravili kupovanje mačka v žaklju, bi vsem ponudili omejeno, a polno funkcionalno demo različico z omejenim časom delovanja in možnostjo zavrnitve nakupa v primeru nedoseganja pričakovanj uporabnika.

Kaj najpogosteje razvijate - poslovne aplikacije, igre, brezplačne aplikacije?

V naši kodirnici prevladujejo predvsem področno usmerjene poslovne aplikacije. Z našimi rešitvami rešujemo izzive na področjih mobilnega bančništva, mobilne delovne sile, upravljanja dokumentov in dostopa do medijskih vsebin.

S katerimi aplikacijami ste največ zaslužili? Katere so najdonosnejše?

Ni enostavnega pravila. Gre bolj za to, koliko truda vložimo v sam razvoj. Delamo po naročilu, za znanega naročnika.

Kako oglašujete svoje aplikacije?

Svojih lastnih aplikacij ne oglašujemo, je pa res, da jih imamo razmeroma malo. Naročniki pa s pri nas razvitimi aplikacijami počnejo, kar želijo, veliko jih aplikacije vidno oglašuje v javnosti.

Kako ocenjujete slovenski trg pametnih mobilnih telefonov? Katere naprave prevladujejo in zakaj?

Med pametnimi telefoni v Sloveniji močno vodi Android, saj iPhone uradno ni naprodaj. Opažamo pa, da se je v zadnjih mesecih zelo povečalo število tabličnih računalnikov iPad, za kar so poskrbeli tako uradni uvoznik kot tudi nekateri dnevni mediji s svojo prilagojeno ponudbo.

Bodo tablice zamajale imperij mobilnikov?

To se verjetno ne bo zgodilo, bodo pa tablični računalniki dobili svoj nabor zvestih uporabnikov. Po začetnem navdušenju in navalu na Applov iPad se nam letos končno obeta prihod kakovostnih tablic na platformi Android, ki bodo vzpostavile novo ravnovesje.

Kot laiki skoraj težko sodimo o tem, kaj se razvija hitreje - strojna ali programska oprema. Kakšno je vaše mnenje?

Čeprav razvijamo programsko opremo, moramo priznati, da se tudi strojna oprema danes razvija bliskovito hitro. Na nekaterih področjih se generacija naprav zamenja že po vsega šestih mesecih. To je velik napor za razvijalce. Najprej razvijejo strojno opremo, nato jo podprejo z aplikacijami in storitvami, pa je že čas za nov izdelek. Tudi zamik teh t. i. inkrementalnih prilagoditev postaja vse krajši. K sreči nam nekateri izdelovalci svoje naprave pošljejo tudi mesec ali dva pred začetkom uradne prodaje, da lahko zanje pravočasno razvijemo ustrezne aplikacije.

Nič še nisva omenila mobilne platforme Windows Phone 7. Bi lahko bila tihi zmagovalec na dolgi rok?

Težko rečem. Microsoft se je v preteklosti že izkazal s svojimi mobilnimi rešitvami, spomnimo se samo časov Windows CE. Prav tako ima na voljo veliko odličnih razvijalskih orodij, zato si lahko obetamo veliko aplikacij za njihovo platformo. Pri nas sicer še nismo prejeli nobenega povpraševanja po njej. Zdi se, kot da ima Microsoft težave s pomanjkanjem domišljije. Tako je, denimo, trmasto vztrajal na opravilni vrstici z gumbom Start do različice 6.5. V trenutni različici Phone 7 so sicer uporabniški vmesnik uspešno popolnoma prenovili. Kljub temu za priklic stika iz imenika uporabnik potrebuje pet akcij ... Več mora delati na prijaznosti do uporabnika.

Ali optimizirate aplikacije tudi z vidika porabe energije?

Odvisno od njihove namembnosti. Pri aplikacijah, ki uporabljajo zunanje komponente, kot so GPS, WiFi in podobne funkcije, se potrudimo, da so energijsko čim bolj varčne.

Za konec še eksistencialno vprašanje - je mogoče preživeti zgolj z razvojem aplikacij ali se ukvarjate še z drugimi področji?

Če gre za manjše podjetje, zgolj razvoj mobilnih aplikacij ni težava. V podjetju Klika se posvečamo tudi razvoju drugih vrst programske opreme, trenutno zaposlujemo 32 inženirjev, na področju mobilnih aplikacij pa dela deset ljudi. Pri razvoju rešitev smo usmerjeni globalno. Po razvoju mobilnih aplikacij je bistveno več povpraševanja iz tujine kot iz Slovenije. A tudi ta se prebuja.

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

Komentirajo lahko le prijavljeni uporabniki