SlideShare a Scribd company logo
Your Cloud. 
Your Business. 
Let’s Build an AngularJS App! 
Jeremy Likness 
Principal Architect 
@JeremyLikness
Thanks to our Sponsors
www.ivision.com 
• Business Process 
Management/ALM 
• Custom Application 
Development 
• Collaboration 
• Business Intelligence
TODAY’S AGENDA 
1. What and Why? What is Angular? Why use it? 
2. How? How do you build an AngularJS app? 
3. Q&A Guaranteed answers.  
Source Code: https://github.com/JeremyLikness/AngularHealthApp/ 
Specifications: http://jeremylikness.github.io/AngularHealthApp/test.html 
Running App: http://jeremylikness.github.io/AngularHealthApp/
WHAT AND WHY?
WHAT AND WHY? 
I’m biased because … 
25 
developers 
80,000+ 
L.O.Ts.C 
200+ 
components 
3 
years 
4x 
Improvement 
Global 
Parallel Team
WHY? 
4x 
Improvement 
• Began effort (6 mos.) with JavaScript and KnockoutJS 
• Changed to use AngularJS and TypeScript 
• 4x faster development, attributed in a large part to Angular
WHAT? 
Angular is … 
Expressions 
Angular 
Glue 
Templates Container 
Tools 
Testable
DEMO: How
Step 1 
git checkout 17e9892 
SHELL
Step 2 
git checkout b8864f4 
MODULE
Step 3 
git checkout f5af48e 
SPECIFICATION
Step 4 
git checkout 33d9473 
DEFINITION
Step 5 
git checkout e9db905 
IMPLEMENTATION
Step 6 
git checkout c71895b 
OBJECTS
Step 7 
git checkout 40c946e 
PROPERTIES
Step 8 
git checkout 602ae23 
GREEN
Step 9 
git checkout 4636a91 
DEPENDENCIES
Step 10 
git checkout 72429dd 
FACTORIES
Step 11 
git checkout c065ad3 
CONTROLLERS
Step 12 
git checkout 6a801b2 
FILTERS
Step 13 
git checkout 11e13f7 
PATTERNS
Step 14 
git checkout cc6d716 
DIRECTIVES
Step 15 
git checkout 061ba51 
RANGES
Step 16 
git checkout 55e2c30 
SLIDER
Step 17 
git checkout dec799e 
RESPONSIVE
Step 18 
git checkout e466dc6 
VALIDATIONS
Step 19 
git checkout 8dbba93 
FORMS
Step 20 
git checkout bc4b736 
PROFILE
Step 21 
git checkout 6da74a4 
TILE
Step 22 
git checkout 1ae397c 
CLASS
Step 23 
git checkout master 
SHIP IT!
Questions? 
Source Code: https://github.com/JeremyLikness/AngularHealthApp/ 
Specifications: http://jeremylikness.github.io/AngularHealthApp/test.html 
Running App: http://jeremylikness.github.io/AngularHealthApp/ 
This Deck: http://www.slideshare.net/jeremylikness 
Jeremy Likness, Principal Architect @JeremyLikness

More Related Content

What's hot

What's hot (20)

Titanium Alloy Tutorial
Titanium Alloy TutorialTitanium Alloy Tutorial
Titanium Alloy Tutorial
 
Angular 2 vs React
Angular 2 vs ReactAngular 2 vs React
Angular 2 vs React
 
React vs angular
React vs angularReact vs angular
React vs angular
 
Angle Forward with TypeScript
Angle Forward with TypeScriptAngle Forward with TypeScript
Angle Forward with TypeScript
 
Angular js - 10 reasons to choose angularjs
Angular js - 10 reasons to choose angularjs Angular js - 10 reasons to choose angularjs
Angular js - 10 reasons to choose angularjs
 
Unit testing
Unit testingUnit testing
Unit testing
 
Isolated React Js components
Isolated React Js componentsIsolated React Js components
Isolated React Js components
 
Angular2 Upgrade
Angular2 UpgradeAngular2 Upgrade
Angular2 Upgrade
 
ReactJS or Angular
ReactJS or AngularReactJS or Angular
ReactJS or Angular
 
Angular 2 vs React. What to chose in 2017?
Angular 2 vs React. What to chose in 2017?Angular 2 vs React. What to chose in 2017?
Angular 2 vs React. What to chose in 2017?
 
Digital Success Stack for DCBKK 2018
Digital Success Stack for DCBKK 2018Digital Success Stack for DCBKK 2018
Digital Success Stack for DCBKK 2018
 
Let's Jira do the work
Let's Jira do the workLet's Jira do the work
Let's Jira do the work
 
Introduction to Angular 2
Introduction to Angular 2Introduction to Angular 2
Introduction to Angular 2
 
Micro frontend
Micro frontendMicro frontend
Micro frontend
 
Intro to react native
Intro to react nativeIntro to react native
Intro to react native
 
Lets cook cucumber !!
Lets cook cucumber !!Lets cook cucumber !!
Lets cook cucumber !!
 
The Ultimate Getting Started with Angular Workshop - Devoxx France 2017
The Ultimate Getting Started with Angular Workshop - Devoxx France 2017The Ultimate Getting Started with Angular Workshop - Devoxx France 2017
The Ultimate Getting Started with Angular Workshop - Devoxx France 2017
 
Run Fast, Try Not to Break S**t
Run Fast, Try Not to Break S**tRun Fast, Try Not to Break S**t
Run Fast, Try Not to Break S**t
 
Introduction of ASP.NET MVC and AngularJS
Introduction of ASP.NET MVC and AngularJSIntroduction of ASP.NET MVC and AngularJS
Introduction of ASP.NET MVC and AngularJS
 
What's This React Native Thing I Keep Hearing About?
What's This React Native Thing I Keep Hearing About?What's This React Native Thing I Keep Hearing About?
What's This React Native Thing I Keep Hearing About?
 

Viewers also liked

BPF: Tracing and more
BPF: Tracing and moreBPF: Tracing and more
BPF: Tracing and more
Brendan Gregg
 

Viewers also liked (16)

Single Page Applications: Your Browser is the OS!
Single Page Applications: Your Browser is the OS!Single Page Applications: Your Browser is the OS!
Single Page Applications: Your Browser is the OS!
 
Enterprise TypeScript
Enterprise TypeScriptEnterprise TypeScript
Enterprise TypeScript
 
My XML is Alive! An Intro to XAML
My XML is Alive! An Intro to XAMLMy XML is Alive! An Intro to XAML
My XML is Alive! An Intro to XAML
 
The Windows Runtime and the Web
The Windows Runtime and the WebThe Windows Runtime and the Web
The Windows Runtime and the Web
 
Windows 8.1 Sockets
Windows 8.1 SocketsWindows 8.1 Sockets
Windows 8.1 Sockets
 
MVVM with Kendo UI
MVVM with Kendo UIMVVM with Kendo UI
MVVM with Kendo UI
 
Cross-Platform Agile DevOps with Visual Studio Team Services
Cross-Platform Agile DevOps with Visual Studio Team ServicesCross-Platform Agile DevOps with Visual Studio Team Services
Cross-Platform Agile DevOps with Visual Studio Team Services
 
Using Ansible for Deploying to Cloud Environments
Using Ansible for Deploying to Cloud EnvironmentsUsing Ansible for Deploying to Cloud Environments
Using Ansible for Deploying to Cloud Environments
 
(SDD408) Amazon Route 53 Deep Dive: Delivering Resiliency, Minimizing Latency...
(SDD408) Amazon Route 53 Deep Dive: Delivering Resiliency, Minimizing Latency...(SDD408) Amazon Route 53 Deep Dive: Delivering Resiliency, Minimizing Latency...
(SDD408) Amazon Route 53 Deep Dive: Delivering Resiliency, Minimizing Latency...
 
Performance Tuning EC2 Instances
Performance Tuning EC2 InstancesPerformance Tuning EC2 Instances
Performance Tuning EC2 Instances
 
Linux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old SecretsLinux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old Secrets
 
Linux Systems Performance 2016
Linux Systems Performance 2016Linux Systems Performance 2016
Linux Systems Performance 2016
 
Broken Linux Performance Tools 2016
Broken Linux Performance Tools 2016Broken Linux Performance Tools 2016
Broken Linux Performance Tools 2016
 
BPF: Tracing and more
BPF: Tracing and moreBPF: Tracing and more
BPF: Tracing and more
 
Velocity 2015 linux perf tools
Velocity 2015 linux perf toolsVelocity 2015 linux perf tools
Velocity 2015 linux perf tools
 
Linux Profiling at Netflix
Linux Profiling at NetflixLinux Profiling at Netflix
Linux Profiling at Netflix
 

Similar to Let's Build an Angular App!

Conversionista : Conversion manager course - Stockholm 20 march 2013
Conversionista : Conversion manager course  - Stockholm 20 march 2013Conversionista : Conversion manager course  - Stockholm 20 march 2013
Conversionista : Conversion manager course - Stockholm 20 march 2013
Craig Sullivan
 

Similar to Let's Build an Angular App! (20)

Web.dev extended : What's new in Web [GDG Taichung]
Web.dev extended : What's new in Web [GDG Taichung]Web.dev extended : What's new in Web [GDG Taichung]
Web.dev extended : What's new in Web [GDG Taichung]
 
DevOps presentation at gemeente Rotterdam
DevOps presentation at gemeente RotterdamDevOps presentation at gemeente Rotterdam
DevOps presentation at gemeente Rotterdam
 
Android instant app
Android instant appAndroid instant app
Android instant app
 
Ionic vancouver 201604
Ionic vancouver 201604Ionic vancouver 201604
Ionic vancouver 201604
 
Effective Android Development. UA Mobile 2016.
Effective Android Development. UA Mobile 2016.Effective Android Development. UA Mobile 2016.
Effective Android Development. UA Mobile 2016.
 
AngularJs advanced Topics
AngularJs advanced TopicsAngularJs advanced Topics
AngularJs advanced Topics
 
Plan.pptx
Plan.pptxPlan.pptx
Plan.pptx
 
Building Drupal Apps for Distributions
Building Drupal Apps for DistributionsBuilding Drupal Apps for Distributions
Building Drupal Apps for Distributions
 
Conversionista : Conversion manager course - Stockholm 20 march 2013
Conversionista : Conversion manager course  - Stockholm 20 march 2013Conversionista : Conversion manager course  - Stockholm 20 march 2013
Conversionista : Conversion manager course - Stockholm 20 march 2013
 
Technology-Driven Development: Using Automation and Development Techniques to...
Technology-Driven Development: Using Automation and Development Techniques to...Technology-Driven Development: Using Automation and Development Techniques to...
Technology-Driven Development: Using Automation and Development Techniques to...
 
High Performance Web Design
High Performance Web DesignHigh Performance Web Design
High Performance Web Design
 
Test-driven Development Practices in White Box Test Automation
Test-driven Development Practices in White Box Test AutomationTest-driven Development Practices in White Box Test Automation
Test-driven Development Practices in White Box Test Automation
 
GitOps: Git come unica fonte di verità per applicazioni e infrastruttura
GitOps: Git come unica fonte di verità per applicazioni e infrastrutturaGitOps: Git come unica fonte di verità per applicazioni e infrastruttura
GitOps: Git come unica fonte di verità per applicazioni e infrastruttura
 
DevOps at TestausOSY 20june2017
DevOps at TestausOSY 20june2017DevOps at TestausOSY 20june2017
DevOps at TestausOSY 20june2017
 
2022 apidays LIVE Helsinki & North_How good are your APIs? Really?
2022 apidays LIVE Helsinki & North_How good are your APIs? Really?2022 apidays LIVE Helsinki & North_How good are your APIs? Really?
2022 apidays LIVE Helsinki & North_How good are your APIs? Really?
 
John Rhodes - DevOps Automated Testing
John Rhodes - DevOps Automated TestingJohn Rhodes - DevOps Automated Testing
John Rhodes - DevOps Automated Testing
 
Migrating from AngularJS when you can't use the word "Big Bang@
Migrating from AngularJS when you can't use the word "Big Bang@Migrating from AngularJS when you can't use the word "Big Bang@
Migrating from AngularJS when you can't use the word "Big Bang@
 
How to Become DevOps
How to Become DevOpsHow to Become DevOps
How to Become DevOps
 
Technology-Driven Development: Using Automation and Development Techniques to...
Technology-Driven Development: Using Automation and Development Techniques to...Technology-Driven Development: Using Automation and Development Techniques to...
Technology-Driven Development: Using Automation and Development Techniques to...
 
Platform 4.0 Meetup Launch Event
Platform 4.0 Meetup Launch EventPlatform 4.0 Meetup Launch Event
Platform 4.0 Meetup Launch Event
 

Recently uploaded

Recently uploaded (20)

Introduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationIntroduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG Evaluation
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT Professionals
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 

Let's Build an Angular App!

  • 1. Your Cloud. Your Business. Let’s Build an AngularJS App! Jeremy Likness Principal Architect @JeremyLikness
  • 2. Thanks to our Sponsors
  • 3. www.ivision.com • Business Process Management/ALM • Custom Application Development • Collaboration • Business Intelligence
  • 4. TODAY’S AGENDA 1. What and Why? What is Angular? Why use it? 2. How? How do you build an AngularJS app? 3. Q&A Guaranteed answers.  Source Code: https://github.com/JeremyLikness/AngularHealthApp/ Specifications: http://jeremylikness.github.io/AngularHealthApp/test.html Running App: http://jeremylikness.github.io/AngularHealthApp/
  • 6. WHAT AND WHY? I’m biased because … 25 developers 80,000+ L.O.Ts.C 200+ components 3 years 4x Improvement Global Parallel Team
  • 7. WHY? 4x Improvement • Began effort (6 mos.) with JavaScript and KnockoutJS • Changed to use AngularJS and TypeScript • 4x faster development, attributed in a large part to Angular
  • 8. WHAT? Angular is … Expressions Angular Glue Templates Container Tools Testable
  • 10. Step 1 git checkout 17e9892 SHELL
  • 11. Step 2 git checkout b8864f4 MODULE
  • 12. Step 3 git checkout f5af48e SPECIFICATION
  • 13. Step 4 git checkout 33d9473 DEFINITION
  • 14. Step 5 git checkout e9db905 IMPLEMENTATION
  • 15. Step 6 git checkout c71895b OBJECTS
  • 16. Step 7 git checkout 40c946e PROPERTIES
  • 17. Step 8 git checkout 602ae23 GREEN
  • 18. Step 9 git checkout 4636a91 DEPENDENCIES
  • 19. Step 10 git checkout 72429dd FACTORIES
  • 20. Step 11 git checkout c065ad3 CONTROLLERS
  • 21. Step 12 git checkout 6a801b2 FILTERS
  • 22. Step 13 git checkout 11e13f7 PATTERNS
  • 23. Step 14 git checkout cc6d716 DIRECTIVES
  • 24. Step 15 git checkout 061ba51 RANGES
  • 25. Step 16 git checkout 55e2c30 SLIDER
  • 26. Step 17 git checkout dec799e RESPONSIVE
  • 27. Step 18 git checkout e466dc6 VALIDATIONS
  • 28. Step 19 git checkout 8dbba93 FORMS
  • 29. Step 20 git checkout bc4b736 PROFILE
  • 30. Step 21 git checkout 6da74a4 TILE
  • 31. Step 22 git checkout 1ae397c CLASS
  • 32. Step 23 git checkout master SHIP IT!
  • 33. Questions? Source Code: https://github.com/JeremyLikness/AngularHealthApp/ Specifications: http://jeremylikness.github.io/AngularHealthApp/test.html Running App: http://jeremylikness.github.io/AngularHealthApp/ This Deck: http://www.slideshare.net/jeremylikness Jeremy Likness, Principal Architect @JeremyLikness

Editor's Notes

  1. The height functionality required an additional height filter specification. The height filter is a bit different for two reasons. First, it depends on other services so it is the first example of a filter with a dependency. Second, it should not attempt to convert the input value if it is a min/max range value because this is hard-coded on the controller. Therefore, it takes a parameter to avoid the conversion step for those ranges. The controller was updated to expose the height and range values and the UI updated with a slider. Notice that you can now change the height as well as toggle the unit of measure and see it all reflected dynamically. There is no special messaging or watch because the properties depend on each other and Angular will automatically reevaluate the values when the model is mutated.
  2. A quick pass at styling makes for consistent UI elements and allows them to flow to fill the space. The app is now responsive to wide and small (mobile) configurations.
  3. Weight specifications have been added. The weight input will be free form, so additional validation must exist to ensure the user profile is never populated with an invalid weight. The specifications detail these requirements along with the necessary filter to show the proper unit of measure. These are failing because the weight functionality has not yet been implemented.
  4. The weight form and styles are added and the conversion is now testable using the input field. For weights within the range the conversion works seamlessly when the unit of measure is changed. The user profile was updated to capture the most recent unit of measure. This way when the unit of measure changes, it can convert the weight values for exposure to the UI. This should only happen at the precise moment of conversion; not before or after.
  5. The age specifications are added and age input implemented in the UI. Now the user profile is complete and we can focus on exposing the formulas.