Razvoj mobilnih aplikacija, još od 2007. godine i pojave prvog iPhone pametnog telefona, svakodnevno dobija na značaju, i to ne samo u domenu zabavnih programčića za širu publiku i mobilnih video igrica, već i u poslovnom svetu, za najrazličitije namene. Uspeh mobilnih platformi direktno se meri brojem dostupnih aplikacija, a uspeh pojedinačnih programa brojem instalacija i aktivnih korisnika. Zbog toga se kuće i pojedinci koji proizvode aplikacije trude da razviju verzije najmanje za Android i iOS, a neretko i za Windows Phone i druge operativne sisteme.
Problem
Tu dolazimo do osnovnog problema. Da biste razvili takozvane “native” aplikacije za više platformi, potrebno je da u timu imate softverske inženjere različitih profila, dok pri samom programiranju malo šta od programskog koda možete da delite između verzija. Čak i stručnjaci zaduženi za korisničko iskustvo moraju da razmišljaju o UI standardima i paternima na konkretnim platformama, odnosno da prilagođavaju dizajnerska rešenja. Sve to podiže cenu razvoja i vreme potrebno za realizaciju projekta, pa klijenti neretko odustaju od podrške za više platformi. Time su na gubitku ne samo oni, već i proizvođači softvera čija sjajna rešenja barem polovina potencijalne publike nije u mogućnosti da koristi.
Rešenje
Rešenje za navedene probleme su takozvane hibridne mobilne web aplikacije. Radi se o web aplikacijama pisanim u klasičnim HTML5 tehnologijama (JavaScript, HTML, CSS) koje se zatim kompajliraju u native varijante za ciljane mobilne operativne sisteme. To konkretno znači da programski kod pišete samo jednom, u tehnologiji kojom vlada mnogo širi krug programera, i automatski dobijate verzije za svaku od željenih platformi. Zvuči idealno, ali kao i sve u životu sa sobom nosi određene izazove i ograničenja, odnosno zahteva da pravite kompromise. Performanse su, pogotovo pre nekoliko godina, bile jedan od glavnih izazova u razvoju hibridnih mobilnih web aplikacija. Većina telefona, pogotovo na Android platformi pre verzije 4.0, nije bila sposobna da dovoljno brzo renderuje korisničko okruženje i efekte animacija i tranzicija. Dugačke liste, ukoliko se ne primeni dinamičko generisanje optimalnog broja stavki, nisu mogle da se skroluju bez “seckanja”, a o igricama bilo koje vrste nije bilo ni govora. Danas je situacija drastično poboljšana, delom zbog napretka u optimizaciji mobilnih operativnih sistema i značajnoj procesorskoj snazi modernih aparata, a delom i zbog alata i biblioteka koje se koriste za razvoj, kao i iskustva projektanata i programera. Za neke funkcionalnosti, poput widgeta na Android platformi, hibridne web aplikacije i dalje nemaju rešenje, ali je i u tom slučaju moguće razviti aplikacije koje su neka vrsta kombinacije native i web koda.
Naša iskustva
Atamagai tim hibridne mobilne aplikacije razvija već nešto više od pet godina i u ovu oblast smo uključeni još od njenog začetka. Razvijali smo multiplatformske hibridne mobilne aplikacije za najrazličitije namene – od medijskih portala, preko igrica, do zahtevnih poslovnih aplikacija. Vremenom smo uspeli da pronađemo set biblioteka i alata za razvoj koji se kroz naša iskustva pokazao kao najefikasniji. Uostalom, Solidus mobile kompanion aplikacije su razvijene korišćenjem upravo opisanih tehnologija i alata. U narednom članku sledi opis komponenti koje mi koristimo.