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.


Prethodni članak
Sljedeći članak
RELATED ARTICLES

Komentiraj

Please enter your comment!
Please enter your name here

- Advertisment -

Most Popular