SlideShare a Scribd company logo
AngularJS – An Introduction


Nitya Narasimhan
@nitya


NYC GTUG Meetup
February 27, 2013
About Me

¤  15+ years R&D, past 10 years in industry

¤  Survivable Distributed Java Systems (PhD)

¤  Early Stage Technology Development (Motorola)

¤  Education Technology, Learning Analytics (Independent)

¤  Interests: mobile computing, social software, interactive
    television, sentient computing, adaptive learning

¤  Relative novice to front-end web development
Web App Design Challenge
                                          One app per
                             MY UI          platform
                                       (local optimization)




                                                                 MY
                                                                 DB




                                               NETWORK
                                               LATENCY        MY SERVER
                             MY UI

                                             Round-trip per
                                              page load
                                                                          THIRD PARTY
DEVICE DIVERSITY     BROWSER DIVERSITY                                     SERVICES
Responsive Design   Cross-platform testing
What I was looking for …

¤  Enable Responsive Design (across device form factors)

¤  Single Page App Support (deep linking, dynamic views)

¤  Long term relevance (active community, adoption)

¤  Ease of development (bootstrapping, docs, examples)

¤  Ease of testing (built-in test harness, testing tools)

¤  Flexibility in usage (extensible, embeddable)
AngularJS looked promising ..
                                                    V1.1.1




                                           V1.0.3




                       V1.0.0




http://trends.builtwith.com/javascript/Angular-JS            http://builtwithangularjs.org
What is AngularJS?

¤  “HTML enhanced for web apps”

¤  Open-sourced by Google (2009)

¤  MVC JavaScript framework

¤  Programming philosophy:
  ¤  View = Declarative
  ¤  Controller = Imperative
  ¤  Clean separation, reduced
      complexity (no ugly DOM wrangling)
Hello World! (angularjs.org)




                                      Directives are
                                      totally cool!!

•  Maintains familiar HTML syntax
•  Masks DOM manipulation from UI developer
Under the (browser) hood..
•    Angular enhances HTML
     vocabulary (directives)

•    Browser loads static HTML,
     parses DOM

•    Angular identifies app
     boundary (ng-app), locates
     related module

•    Angular module, compiles
     directive (injects dependency,
     adds $scope context)

•    Browser renders HTML (view)


                                      Developer Guide >> Conceptual Overview
Critical Concept = $scope
•  Object representing
   application model

•  “Root” scope, hierarchy of
   “child” scopes (DOM-like)

•  Detect changes to model,
   Creates execution context
   for expressions

•  Can watch expressions,
   propagate changes to views

•  Decouples view & controller
                                 Developer Guide >> Conceptual Overview
Key Concepts
¤  Model = plain JavaScript object (no inheritance)

¤  View = declarative (in HTML), based on DOM objects

¤  Controller = imperative (logic), constructs “Model”,
    connects it to “View” via the $scope intermediary.

¤  Services = “common” tasks, data-sharing for controllers

¤  Filters = data transformation, can be chained together

¤  Directive = transform DOM, ‘declare’ new behaviors

¤  Module = declarative configuration (for app startup)
M-V-C in action (angularjs.org)
               View = HTML




              Directives
              (augment DOM)

                                    Controller = JS


                 Expressions
                 (filter chains)




                    Model = Scope
Key Features

¤  Custom directives (enhance HTML your way)

¤  2-way data binding (effortless sync of modelóview)

¤  Deep linking (single-page, normal navigation)

¤  Form validation (at client, with declarative rules)

¤  Dependency injection (with declarative wiring)

¤  Born testable, very embeddable (plays nice w/ others)
Quick Start (Yeoman workflow)




     Test
     Harness
Resources

¤  AngularJS Developer Guide

¤  PhoneCat Tutorial (example)

¤  Egghead.io (28 videos)

¤  AngularJS Starter (66 pages, code)

¤  AngularJS Generator (http://yeoman.io)

¤  BuiltWithAngularJS.org (Examples)
Interest in Deep Dives??

¤  Directives, Expressions, Filters

¤  Scope API ($watch, $apply)

¤  Deep Linking (Routing & Navigation)

¤  Modules, Services & Controllers

¤  Dependency Injection

¤  Workflow Automation & E2E Testing

More Related Content

PDF
Evaluation and prototyping of an HTML5 Client for iOS devices
ODP
Evaluation and prototyping of an HTML5 Client for iOS devices
PDF
Introduction to backbone js
PDF
Geek Time Juin 2016 : React
PDF
Rohit Yadav - Modern UI for CloudStack
PPT
SUE AGILE Framework (English)
PPTX
Large-Scale Web Development with JavaScript
Evaluation and prototyping of an HTML5 Client for iOS devices
Evaluation and prototyping of an HTML5 Client for iOS devices
Introduction to backbone js
Geek Time Juin 2016 : React
Rohit Yadav - Modern UI for CloudStack
SUE AGILE Framework (English)
Large-Scale Web Development with JavaScript

What's hot (13)

PDF
AngularJS NYC Meetup: UX Prototyping and Business Development with AngularJS
PPTX
Swing !!! y shikhar!!
PPT
DOC
Sai Sharan_UI_Resume
PDF
新版阿尔法城背后的前端MVC实践
PDF
Module System of JavaScript
PPSX
Introduction to backbone_js
PPTX
Going offline with JS (DDD Sydney)
PPTX
Angular js
PDF
Use Your WebDev Skills to Create Mobile Apps in Telerik Appbuilder (Jonathan ...
PPTX
Learn skills technologies
PDF
Browser and Cloud - The Future of IDEs?
PPTX
Kendo UI presentation at JsConf.eu
AngularJS NYC Meetup: UX Prototyping and Business Development with AngularJS
Swing !!! y shikhar!!
Sai Sharan_UI_Resume
新版阿尔法城背后的前端MVC实践
Module System of JavaScript
Introduction to backbone_js
Going offline with JS (DDD Sydney)
Angular js
Use Your WebDev Skills to Create Mobile Apps in Telerik Appbuilder (Jonathan ...
Learn skills technologies
Browser and Cloud - The Future of IDEs?
Kendo UI presentation at JsConf.eu
Ad

Viewers also liked (20)

PDF
Battle of Frameworks: Polymer - Meetup Paris Web Components - 2016-09
PDF
Apresentação Google I/O Extended Vitória
PPTX
Material design
PDF
Um salve para evolução! construindo uma nova web com polymer
PDF
The Beautiful Simplicity of ES2015
PDF
Polymer Elements: Tudo que você precisa saber para criar a web
PDF
O futuro do Android
PDF
Chrome Dev Summit Highlights (NYC GDG Dec 2013)
PDF
WebApps com Web Components
PDF
Polymer and Firebase: Componentizing the Web in Realtime
PDF
Introduction To Dart (GDG NY Jan 2014 Meetup)
PDF
Polymer Starter Kit
PPTX
Material Design - do smartphone ao desktop
PDF
Workshop de Web Components
PDF
Web components
PDF
Tech talk polymer
PPTX
Angular 2 overview workshop
PPTX
Pensando em UX / UI com o material design
PPTX
Angular 2 - a New Hope
PPTX
Web components + Material design = Polymer (by Vyatcheslav Potravnyy) - Hack'...
Battle of Frameworks: Polymer - Meetup Paris Web Components - 2016-09
Apresentação Google I/O Extended Vitória
Material design
Um salve para evolução! construindo uma nova web com polymer
The Beautiful Simplicity of ES2015
Polymer Elements: Tudo que você precisa saber para criar a web
O futuro do Android
Chrome Dev Summit Highlights (NYC GDG Dec 2013)
WebApps com Web Components
Polymer and Firebase: Componentizing the Web in Realtime
Introduction To Dart (GDG NY Jan 2014 Meetup)
Polymer Starter Kit
Material Design - do smartphone ao desktop
Workshop de Web Components
Web components
Tech talk polymer
Angular 2 overview workshop
Pensando em UX / UI com o material design
Angular 2 - a New Hope
Web components + Material design = Polymer (by Vyatcheslav Potravnyy) - Hack'...
Ad

Similar to Angular js gtg-27feb2013 (20)

PPTX
AngularJS Anatomy & Directives
PDF
AngularJS in Production (CTO Forum)
PDF
[Ebooks PDF] download AngularJS 1st Edition Brad Green full chapters
PDF
A white paper on Fundamentals and Implementations of Angular JS
PDF
What are the reasons behind growing popularity of AngularJS.pdf
PPTX
The Growing Popularity of AngularJS
PDF
AngularJS Workshop
PPT
Getting started with angular js
PPTX
Angular js workshop
PDF
Fundamentals and Implementations of Angular JS with renowned Technology Platf...
PPTX
AngularJS Introduction (Talk given on Aug 5 2013)
PDF
Introduction to AngularJS
PDF
5 benefits of angular js
PPTX
Anjular js
PDF
Quick start with AngularJS
PPTX
Learning AngularJS - Complete coverage of AngularJS features and concepts
PDF
AngularJS for Web and Mobile
PPTX
AngularJS training - Day 1 - Basics: Why, What and basic features of AngularJS
PPTX
Practical AngularJS
AngularJS Anatomy & Directives
AngularJS in Production (CTO Forum)
[Ebooks PDF] download AngularJS 1st Edition Brad Green full chapters
A white paper on Fundamentals and Implementations of Angular JS
What are the reasons behind growing popularity of AngularJS.pdf
The Growing Popularity of AngularJS
AngularJS Workshop
Getting started with angular js
Angular js workshop
Fundamentals and Implementations of Angular JS with renowned Technology Platf...
AngularJS Introduction (Talk given on Aug 5 2013)
Introduction to AngularJS
5 benefits of angular js
Anjular js
Quick start with AngularJS
Learning AngularJS - Complete coverage of AngularJS features and concepts
AngularJS for Web and Mobile
AngularJS training - Day 1 - Basics: Why, What and basic features of AngularJS
Practical AngularJS

Recently uploaded (20)

PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
Big Data Technologies - Introduction.pptx
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Empathic Computing: Creating Shared Understanding
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Modernizing your data center with Dell and AMD
PDF
NewMind AI Monthly Chronicles - July 2025
PPTX
A Presentation on Artificial Intelligence
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Approach and Philosophy of On baking technology
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Machine learning based COVID-19 study performance prediction
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Big Data Technologies - Introduction.pptx
Advanced methodologies resolving dimensionality complications for autism neur...
Chapter 3 Spatial Domain Image Processing.pdf
Empathic Computing: Creating Shared Understanding
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Modernizing your data center with Dell and AMD
NewMind AI Monthly Chronicles - July 2025
A Presentation on Artificial Intelligence
Review of recent advances in non-invasive hemoglobin estimation
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Approach and Philosophy of On baking technology
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Per capita expenditure prediction using model stacking based on satellite ima...
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Machine learning based COVID-19 study performance prediction
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf

Angular js gtg-27feb2013

  • 1. AngularJS – An Introduction Nitya Narasimhan @nitya NYC GTUG Meetup February 27, 2013
  • 2. About Me ¤  15+ years R&D, past 10 years in industry ¤  Survivable Distributed Java Systems (PhD) ¤  Early Stage Technology Development (Motorola) ¤  Education Technology, Learning Analytics (Independent) ¤  Interests: mobile computing, social software, interactive television, sentient computing, adaptive learning ¤  Relative novice to front-end web development
  • 3. Web App Design Challenge One app per MY UI platform (local optimization) MY DB NETWORK LATENCY MY SERVER MY UI Round-trip per page load THIRD PARTY DEVICE DIVERSITY BROWSER DIVERSITY SERVICES Responsive Design Cross-platform testing
  • 4. What I was looking for … ¤  Enable Responsive Design (across device form factors) ¤  Single Page App Support (deep linking, dynamic views) ¤  Long term relevance (active community, adoption) ¤  Ease of development (bootstrapping, docs, examples) ¤  Ease of testing (built-in test harness, testing tools) ¤  Flexibility in usage (extensible, embeddable)
  • 5. AngularJS looked promising .. V1.1.1 V1.0.3 V1.0.0 http://trends.builtwith.com/javascript/Angular-JS http://builtwithangularjs.org
  • 6. What is AngularJS? ¤  “HTML enhanced for web apps” ¤  Open-sourced by Google (2009) ¤  MVC JavaScript framework ¤  Programming philosophy: ¤  View = Declarative ¤  Controller = Imperative ¤  Clean separation, reduced complexity (no ugly DOM wrangling)
  • 7. Hello World! (angularjs.org) Directives are totally cool!! •  Maintains familiar HTML syntax •  Masks DOM manipulation from UI developer
  • 8. Under the (browser) hood.. •  Angular enhances HTML vocabulary (directives) •  Browser loads static HTML, parses DOM •  Angular identifies app boundary (ng-app), locates related module •  Angular module, compiles directive (injects dependency, adds $scope context) •  Browser renders HTML (view) Developer Guide >> Conceptual Overview
  • 9. Critical Concept = $scope •  Object representing application model •  “Root” scope, hierarchy of “child” scopes (DOM-like) •  Detect changes to model, Creates execution context for expressions •  Can watch expressions, propagate changes to views •  Decouples view & controller Developer Guide >> Conceptual Overview
  • 10. Key Concepts ¤  Model = plain JavaScript object (no inheritance) ¤  View = declarative (in HTML), based on DOM objects ¤  Controller = imperative (logic), constructs “Model”, connects it to “View” via the $scope intermediary. ¤  Services = “common” tasks, data-sharing for controllers ¤  Filters = data transformation, can be chained together ¤  Directive = transform DOM, ‘declare’ new behaviors ¤  Module = declarative configuration (for app startup)
  • 11. M-V-C in action (angularjs.org) View = HTML Directives (augment DOM) Controller = JS Expressions (filter chains) Model = Scope
  • 12. Key Features ¤  Custom directives (enhance HTML your way) ¤  2-way data binding (effortless sync of modelóview) ¤  Deep linking (single-page, normal navigation) ¤  Form validation (at client, with declarative rules) ¤  Dependency injection (with declarative wiring) ¤  Born testable, very embeddable (plays nice w/ others)
  • 13. Quick Start (Yeoman workflow) Test Harness
  • 14. Resources ¤  AngularJS Developer Guide ¤  PhoneCat Tutorial (example) ¤  Egghead.io (28 videos) ¤  AngularJS Starter (66 pages, code) ¤  AngularJS Generator (http://yeoman.io) ¤  BuiltWithAngularJS.org (Examples)
  • 15. Interest in Deep Dives?? ¤  Directives, Expressions, Filters ¤  Scope API ($watch, $apply) ¤  Deep Linking (Routing & Navigation) ¤  Modules, Services & Controllers ¤  Dependency Injection ¤  Workflow Automation & E2E Testing