angularjs - ivan vučičević

38
Izrada hibridnih mobilnih aplikacija temeljenih na angular.js Ivan Vucicevic, BetaWare Osijek 2014.

Upload: kruno-ris

Post on 09-Jun-2015

123 views

Category:

Software


1 download

DESCRIPTION

Izrada hibridnih mobilnih aplikacija, KulenDayz - prezentira Ivan Vučičević, BetaWare d.o.o.

TRANSCRIPT

Page 1: AngularJS - Ivan Vučičević

Izrada hibridnih mobilnih aplikacija temeljenih na

angular.js

Ivan Vucicevic, BetaWare Osijek 2014.

Page 2: AngularJS - Ivan Vučičević

Što trebamo znati?

Potrebno predznanje javaScript-a

Potrebno znanje HTML-a

Page 3: AngularJS - Ivan Vučičević

Zašto Angular?

Ako želimo napravit dinamičku web ili mobilnu aplikaciju Angular je odličan izbor

Angular nam jako dobro strukturira i organizira kod javaScript-a

Angular nam omogućuje izradu jako brzih web stranica

Angular se ponaša odlično pri radu s jQuery-em

Angular nam pruža lako održavanje software-a

Angular proširuje HTML s novim atributima

Angular je savršen za SPA

Jednostavan za učenje

Page 4: AngularJS - Ivan Vučičević

Što Angular čini tako brzim?

Server

Url zahtjev na server

Odgovor servera s web stranicom HTML + JS

Korisnik klikne na link

Odgovor servera s web stranicom HTML + JS

Page 5: AngularJS - Ivan Vučičević

Što Angular čini tako brzim?

Server

Url zahtjev na server

Odgovor servera s web stranicom HTML + JS

Korisnik klikne na link

Odgovor servera s JSON podacima

Podaci se učitavaju u postojeću stranicu

Page 6: AngularJS - Ivan Vučičević

Što je Angular u stvari?

Open-source JavaScript framework koji se izvršava na strani klijenta

Održavan je od strane googla

Nastao 2010.

Slijedi MVC kako bi olakšao i ubrzao razvoj

Koristi tzv. direktive

Two-way data binding ($scope)

Moćni templating HTML-a

Page 7: AngularJS - Ivan Vučičević

Što je Angular u stvari?

Page 8: AngularJS - Ivan Vučičević

Kako koristiti Angular s našom web ili mobilnom aplikacijom?

Vrlo jednostavno CDN

Direktno

Page 9: AngularJS - Ivan Vučičević

Moduli u Angularu

Moduli su gdje pišemo dijelove naše aplikacije, te na taj način držimo kod enkapsuliranim

Zbog takvog pristupa kod nam je lakše održiv i čitljiv

Također u modulima definiramo ovisnosti ostalih modula za našu aplikaciju

Page 10: AngularJS - Ivan Vučičević

Moduli u Angularu

var ngApp = angular.module('ngApp', [‘module2‘, ‘module3']);

app.js

Page 11: AngularJS - Ivan Vučičević

Pisanje izraza u Angularu

ng-app direktiva je definirala cijeli HTML kao angular aplikaciju

Na taj način omogućeno nam je pisanje izraza unutar vitičastih zagrada

Page 12: AngularJS - Ivan Vučičević

Primjeri direktiva (najčešće korištenih)

ng-app – dodavanje Modula angular aplikacije stranici

ng-controller – dodavanje funkcije kontrolera stranici

ng-show/ng-hide – Prikaz/skrivanje elementa ovisno o vrijednosti modela

ng-repeat – ponavljanje za svaki element niza (foreach)

Page 13: AngularJS - Ivan Vučičević

Filteri u Angularu

Angular biblioteka u sebi sadrži mnoge filtere koji se pozivaju „pipe” operatorom (currency, datetime, number, orderBy)

Mogućnost izrade custom filtera

Page 14: AngularJS - Ivan Vučičević

<img> tag

Problem prilikom učitavanaja slike iz niza.

Page 15: AngularJS - Ivan Vučičević

Forme Modeli

Page 16: AngularJS - Ivan Vučičević

Dupliciranje

Repeating.html

Page 17: AngularJS - Ivan Vučičević

Dupliciranje

Server

Url zahtjev na server

Odgovor servera s web stranicom HTML + JS

ng-include (ajax)

HTML repeating.html

Podaci se učitavaju u postojeću stranicu

Page 18: AngularJS - Ivan Vučičević

Prilagođene direktive

Page 19: AngularJS - Ivan Vučičević

Rute / Konfiguracija

Page 20: AngularJS - Ivan Vučičević

Kontroleri

Page 21: AngularJS - Ivan Vučičević

Kontroleri

Page 22: AngularJS - Ivan Vučičević

Hibridne mobilne aplikacije

Nativne SDK

Mobilni Web PHP, node.js

Hibridne HTML5, JS

Page 23: AngularJS - Ivan Vučičević

Što odabrati?

Hibridne aplikacije Razvoj istovremeno na više platformi

Brži razvoj općenito

Pristup većini nativnih komponenti

Lošije performanse

Nativne aplikacije Najbolje performanse

Sporiji razvoj

Specifične za platformu

Page 24: AngularJS - Ivan Vučičević

Što odabrati?

Hibridne aplikacije su Vaš izbor ako: Ciljate na razvoj na više platformi

Želite koristiti mogućnosti kao što su kamera, geolokacija ili akcelerometar

Želite aplikaciju koja će raditi i kada nemate pristup internetu

Ne interesiraju Vas grafičke performanse

Page 25: AngularJS - Ivan Vučičević

Što odabrati?

Page 26: AngularJS - Ivan Vučičević

Što trebamo znati?

HTML5, CSS3 (SCSS i LESS)

HTML5 mobilni framework (OnsenUI, Ionic, IntelAppFramework, jQueryMobile, KendoUI…)

JS (AngularJS ili jQueryMobile)

Ako je potrebna komunikacija sa serverom: PHP, ASP …

CLI (phonegap, cordova, nodejs)

Page 27: AngularJS - Ivan Vučičević

Ionic framewrok

Besplatan

Open Source

Optimiziran za mobilne uređaje

Zasnovan na angularJS

Izvrsne performanse

Phonegap/Cordova

Koristi vlastite html tagove <ion>

Page 28: AngularJS - Ivan Vučičević

Onsen framework

Širok spektar gotovih UI komponenti

Dizajn prilagođen za mobilne uređaje i tablete

Izvrsne performanse

Korisit angularJS

Phonegap/Cordova

Koristi vlastite html tagove <ons>

Page 29: AngularJS - Ivan Vučičević

Onsen karakteristike

+Nevjerojatan broj gotovih komponenti

+Velik broj gotovih templatea ili layouta

+Monaca (debug)

-Monaca nije besplatna

-Gotovi layouti nisu temeljeni na angularu

Page 30: AngularJS - Ivan Vučičević

Ionic karakteristike

+ionic CLI

+besplatan

+Open Source

+u potpunosti temeljen na angularJS

+Prepoznavanje platforme

+Native feel

-Još uvijek je beta

-manjak templat-a

-konstantne nadogradnje

Page 31: AngularJS - Ivan Vučičević

Hibridna aplikacija koja uploada i pretražuje slike na flickeru!

Page 32: AngularJS - Ivan Vučičević

Izbor layouta

• Potreban je jedan screen

• Jedan button

• Forma za pretragu

Page 33: AngularJS - Ivan Vučičević

Index.html

Page 34: AngularJS - Ivan Vučičević

App.js

Page 35: AngularJS - Ivan Vučičević

directives.js

Page 36: AngularJS - Ivan Vučičević

controllers.js

Page 37: AngularJS - Ivan Vučičević

In ction

Page 38: AngularJS - Ivan Vučičević

Hvala na pažnji!