PočetnaHelpdeskRazvoj višeplatformskih mobilnih aplikacija

Razvoj višeplatformskih mobilnih aplikacija


Programiranje nije lako, pogotovo ne ako radite nešto komplicirano, no postoje alati koji vam mogu olakšati izradu aplikacija. Postoje i alati koji će vam pomoći da paralelno razvijete aplikacije za više platformi.

Ako se bavite programiranjem, onda znate da na tržištu kronično nedostaje dobrih programera, posebice onih koji se bave web tehnologijama te onima koji razvijaju aplikacije za mobilne uređaje. Čak je ogromna nestašica kvalitetnog kadra i u Hrvatskoj, pa je naći posao sa tim vjheštinama relativno laka zadaća. No, kako bi se donekle nadomjestio nedostatak mobilnih programera, mnogi su počeli koristiti alate s kojima mogu napraviti aplikacije za sve mobilne platforme, s time da programiraju samo jednom. Odnosno 90 posto kôda koji se napiše odgovara svim platformama, a sa manjim izmjenama prilagodite aplikaciju svakoj platformi zasebno. Na taj način vam aplikacija radi na svim platformama isto, izgleda isto i kad radite izmjenu za jednu platformu, radite ju za sve.

Naravno da je ponekad bolje imati nativne aplikacije za Android, iOS, Windowse … ali to zahtjeva i veći broj ljudi, veći trošak razvoja aplikacija i tako dalje. Ponekad je jednostavnije ići „kraćim“ putem i koristiti alate kao što su Xamarin, Phone Gap i slični. No, priije nego se pozabavimo samim alatima, pogledajmo koje su prednosti, a koje mane ovog koncepta razvoja aplikacija.

mobilne aplikacije

Prednosti

1) Veći doseg – Prilično je očito da ako pokrijete veći broj platformi, veći broj ljudi će koristiti vašu aplikaciju. Google i Apple imaju, kao što smo rekli, daleko najveći udio na tržištu mobilnih aplikacija, no postoje još uvijek milijuni ljudi koji koriste Blackberry, Windows Phone, Symbian, Palm … i kojima možete prodati aplikaciju. Dovoljno je da samo par tisuća ljudi koji koriste manje zastupljene operativne sustave kupi vašu aplikaciju i napravili ste odličan posao.

2) Lakši marketing – Da bi se aplikacija dobro prodavala potreban je marketing. Ako radite aplikaciju za svaku platformu posebno, vrlo vjerojatno ćete napraviti jednu pa raditi marketing za nju. Pa ćete napraviti drugu aplikaciju, tj. za drugu platformu i opet ispočetka. Kada koristite multi platformska rješenja, marketing možete raditi odjednom za sve platforme i uštedjeti vrijeme i novac.

3) Jedan kôd za održavanje – Održavanje kôda zna biti vrlo naporno, pogotovo kada imate više varijanti koje morate mijenjati. Sa spomenutim rješenjima imate samo jedan kôd koji prepravljate, a odnosi se na sve platforme.

4) Jednak izgled za sve – Prilično je teško napraviti da aplikacija na svim platformama izgleda jednako i da imate jednak osjećaj korištenja. Uvijek postoje određene razlike i većina korisnika to neće primijetiti jer koristi jednu platformu, no ipak nije to to. Na ovaj način ćete svesti te razlike na minimum, a često one neće ni postojati što je jako dobro, pa će aplikacije izgledati (i biti) identične.

5) Koristite poznatu tehnologiju – Ovo je možda i najvažnija točka. Koristeći multi platformska rješenja možete koristiti tehnologiju, točnije programski jezik koji poznajete i u kojem se odlično snalazite. To je ogromna prednost jer nije praktično učiti 3-4 jezika za 3-4 različite platforme.

6) Manji troškovi razvoja aplikacije – To se odnosi na kompanije koje razvijaju aplikacije. Mnogo je jeftinije imati jedan programerski tim koji razvija aplikaciju za više platformi, nego više timova. Uz to, ovako se timovi ne moraju usuglašavati oko određenih rješenja i raditi kompromise, nego su sve odluke samo na jednom timu.

Mane

Postoje i određene mane kod korištenja ovih razvojnih rješenja, no one su više tehničke prirode. Ponekad nije moguće napraviti da aplikacija jednako radi na iPhone i Androidu iz razloga što imaju drugačije mehanizme prikaza i rada ekrana. Točnije, drugačije pozivaju određene evente. Moguće je i da ćete za Android morati napisati 100 linija kôda, a za iPhone možda 20-ak. Takve stvari se događaju i sasvim su normalna pojava, no razvojno okruženje je tu da to svede na minimum i da vam pomogne što više može. Treba samo pripaziti da se ne naruši fleksibilnost razvoja aplikacije, a to će se dogoditi upravo u ovom slučaju – kada počnete za određene platforme pisati drugačiji kôd.

xamarin

Xamarin

U veljači ove godine, Mircosoft je kupio kompaniju Xamarin, iako ugovor nije poznat javnosti. Pretpostavlja se da je Microsoft iskeširao između 400 i 500 milijuna dolara za ovu kompaniju. To je odličan potez jer se radi o kompaniji koja je već nekoliko godina lider u ovom segmentu razvoja višeplatformskih aplikacija, te je Microsoft pokazao da i dalje želi ulagati u mobilne tehnologije i da se nije predao iako Android i iOS zapravo čine cijelo to tržište.

Microsoft je očekivao da će uzeti dio kolača sada kada su na mobilne uređaje stavili Windowse 10, no to ne ide baš onako kako su očekivali. Kupovina Xamarina bi ipak mogla pomoći jer razvojem aplikacija sa ovim alatom, zapravo i Microsoft dobiva hrpu novih aplikacija za svoju platformu što bi eventualno moglo privući jedan broj novih korisnika. Krajem 2015.-te godine imali su udio od 1.1%, dok su u prvom kvartalu ove godine imali svega 0.7% tržišta. No, pogledajmo zašto je Xamarin dobar i zašto biste ga trebali koristiti. Xamarin je postao sastavni dio Microsofta i samim time ga možete pokrenuti unutar Visual Studija, što je odlična vijest.

Pogotovo kada znamo da je VS najbolji IDE koji trenutačno postoji na tržištu. Prije ste morali koristiti Xamarin Studio, dok više ne morate. Zapravo morate ukoliko koristiti Mac računala, odnosno radite na macOS-u. U svakom slučaju, zadnjom revizijom Xamarina, ugrađeno je jako puno novih stvari, olakšano je korištenje istoga i sa manje kôda možete dobiti više nego prije.

programiranje androida

Uz pomoć ovog alata, možete napisati gotovo nativne aplikacije za Android, iOS i Windowse 10, koristeći ponajbolji programski jezik – C#. Riječ je o Microsoftovom jeziku koji nije najkorišteniji ali nudi najviše. Sam programski jezik donosi hrpu stvari i možemo ga usporediti s Javom s kojom dijeli dobar dio mogućnosti, no C# je uvijek korak ili dva ispred Jave. Ono što mnogima smeta kod ovog jezika je to što je u „vlasništvu Microsofta“ i što ste ga morali koristiti na Windowsima i koristiti za razvoj aplikacija koje će koristiti Microsoftovu infrastrukturu.

Danas su stvari nešto drugačije, no proći će još neko vrijeme da ovaj jezik postane još popularniji nego što je danas. Razvijanje aplikacija u Xamarinu se vrši uz pomoć spomenutog jezika, no odvija se praktički u dva dijela – prvi dio tiče se isključivo backenda, odnosno onog nevidljivog dijela koji upravlja aplikacijom i poslovnom logikom, a drugi dio tiče se UI-ja, odnosno korisničkog sučelja. Stvar je theničke prirode jer još uvijek ne postoji način da ‘nacrtate’ forme i iskoristite iz za sve platofrme, no kao što smo rekli, 90 posto kôda možete iskoristiti na sve tri platforme.

Uz to, Xamarin vam nudi i nativne SDK-ove uz pomoć kojih možete iskoristiti specifične mogućnosti vezane uz svaku platformu. To znači da ćete moći na Androidu iskoristiti ono što je specifično za tu platformu, za iOS ono što je specifično za tu platformu itd. To je odlično jer sa time stvarate nativnu aplikaciju koja se praktički neće razlikovati od one koja je napravljena, recimo, u Javi i isključivo za Android. Jer i jedna i druga iskorištavaju Android maksimalno moguće.

programiranje xamarin

Samo što Xamarin omogućuje da paralelno razvijate aplikaciju za više platformi. To naravno znači i više posla oko određenih funkcionalnosti, no to je mala cijena koju programer mora platiti kod ovakvog razvoja. Možda se pitate i kakve su performanse ovakvih aplikacija. Rekli bismo odlične. Mnogi alati ovog tipa koriste razne među razine za pokretanje aplikacija, dok Xamarin daje nativne aplikacije koje u potpunosti iskorištavaju hardver i softver uređaja na kojem se pokreću tako da u praksi ne vidite razlike u odnosu na nativne aplikacije. U Xamarinu imate nekoliko libraryja koje možete koristiti, a to su Xamarin.

Android, Xamarin.iOS, Xamarin.Windows … Spomenuti libraryji su ono što zapravo razlikuje Xamarin od ostalih alata i tu se nalaze te specifične komponente koje drugi alati nemaju. Na primjer, Xamarin.iOS vam nudi pristup iOS API-ju, mogućnost direktnog podizanja aplikacije na Store, pozivanje Objective-C kôda sa C# kôdom, mogućnost izgradnje aplikacije koja koristi WatchKit te se povezuje sa Apple pametnim satom …

Microsoft je odlučio da Xamarin SDK bude open source, tako da ćete i tu moći iskoristiti puni potencijal alata kojeg koristite. Ne sumnjamo da će ovaj potez zapravo rapidno ubrzati razvoj Xamarina jer će se svi programeri moći uključiti u razvoj Xamarina, što će vrlo vjerojatno rezultirati novim mogućnostima u bližoj budućnosti. Ono što bismo mi željeli vidjeti je podrška za neke druge programske jezike, posebice one funkcionalne, kao što je F#. Treba proširiti bazu korisnika, odnosno programskih jezika jer je to jedini način da postojeći programeri počnu koristiti Xamarin. Tu prvenstveno mislimo na programere koji ne koriste i ne žele koristiti (ili učiti) C#. Ponavljamo – za nas je to gotovo idealan programski jezik, no ne misle svi tako. U svakom slučaju, Xamarin je vrhunski alat, a besplatno ga možete skinuti sa njihovih službenih stranica (www.xamarin.com).

Phone Gap

Druga aplikacija vrijedna spomena je PhoneGap. Ako se bavite programiranjem vrlo vjerojatno ste čuli za nju. Ako niste, nema problema. Mi ćemo vam pokazati što ona može i kako funkcionira. PhoneGap je, kao i Xamarin, open source projekt, točnije open source framework koji služi za brzu izgradnju mobilnih aplikacija. Iako nemamo previše iskustva u mobilnom developmentu, odlučili smo probati PhoneGap i dati mu šansu. Dati mu šansu jer podupire veliki broj mobilnih platformi – iOS, Android, Blackberry, Windows phone, Symbian i Tizen.

programiranje phone gap

Vjerojatno poznajete sve navedene platforme, no Tizen bi mogao biti misterij. To je Linux bazirani operativni sustav napravljen za prijenosne uređaje kao što su tableti, pametni telefoni, pametne kamere i slično, a iza njega stoji Technical Steering Grupa (TSG) koja se zapravo sastoji od Samsunga i Intela. Zato Tizen možete vidjeti na nekim Samsungovim modelima. No, vratimo se na PhoneGap.

PhoneGap je namijenjen isključivo onim programerima koji žele probati napraviti mobilne aplikacije koristeći HTML5, CSS3 i JavaScript. To su većinom web programeri koji nisu vjerojatno imali doticaja sa drugim programskim jezicima ili se u profesionalnom smislu ne bave razvojem mobilnih aplikacija.

HTML5 i CSS3 su odlični za izradu grafičkog sučelja, a logika se rješava uz pomoć JavaScripta. Naravno, JavaScript vam služi za pristupanje nativnim funkcionalnostima mobilnog telefona, tako da budite svjesni činjenice da ste u određenim segmentima ipak ograničeni. S druge strane, naravno da možete napraviti vrhunsku aplikaciju s time i imati odlične performanse bez obzira da li aplikaciju vrtite na Android telefonu, iPhoneu, Windowsima …

Kada počnete graditi aplikaciju sa PhoneGapom, potrošiti ćete jako puno vremena da shvatite kako on zapravo funkcionira. I mi smo proveli sate i sate čitajući dokumentaciju, gledajući razne video tutorijale, skidajući kôd sa Githuba. Jednostavno treba vremena da uđete u cijelu priču i da vidite kako se mobilna aplikacija radi. Kada to svladate, sve će ići mnogo lakše. Prednosti PhoneGapa su: – Kodiranje aplikacija koristeći HTML/CSS/JS, umjesto Objective-C-a i Jave – Mnogo lakše održavanje i izgradnja aplikacije – Manje kôda za određene funkcionalnosti, nego što bi vam trebalo da koristite „prave“ programske jezike

– Jednostavnije i čišće grafičko sučelje za korisnika (što nije uvijek prednost, ali u velikoj većini slučajeva je) – Podrška za veliki broj mobilnih platformi – Open source je što znači da će doći mnoge nove funkcionalnosti sa novim verzijama Naravno, ima PhoneGap i loših strana. Neke od njih su: – PhoneGap ne podržava sve mogućnosti koje bi inače telefoni mogli imati da je aplikacija razvijena u Objective-C-u (iPhone) ili Javi (Android) – PhoneGap se dosta rijetko ažurira pa ponekad ne možete koristiti neke specifične funkcije koje su kasnije predstavljene – Ponekad aplikacije za određene platforme trebaju dodatne prilagodbe što može uzeti dosta vremena

Appcelerator Titanium

Treće multi platformsko rješenje koje moramo spomenuti je Titanium. Proizvod iza kojeg stoji velika kompanija Appcelerator koja ima svega sedam godina, a već je mnogo toga postigla. Riječ je o kompaniji koja se praktički formirala nakon izlaska prvog iPhonea i nekoliko drugih pametnih telefona, a specijalizirala se u izradi alata za izradu (mobilnih) aplikacija.

Vjerojatno ste kroz tekst primijetili da se ova multi platformska rješenja orijentiraju prema mobilnim tehnologijama jer je izrada mobilne aplikacije jednostavnija nego izrada desktop aplikacija, a i mnogo je veća potražnja za mobilnim aplikacijama nego za ostalim vrstama aplikacija. Tu je i problem piratstva i naplate desktop aplikacija, no to je tema za neki drugi put.

appccelerator titanium

Vratimo se mi Appceleratoru. Kao što smo rekli, Appcelerator ima svega 7 godina, a u tom razdoblju su strahovito brzo išli prema naprijed. Prvo su pružali podršku samo za razvoj Android i iPhone aplikacija, pa su tokom 2009.-e godine dodali i podršku za iPad, a godinu dana kasnije i za Blackberry uređaje. Najnovija podrška je za Tizen, kojeg smo već spominjali u ovom tekstu.

Sve u svemu vrlo impresivno. Inače, Titanium nije „samo rješenje“ za izradu aplikacija, nego punokrvna platforma koja pruža jako puno korisnicima. To možete vidjeti i po rečenici koja piše na njihovim službenim web stranicama koja kaže: „Nije problem započeti razvoj aplikacije, problem je u skaliranju i infrastrukturi“. I tu zapravo leži razlog zašto biste trebali razmotriti Titanium. Na službenim stranicama možete skinuti sav potreban softver, pa se nećemo s time zamarati.

Također, tamo ćete naći i sve relevantne informacije, dokumenta
Phone ciju, video tutorijale, eksterne veze na dodatne web stranice i još mnogo toga. Sama Appcelerator Platforma ima tri segmenta koji omogućuju brzi razvoj aplikacija. To su alati za izgradnju aplikacije, API-ji i alati za analitiku koji će vam pomoći da optimizirate aplikaciju. Pa krenimo redom.

– Alati – Appcelerator ima svoj studio koji skinete (zajedno sa SDK-om) i u kojem se nalaze svi potrebni alati da biste razvili aplikaciju. Ne morate ništa dodatno skidati, sve će studio sam skinuti i implementirati. Ako baš nešto i nedostaje, to ćete skinuti sa par klikova mišem unutar aplikacije. Jezik koji se koristi je javaScript u kombinaciji sa HTML-om 5 i CSS-om 3, kao i kod PhoneGapa. No, to se tiče mobilnih aplikacija. Sa Titaniumom je moguće pisati i desktop aplikacije (ali ćete morati skinuti određene dodatke za Titanium platformu) u programskim jezicima Pythonu, Rubyju i PHP-u. Možda pomalo i nespretan odabir programskih jezika, no što je tu je. Platforma će vam olakšati pisanje i generiranje kôda što je više moguće.

– API – ugrađenih API-ja ima mnogo, pitanje je za što vam trebaju. Ovdje ćete naći API-je za spajanje na društvene mreže (Google+, Twitter, Facebook, LinkedIn, 4square …), servise za online plaćanje, spajanje na SAP sustave, spajanje na Oracle sustave i druge razne API-je koji vam mogu dobro doći kod razvijanja aplikacija.

– Analitički alati – Dobra aplikacija nije samo aplikacija koja ima lijepo sučelje i koja dobro radi. Dobra aplikacija je optimizirana, nema memorijskih rupa, koristi najsigurnije mehanizme za pohranu i pristupanje podacima, a autor aplikacije zna što korisnici žele, za što ponajviše koriste aplikaciju, koliko resursa im treba za određenu radnju itd. Rekli smo da je Titanium i cloud-bazirana platforma, pa ćete tako moći prikupljati podatke o svojim korisnicima i analizirati ih. Naravno, nećete poput Googlea moći vidjeti sadržaj koji se nalazi unutar aplikacije koju napravite, no zato ćete dobiti sve druge relevantne podatke. Što je u konačnici odlična stvar iz razloga koje smo naveli, a sve podatke možete prikupljati u realnom vremenu.

programiranje androida 2

Multi platformska rješenja ili ne?

Na kraju da odgovorimo na pitanje da li treba koristiti multi platformska rješenja ili ne. Odgovor nije jednostavan i ovisi o tome što želite postići. Ako želite razviti aplikaciju i podijeliti ju sa što većim brojem korisnika, odnosno napraviti ju za što veći broj platformi, onda je ovo rješenje idealno. Pisati samo jedan kôd koji možete uz minimalno truda prilagoditi svim platformama, čini se kao utopija. Ako želite napraviti pravu desktop ili web aplikaciju, tada je svakako bolje uzeti određeni programski jezik i napraviti ju na „pravi“ način. Recimo, koristeći Javu ili C#. Ista stvar je sa mobilnim aplikacijama. Ako imate znanja, napravite nativnu aplikaciju za svoju omiljenu platformu.

Ako ne – ovi alati su odlični jer ćete naučiti C#, koristiti API-je svih platformi, naučiti ponešto o svim platformama, naučiti deployati aplikacije na više različitih storeova … Vjerujemo da će ovi alati ipak više biti zanimljivi kompanijama jer će im omogućiti da jedan programerski tim radi aplikacije za sve platforme, smanjiti im troškove razvoja, te ubrzati poslovanje. U svakom slučaju, preporučamo vam da probate jedan od spomenutih alata – nećete požaliti.

Piše: Boris Plavljanić


Prethodni članak
Sljedeći članak
RELATED ARTICLES

Komentiraj

Please enter your comment!
Please enter your name here

- Advertisment -

Most Popular