PočetnaSoftverKorisniMulti platformska rješenja za razvoj aplikacija

Multi platformska rješenja za razvoj aplikacija


Svi programeri su svjesni činjenice da jedan programski jezik ne može biti dobar za sve vrste programiranja, no zato su tu multi platformska rješenja koja mogu pomoći. S njima možete koristiti svoj omiljeni jezik i napraviti aplikaciju i za one platforma za koje inače ne biste mogli. Zvuči zanimljivo, zar ne?

Ako se bavite programiranjem, bilo profesionalno ili u slobodno vrijeme, onda znate da se trenutačno ponajviše traže programeri za web aplikacije, te programeri koji znaju razviti mobilnu aplikaciju za određenu platformu. Upravo nas ova druga skupina zanima – programeri za mobilne aplikacije. Ti isti programeri razvijaju najčešće aplikacije ili za iPhone ili za Android, no postoje još neke platforme u svijetu koje se koriste i koje ne smijemo zaboraviti. Makar one imale mali udio na tom tržištu. Nameće se pitanje kako razviti aplikaciju, a da ju što veći broj korisnika može koristiti. Da li ići razvijati istu aplikaciju za iPhone koristeći Xcode, aplikaciju za Android koristeći Eclipse i tako dalje ili koristiti univerzalno rješenje? Upravo se tim univerzalnim (multi platformskim razvojnim) rješenjima bavimo danas. Na tržištu postoji mnogo različitih proizvoda, a mi smo za vas izabrali 3, odnosno 4 najpopularnija. Ipak, prije nego se pozabavimo konkretnim rješenjima, pogledajmo koje su prednosti ovih rješenja.

Piše: Boris Plavljanić

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

Htjeli priznati ili ne, postoje samo dva programska jezika za programiranje nativnih mobilnih aplikacija, a to su Objective-C i Java. Ako ste iskusni C# programer, a htjeli ste programirati aplikaciju za iPhone ili Android niste imali sreće. No, stvari se polako mijenjaju – došao je Xamarin 2.0 koji vam omogućuje da napišete aplikacije za iPhone i Android koristeći C# programski jezik. Inače, Xamarin SDK je baziran na open source projektu koji je poznat pod nazivom „Mono“ i koji omogućuje pokretanje.NET aplikacija na drugim platformama. U ovom slučaju su to iPhone i Android telefoni. A najbolje od svega je što pri razvoju aplikacija možete koristiti najbolju razvojnu okolinu na tržištu – Visual Studio. Xamarin ima svoj Studio, no možete ga i „prisloniti“ na Visual Studio i koristiti sve svoje omiljene mogućnosti u njemu. Izbor je samo vaš.

Xamarin ima samo jedan cilj, a to je pružiti vam najbolje rješenje za programiranje mobilnih aplikacija. Da li je najbolje rješenje ili ne, prosudite sami nakon što ga isprobate, no zasigurno je među top 5 rješenja na tržištu.
Samo postavljanje Xamarina nije teško – skinite ga i instalirajte. Naravno, morati ćete pri prvom pokretanju podesiti određene parametre, no vrlo je jednostavno pa nećemo tome pridavati mnogo pažnje. Samo jedna napomena – ako nemate sve potrebne SDK-ove i slično, Xamarin će tih okom instalacije skinuti lokalno na računalo, pa bi se instalacija mogla odužiti i na sat vremena (a možda i više). Nakon što ste instalirali aplikaciju, podesili što trebate, vrijeme je da počnete razvijati aplikaciju.

Razvoj aplikacije u Xamarinu sastoji se iz dva dijela, ako to možemo tako reći. Jedan dio tiče se čisto „back-end“ dijela, odnosno dijela aplikacije koji se ne tiče grafičkog sučelja, a drugi dio se odnosi na specifičnu platformu i tiče se grafičkog sučelja. Pojednostavljeno – onaj „nevidljivi dio“, kako aplikacija radi, pišete samo jedanput za sve platforme. A grafičko sučelje ćete morati posebno napraviti za svaku platformu. To je jedna od mana ovog programa, no zbog tehničkih problema nije bilo moguće napraviti univerzalni editor u kojem ćete nacrtati sučelje, iskoristiti univerzalne widgete i složiti aplikaciju. No, pošto je sučelje možda 10% posla, mislimo da to i nije tako veliki problem.

Vratimo se još malo na ovaj prvi dio programiranja koji se tiče svih platformi. On se sastoji od C# programskog jezika i.NET baznog libraryja koji vam omogućuje sve osnovne funkcionalnosti – spajanje na Internet/mrežu, razne strukture podataka, pristup datotekama, bazi podataka i dretvama. To vam je dovoljno da napravite skoro sve funkcionalnosti koje vam aplikacija treba imati. Specifične funkcije također možete izvesti, a nalaze se u libraryjima koji se zovu Xamarin.iOS i Xamarin.Android. Oni su sastavni dio Xamarin SDK-a, tako da se ne morate bojati da nećete moći koristiti NFC hardver (Android) ili Core Animations (iPhone). Bitno je samo da sve te API-je dobro povežete i da sve bude kompatibilno. Ta kompatibilnost se postiže sa modularnošću koju Xamarin nudi – odjeljivanjem pojedinih dijelova kôda aplikacije. Možda vam sada zvuči komplicirano, no nije. Xamarin je fantastičan alat koji će programerima omogućiti da veliku većinu kôda napišu samo jednom i da na jednom mjestu održavaju taj kôd, te ga po potrebi ažuriraju. Ako želite mijenjati grafičko sučelje za Android ili iPhone platformu, možete bez da dirate originalni kôd. Da li Xamarin ima mjesta za napredak? Naravno. Toga su svjesni i u kompaniji koja stoji iza Xamarina i već su najavili hrpu novih mogućnosti koje će doći sa novom verzijom koja bi po svemu sudeći trebala još više olakšati programiranje i smanjiti razlike među platformama. Nemamo razloga im ne vjerovati, jer su već sada napravili odličan posao, a svaka nova verzija može biti samo bolja.

PhoneGap

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. 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, Blackberryju …

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

Sve u svemu, mi smo zadovoljni sa PhoneGapom iako ima dosta prostora da bude bolji pa očekujemo nove mogućnosti uskoro. Što se samog razvoja tiče, mogućnosti su vam ogromne, a samo vaše (ne)znanje je ograničenje. No, sa malo čitanja po webu možete učiniti mnogo toga.

Appcelerator Titanium

Treće multi platformsko rješenje koje moramo spomenuti je Titanium. Proizvod iza kojeg stoji velika kompanija Appcelerator koja ima svega pet 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 platformi 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. Vratimo se mi Appceleratoru.

Kao što smo rekli, Appcelerator ima svega 5 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. 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, dokumentaciju, 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.

Konačna ocjena Titaniuma – odlično! Svakako preporučamo kao prvi izbor.

QucikConnectFamily Hybrid (Framework)

I za kraj ćemo još kratko spomenuti QuickConnectFamily Hybrid (skraćeno: QCFH). Riječ je o frameworku koji su napravili studenti MIT-a i besplatno ga postavili na Internet. Riječ je o jednom od najmoćnijih frameworka na tržištu (moguće ga je koristiti na svim platformama i sa mnogim programskim jezicima), ali ne služi za razvoj mobilnih aplikacija, nego za razvoj desktop i server aplikacija. Možete ga koristiti i za razvoj nativnih mobilnih aplikacija, ali samo za Android i iPhone. Ako želite razvijati aplikaciju za neku drugu platformu, izaberite neki drugi alat ili framework.

QCFH nas je oduševio specifičnim mogućnostima – jako je pojednostavnio razvoj enterprise aplikacija, te njihovo skaliranje. Programski jezici koje možete koristiti s ovim frameworkom su: Objective-C, C, C++, PHP, Java, Erlang. Za razvoj mobilnih aplikacija, pogađate, možete koristiti JavaScript, HTML5 i CSS3.

Kada smo rekli da je ovaj framework pojednostavnio razvoj enterprise aplikacije, mislili smo prvenstveno na veliki broj ugrađenih libraryja i API-ja koji će veliki dio posla odraditi umjesto vas. Recimo, zašto biste učili komplicirani API za JS koji služi za spajanje na bazu podataka, kada imate ugrađene funkcije koje će to učiniti za vas sa manje od 10 linija kôda. Možda se čini kao nešto trivijalno, no ovakve funkcije jako skraćuju vrijeme razvoja aplikacije, kao i njegovu kompleksnost. No, ne radi se tu samo o spajanju na bazu podataka. Tu je i hrpa funkcija s kojima možete pristupiti hardveru na kojem se nalazi vaša aplikacija, te raditi sa datotekama na računalu (spremati ih, dohvaćati, otvarati/zatvarati …), koristiti mrežne resurse, vanjske uređaje, koristiti razne web servise, koristiti multi-threading, geolokacijske mogućnosti, koristiti kameru, žiroskop (ako se radi o mobilnim uređajima), geste sa više prstiju, sve nativne funkcije uređaja … Zapravo, ovaj framework je nešto što morate imati ako želite brzo i jednostavno razviti aplikaciju. Postoje razne alternative ovom frameworku, no one su najčešće ograničene ili specijalizirane samo za određeno područje (npr. Framework za pristupanje bazi podataka), a QCFH pokušava sve objediniti. Nadalje, iako je riječ o frameworku koji je napravio MIT, postoji veliki broj korisnika koji nemaju veze sa tim sveučilištem, a pomažu razvoju frameworka što će reći da je ovo jedna vrsta open source projekta koji se i dalje razvija i nastaviti će se razvijati u budućnosti. Stoga, ako ste programer i bavite se razvojem desktop/server aplikacija, svakako ga isprobajte. Nećete ništa izgubiti, a vjerujemo da će vam pomoći u svakodnevnom radu.

Multi platformska rješenja – da 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 aplikaciju, tada je svakako bolje uzeti određeni programski jezik i napraviti ju na „pravi“ način. Recimo, koristeći Javu ili C#. Dapače, C# je možda najbolji izbor jer možete koristiti Windows Forme, WPF i slično. Što se frameworka tiče – oni su uvijek dobrodošli, makar ponekad njihova veličina može biti teret. Svako rješenje ima svojih pozitivnih i negativnih strana, a na vama je da odvagnete što želite i prema tome odaberete najbolje rješenje za programiranje aplikacije.


RELATED ARTICLES

Komentiraj

Please enter your comment!
Please enter your name here

- Advertisment -

Most Popular