Mobile First with Angular.JS - Владимир Цветков, Obecto

Preview:

Citation preview

Mobile-First with AngularJS

CLASS OF 2001 CLASS OF 2006

programmer | ˈprəәʊgraməә | noun !

a person that turns caffeine (and pizza) into computer programs.

I am architect

But not that kind of an architect...

Picture property of Warner Bros.

“… guide, as in mountaineering. A guide is a more experienced and skilful team member who teaches other team members to better fend for themselves yet is always there for the really tricky stuff.”

-- Martin Fowler, Who needs an Architect?

http://martinfowler.com/ieeeSoftware/whoNeedsArchitect.pdf

PARENT

Sofia Zoo, 2013

Startup = Growth => We’re looking for growth hacks

growth hacking !

looking for low-cost and innovative alternatives to traditional approaches

Architecture Crash Course in

Agenda

Client-Side Problems (& the Angular take on those)

Directives, Data binding & Filters!

!

!

Development Problems (& how the tooling works)!

Mobile-First Headaches

Architecture Crash Course in

Agenda

Client-Side Problems (& the Angular take on those)

Directives, Data binding & Filters!

!

!

Development Problems (& how the tooling works)!

Mobile-First Headaches

MVC, MVCS, MVWhatever

M V

C

this is what we’re familiar with — let’s

complicate it a bit

M V

C

S

in a perfect world there would be only 4 dots with arrows between them...

M V

C

MM

VV

C C

SS S

in situations like that you need to take care of dependency

management

Problem 1: Dependencies

Problem 2: Event Handling

M V

C

What kind of events?

Who dispatches these events?

How to subscribe to the events of interest?

How such events reach the model, controller or whatever?

Problem 3: Presentation Patterns

M V

C

What logic is allowed to be put in the HTMLs?

How does the model get adapted for the needs of the View?

How to mediate the cooperation between several components?

How about the View Display logic and DOM manipulation?

V.D.

V.L.

M.P.

Med.

The Angular approach$scope

M V

W

$scopeM V

W

$scopeM V

W

$scopeM V

W

$scopeM V

W

D.I.Hierarchy of scopes tied to HTML DOM

Dependencies Injector is a registry for all Angular components

Events travel through the hierarchy of $scope — emit & broadcast

Presentation Model & Passive View as presentation patterns

Architecture Crash Course in

Agenda

Client-Side Problems (& the Angular take on those)

Directives, Data binding & Filters!

!

Development Problems (& how the tooling works)!

Mobile-First Headaches

"

yo scaffolds out a new application, writing your Grunt configuration and pulling in relevant Grunt tasks and Bower dependencies that you might need for your build.

Grunt is used to build, preview and test your project, thanks to help from tasks curated by the Yeoman team and grunt-contrib.

Bower is used for dependency management, so that you no longer have to manually download and manage your scripts.

Don’t forget to check out the code: !

https://github.com/npacemo/beit-first-try !

So far we’re at this commit: !

https://github.com/npacemo/beit-first-try/commit/eb9237

Architecture Crash Course in

Agenda

Client-Side Problems (& the Angular take on those)

Directives, Data binding & Filters!

!

Development Problems (& how the tooling works)

Mobile-First Headaches

"

"

Architecture Crash Course in

Agenda

Client-Side Problems (& the Angular take on those)

Directives, Data binding & Filters!

Development Problems (& how the tooling works)

Mobile-First Headaches

"

"

"

Architecture Crash Course in

Agenda

Client-Side Problems (& the Angular take on those)

Directives, Data binding & FiltersDevelopment Problems (& how the tooling works)

Mobile-First Headaches

"

"

"

! More Headaches…"

Please, send your Questions on my

daddy’s email (vtsvetkov@obecto.com) or else he’ll be late for

my party!