Sveučilište J.J. Strossmayera u Osijeku Odjel za matematiku Sveučilišni diplomski studij matematike, smjer: Matematika i računarstvo Danilo Šormaz Razvoj mobilnih aplikacija Seminarski rad Kolegij : Softversko inženjerstvo Nositelj kolegija : doc. dr. sc. Alfonzo Baumgartner Osijek, 2018
14
Embed
Sveučilište J.J. Strossmayera u Osijeku Odjel za matematiku ...mrkve.etfos.hr/pred/ozm/si/sem22.pdfZa razvoj aplikacije je potrebno ili više ljudi koji će moći pokriti razne jezike,
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Sveučilište J.J. Strossmayera u Osijeku Odjel za matematiku
Sveučilišni diplomski studij matematike, smjer: Matematika i računarstvo
Danilo Šormaz Razvoj mobilnih aplikacija
Seminarski rad
Kolegij : Softversko inženjerstvo
Nositelj kolegija : doc. dr. sc. Alfonzo Baumgartner
5. Literatura ...................................................................................................................................... 14
3
1. Uvod
U ovom seminaru će biti obrađena tema razvoja mobilnih aplikacija, grane softvera koja se
najbrže razvija. U prvom dijelu ćemo izvršiti podjelu razvoja aplikacija na nativni i hibridni razvoj.
Navest ćemo prednosti i mane razvoja aplikacije na jedan odnosno drugi način. Usporedit ćemo ta
dva razvoja, navesti primjere nativnih i hibridnih aplikacija, te primjere frameworka za hibridni razvoj.
U nastavku ćemo opisati tri najpopularnije mobilne platforme te njihove razvojne okoline.
2. Nativni vs Hibridni razvoj aplikacija
Nativna aplikacija je softverski proizvod razvijen za točno određenu platformu ili uređaj. To je
zapravo najčešći oblik mobilnih aplikacija. Instalira se izravno na uređaj najčešće putem nekakvog
online marketa kao što je Google Play. Kao što i samo ime govori nativne aplikacije koriste nativne
programske jezike za svaku platformu; npr Objective - C ili Swift za iOS i Javu za Android .
Prednosti nativnog razvoja aplikacija:
User Experience - dugogodišnjem korisniku jedne platforme ta platforma je jako dobro
poznata, pa ima problema s korištenjem aplikacije koja izgleda i ponaša se prema
konvencijama druge platforme. Zato će nativne aplikacije biti intuitivnije budući da svaka
platforma ima svoj specifičan UI.
Brzina i performanse - budući je aplikacija razvijana i optimiziriana za točno određenu
platformu (bio to iOS ili Android) to će se odraziti na boljoj učinkovitosti. Uz nativni način
razvoja aplikacije sve je unaprijed uzeto u obzir poput memorije i baterije uređaja. Kôd
nativnih aplikacija radi brže, nove funkcionalnosti se lakše integriraju te je sama aplikacija
stabilnija.
Mogućnosti - kada promatramo razlog zašto su Android i iOS nativne aplikacije bolje,
trebamo uzeti u obzir činjenicu da aplikacije imaju potpun pristup kameri, bazi podataka,
geolokaciji i drugim funkcionalnostima uređaja. S hibridnim načinom razvoja postoje
ograničenja prilikom konstrukcije interface-a jer se koristi na više platformi.
Testiranje - testira se samo jedna platforma pa su testovi specifičniji, detaljniji, te je veća
mogućnost da budu uspješniji.
Internetska konekcija najčešće nije potrebna, tj. ovisi o funkcionalnosti.
4
Mane nativnog razvoja aplikacija:
Trošak razvoja aplikacije - potrebno je zasebno razviti aplikaciju za svaki mobilni operativni
sustav, što iziskuje više vremena i novca u razvoju, a i kasnijoj nadogradnji.
Brzina razvoja aplikacije - sav kôd mora biti jedinstven za svaku platformu što će iziskivati više
vremena za razvoj.
Održavanje i evolucija - u ovisnosti o broju platformi i uređaja za koje je aplikacija rađena
toliko ćemo više errora i bugova morati popraviti.
Za razvoj aplikacije je potrebno ili više ljudi koji će moći pokriti razne jezike, ili jedan iskusniji
developer koji mora znati više jezika.
Glavna razlika između nativnih i hibridnih aplikacija dolazi iz procesa razvoja aplikacije. Hibridne
aplikacije se pišu odjednom za sve platforme, tj. kôd je jedinstven, uz neke iznimke. Zapravo hibridna
aplikacija se može opisati kao mješavina nativne aplikacije i web aplikacije. Hibridne aplikacije se
razvijaju pomoću HTML-a, CSS-a i JS-a. Developeri razvijaju jedan bazni kod na kojem se dodatno vrše
manje promjene za različite platforme. Hibridne aplikacije mogu koristiti WebView, aplikaciju koju
možemo zamisliti kao fullscreen web preglednik tj. mogu koristiti nativni wrapper. Zbog toga
možemo reći da su hibridne aplikacije aplikacije koje su razvijene web tehnologijom, a kao rezultat
daju web aplikaciju koja se pokreće kao samostalna aplikacija.
Prednosti hibridnog razvoja aplikacija:
Razvijanje aplikacije je puno jednostavnije budući se izrađuje jedna aplikacija za više
platformi.
Brže razvijanje uz nižu cijenu .
Jedinstvena logika - bez obzira na platformu logičkio dio aplikacije će se ponašati jednako.
Razvijena na web tehnologijama HTML, CSS, JS koje su mnogo jednostavnije za korištenje.
Mane hibridnog razvoja:
User Experience - postizanje dobrog korisničkog iskustva je teško jer prilikom razvijanja
interface mora zadovoljiti potrebe korisnika Androida i iOS-a. Ukoliko aplikacija bude više
izlazila u susret korisnicima Androida, tada će korisnici iOS-a osjetiti poteškoće prilikom
uporabe aplikacije (i obratno).
Performanse - nedovoljno brzo renderiranje interface-a i trzanje efekata animacije kod
starijih verzija OS-a.
5
Programski okviri za hibridne mobilne aplikacije:
Framework Prednosti Mane
Xamarin
Performanse Nativan UX Jednostavno za održavanje
Limitiran pristup open-source bibliotekama Community Nije za aplikacije koje imaju napredniju grafiku Veličina aplikacije
PhoneGap/Cordova
Veliki izbor biblioteka Brza izrada prototipa
Loše performanse Manjak UI widgeta
Intel XDK
HTML, CSS, JS mobile i Cordova Responzivan dizajn Lagana provjera na različitim uređajima kroz XDK emulate tab
Performanse Limitirane funckionalnosti zbog security modela Community
Ionic
Rad s predefiniranim komponentama Dobar community
Zahtjeva dobro poznavanje Angular JS-a
Framework7
Jednostavan Temeljen na HTML, CSS i JS Dobre performanse
PhoneGap/Cordova builder nije uključen
Kendo UI
Animacije Brzina Dokumentacija
Kombinacija jQuery i Angular JS
Apache Cordova je framework za razvoj mobilnih aplikacija. Ovaj framework omogućuje
developerima da razvijaju aplikaciju koristeći CSS3, HTML5 i JS. On koristi mobilni preglednik tj.
njegov rendering engine za izvršavanje aplikacije. Preko tog enginea je omogućena komunikacija s
operativnim sustavom te nakon uspješne komunikacije se prikazuje UI aplikacije. Postoje dva različita
smjera razvoja Cordova aplikacija:
cross - platform - omogućava da pokrijemo sve željene platforme (Android, iOS, BlackBerry,
Windows Phone), ali nam daje nešto manje funkcionalnosti.
platform - centered - bazira se na dodacima za točno određenu platformu što omogućuje
bolje performanse i više mogućnosti.
Iako smo strogo podijelili razvoj Cordova aplikacija, moguće je da se ova dva načina kombiniraju. Npr.
možemo napisati većinu aplikacije tako da koristimo prvi pristup, a zatim taj dio iskoristiti i
određenim aplikacijama dodati biblioteke za iOS, Android itd.
Cordova trenutno podržava razvijanje aplikacija za: Apple iOS, Bada, BlackBerry, FirefoxOS, Google
Android, Microsoft Windows Phone, Nokia Symbian OS, Tizen i Ubuntu Touch.
6
Cordova pruža API za pristup sustavskim funkcijama uređaja, tako da iz web aplikacije možemo
aktivirati kameru, izbaciti notifikaciju, očitati geografske koordinate i dr. Ove funkcionalnosti su
dostupne nakon instaliranja odgovarajućeg Cordova plugina:
Battery Status
Camera
Console
Contacts
Device
File
Geolocation
Media
Vibration
itd.
Da bi odgovorili na pitanje kada koristiti nativni razvoj aplikacije, a kada hibridni, moramo znati što je cilj našeg projekta i što naš projekt zahtjeva.
Izabrat ćemo nativni razvoj ukoliko :
Aplikacija treba biti u mogućnosti da radi i offline i online
Želimo što responzivniju aplikaciju
Aplikacija zahtjeva pristup servisima i resursima uređaja
Želimo što funkcionalniju aplikaciju
Želimo bolji UX
Želimo stabilnost i brzinu
Izabrat ćemo hibridni razvoj ukoliko :
Offline način rada nije važan
Aplikacija ne sadrži zahtjevne obrade podataka ili kompleksne animacije
Imamo web aplikaciju i želimo u što kraćem roku uz minimalne troškove izraditi mobilnu