OBJECTIVES

In this Responsive Web/ Angular/ Bootstrap training course, attendees will learn how to:

  • Create single page web applications using Angular
  • Understand the programming model provided by the Angular framework
  • Define Angular controllers and services
  • Control Angular data bindings
  • Learn responsive web development techniques using CSS3
  • Implement Responsive Web Applications using Bootstrap

PREREQUISITES

Attendees should have some prior understanding of web development, HTML, AJAX, and JavaScript.

DURATION

4 days

Outline for Introduction to Responsive Web Development with Angular and Bootstrap Training

CHAPTER 1. INTRODUCING ANGULAR

  • What is Angular?
  • Central Features of the Angular Framework
  • Why Angular?
  • Scope and Goal of Angular
  • Angular vs. AngularJS
  • But Isn't It "Angular 2"?and Using Angular
  • Adding Angular and Dependencies to Your App
  • Building Blocks of an Angular Application
  • A Basic Angular Application
  • Basic App - index.html
  • Basic-App: Application Module File
  • Basic-App: Main Bootstrap File
  • Basic-App: The Component File
  • Summary

CHAPTER 2. DEVELOPMENT SETUP OF ANGULAR

  • Angular is Modular
  • Managing Angular Files and Dependencies
  • What is Node.js?
  • Application of Node.js
  • Installing Node.js and NPM
  • "Hello World!" Node app
  • Node Libraries
  • Node Package Manager (NPM)
  • Package.json
  • Semantic Version Numbering
  • Package Version Numbering Syntax
  • Updating Packages
  • Uninstalling Packages
  • Installing Angular Packages
  • Angular CLI
  • Angular Development Overview
  • Angular
  • Development
  • Dependencies
  • TypeScript Definitions
  • Testing Tools
  • Development Servers
  • Angular
  • Application
  • Dependencies
  • Module Loaders
  • SystemJS Module Loader
  • WebPack Module Bundler
  • Additional Application Dependencies
  • Summary

CHAPTER 3. INTRODUCTION TO TYPESCRIPT AND ES6

  • Programming Languages for Use with Angular
  • TypeScript Syntax
  • Programming Editors
  • The Type System – Defining Variables
  • The Type System – Defining Arrays
  • The Type System – Classes & Objects
  • Class Constructors
  • Class Constructors – Alternate Form
  • Interfaces
  • Parameter and Return Value Types
  • Working with Modules
  • TypeScript Transpilation
  • let and const
  • Arrow Functions
  • Template Strings
  • Template Strings – Variables and Expressions
  • Template Strings – Multiline
  • Generics - Class
  • Generics - Methods
  • Generics - Restricting Types
  • Generics - Restricting Types: Example
  • Summary

CHAPTER 4. COMPONENTS IN ANGULAR

  • What is a Component?
  • An Example Component
  • Component Starter
  • Developing a Simple Login Component
  • Login Component: Add HTML
  • The HTML Component Template
  • The templateUrl property
  • Login Component: Add CSS Styling
  • Login Component: Hook Up Input Fields and Button
  • Login Component: Fields & Button in the Component Class
  • Component Decorator Properties
  • Component Lifecycle Hooks
  • Using a Lifecycle Hook:
  • OnInit
  • Summary

CHAPTER 5. DATA AND EVENT BINDING

  • Binding Syntax
  • One-Way Output Binding
  • Binding Displayed Output Values
  • Two-Way Binding of Input Fields
  • Input Binding Examples
  • Binding Events
  • Binding Events Examples
  • Setting Element Properties
  • Setting Properties: Examples
  • Passing Data into Components using @Input()
  • Passing Data from Child to Parent using @Output()
  • @Output() Example - Child Component
  • @Output() Example - Parent Component
  • Summary

CHAPTER 6. ATTRIBUTE DIRECTIVES AND PROPERTY BINDINGS

  • What are Directives
  • Directive Types
  • Apply Styles by Changing Classes
  • Changing Classes – Example
  • Applying Styles Directly
  • Applying Styles Directly - Example
  • Obsolete Directives and Property Binding
  • Controlling Element Visibility
  • Setting Image Source Dynamically
  • Setting Hyperlink Source Dynamically
  • Summary

CHAPTER 7. STRUCTURAL DIRECTIVES

  • Structural Directives
  • Adding and Removing Elements Dynamically
  • Looping Using ngFor
  • ngFor - Basic Syntax
  • ngFor - Full Template Syntax
  • Creating Tables with ngFor
  • ngFor Local Variables
  • ngFor Changes in the backing data source
  • Swapping Elements with ngSwitch
  • ngSwitch - Basic Syntax
  • ngSwitch - Full Template Syntax
  • Summary

CHAPTER 8. TEMPLATE DRIVEN FORMS

  • Template Driven Forms
  • Importing Forms Module
  • A Basic Angular Form
  • Binding Input Fields
  • Accessing the Form Object
  • Binding the Form Submit Event
  • The Submit Function
  • Basic HTML5 Validation - "required" Attribute
  • HTML5 vs. Angular Validation
  • Angular Validators
  • Angular Validation State
  • Displaying
  • Form
  • Validation State
  • Displaying
  • Field
  • Validation State
  • Displaying Validation State Using Classes
  • Disabling Submit when Form is Invalid
  • Submitting the Form
  • Binding to Object Variables
  • Additional Input Types
  • Checkboxes
  • Select (Drop Down) Fields
  • Rendering Options for Select (Drop Down)
  • Date fields
  • Radio Buttons
  • Summary

CHAPTER 9. ANGULAR MODULES

  • Why Angular Modules?
  • Angular Built-in Modules
  • The Root Module
  • How to Create a Module
  • Feature Modules
  • @NgModule Properties
  • Using One Module From Another
  • Importing BrowserModule or CommonModule
  • Lazy-Loaded Modules
  • How to Organize Modules?
  • Component moduleID Property
  • Summary

CHAPTER 10. SERVICES AND DEPENDENCY INJECTION

  • What is a Service?
  • Creating a Basic Service
  • What is Dependency Injection?
  • What Dependency Injection Looks Like
  • Injecting Services
  • Dependency Injection Hierarchy Diagram
  • Using a Service in a Component: Dedicated Instance
  • Injection Hierarchy - Dedicated Instance
  • Using a Service in a Component: Dedicated Instance - Example Code
  • Using
  • onInit
  • to Initialize Component Data
  • Using a Shared Service Instance
  • Injection Hierarchy - Shared Instance
  • Dependency Injection and @Host
  • Dependency Injection and @Optional
  • Summary

CHAPTER 11. HTTP CLIENT

  • The Angular HTTP Client
  • Using The HTTP Client - Overview
  • Importing HttpModule
  • Importing Individual Providers into Services
  • Service Using Http Client
  • Service Imports
  • The Observable object type
  • What does an Observable Object do?
  • Making a Basic HTTP GET Call
  • Using the Service in a Component
  • The PeopleService Client Component
  • Client Component Code Review
  • Importing Observable Methods
  • Enhancing the Service with .map() and .catch()
  • Using .map()
  • Using .catch()
  • Using toPromise()
  • GET Request
  • GET Request with Options
  • POST Request
  • POST Request Example
  • Reading HTTP Response Headers
  • Summary

CHAPTER 12 THE ANGULAR COMPONENT ROUTER

  • Routing and Navigation
  • The Component Router
  • Traditional Browser Navigation
  • Component Router Terminology
  • Setting up the Component Router
  • Local URL Links
  • Browser pushState and <base href>
  • Routes
  • The app.routes.ts File
  • The app.routes.ts File - Example
  • Importing Routing in app.module.ts
  • A Basic App With Routing
  • App Routes
  • AppComponent - Code
  • AppComponent - Router Related Features
  • AppComponent - <router-outlet>
  • AppComponent - routerLinks
  • Programmatic Navigation
  • Basic Navigation
  • Passing Data During Navigation
  • Creating Routes with Route Parameters
  • Navigating with Route Parameters
  • Using Route Parameter Values
  • Retrieving the Route Parameter Synchronously
  • Retrieving a Route Parameter Asynchronously
  • Query Parameters
  • Query Parameters - Example Component
  • Query Parameters - queryParams
  • Query Parameters - Navigation
  • Retrieving Query Parameters Asynchronously
  • Problems with Manual URL entry and Bookmarking
  • Fixing Manual URL entry and Bookmarking
  • Summary

CHAPTER 13. INTRODUCTION TO CSS3

  • What is a Style?
  • What are Cascading Style Sheets?
  • CSS and the Evolution of Web Development
  • The CSS Standardization Process
  • CSS and HTML
  • CSS Compatibility
  • CSS Rules
  • New in CSS3
  • Summary

CHAPTER 14. APPLYING CSS STYLES

  • Inline Styles
  • Embedded Styles
  • External Styles
  • Selectors
  • Combinator Selectors
  • Universal Selector
  • Style Classes
  • Pseudo-Classes
  • Inheriting From a Parent
  • Declaring !important Styles
  • CSS Cascade Order
  • Summary

CHAPTER 15. BOX MODEL AND EFFECTS

  • Element Box Model
  • Parts of the Box Model
  • Setting Width and Height
  • IE Box Size Bug
  • Controlling Flow in Position
  • Hiding Content
  • Overflowing Content
  • Floating Elements
  • Using Float for Multiple Columns
  • Margins
  • Padding
  • Border
  • Outline
  • CSS 3 - Rounding Border Corners
  • CSS 3 - Using a Border Image
  • Border Image Example
  • Summary

CHAPTER 16. INTRODUCTION TO RESPONSIVE WEB DESIGN

  • What is Responsive Web Design?
  • Mobile Browsers Quirks
  • Other Mobile Web Considerations
  • Primary Responsive Design Techniques
  • Elements of Responsive Design
  • Example of Responsive Design
  • Responsive Page Design Schematic
  • Alternatives to Responsive Design
  • Summary

CHAPTER 17. CSS 3 AND RESPONSIVE WEB DESIGN

  • Progressive Enhancement
  • Implementing Progressive Enhancement
  • Media Types
  • CSS Style "Reset"
  • Conditional Styles for Internet Explorer
  • What is the Viewport?
  • Adapting the Viewport
  • Specifying the Viewport
  • Media Queries
  • Media Features Used in Media Queries
  • Combining Responsive Design Techniques
  • Testing Responsive Design
  • Summary

CHAPTER 18. RESPONSIVE WEB PAGE LAYOUT

  • The Main Layout Types
  • Responsive Layouts
  • Popular Layout Patterns
  • The 'Mostly Fluid' Layout Pattern
  • The 'Column Drop' Layout Pattern
  • The 'Layout Shifter' Pattern
  • Other Layout Techniques
  • Getting Content Fillers
  • The Float CSS Property
  • Combining CSS Styles
  • The Simple Fluid Layout Example
  • The Simple Fluid Layout Technique
  • The Results
  • Font Size Units
  • Pixel-Sized vs Em-Sized
  • Font Size Unit Relationships
  • Pixels to Em Conversion Formula
  • Other Considerations
  • Looking into the Future
  • Summary

CHAPTER 19. RESPONSIVE IMAGES

  • Responsive Images
  • Performance Considerations
  • Shrinking Images
  • Traditional Image Handling Techniques
  • Media Queries Don't Always Help With Performance
  • A "Fluid" Pixel
  • The Device Viewports
  • CSS Pixels
  • The Power of Simplicity
  • Sencha.io Src Images Cloud Service
  • Sencha.io Src Diagram
  • How it Works
  • Sencha.io Src API
  • Sencha.io Src API Details
  • Sencha.io Src API Details Cont'd
  • Examples of Sencha.io Src API
  • Rolling Out Your Own Cloud Image Manipulation Service
  • The Picture Element
  • The srcset Attribute
  • More on the srcset Attribute
  • Examples of the srcset Attribute
  • What is Picturefill?
  • Using Picturefill
  • Summary

CHAPTER 20. BOOTSTRAP OVERVIEW

  • What is Bootstrap
  • Keywords from bower.js
  • Bootstrap History
  • Responsive Web Development
  • Responsive Grid Layout
  • Reusable GUI Components
  • JavaScript
  • The Mobile First Philosophy
  • Why RWD Matters
  • Responsive Page Views
  • Less
  • Getting Bootstrap
  • Bootstrap Content Delivery Network
  • Other Setup Options
  • The Bootstrap Core Files
  • To Min or Not to Min
  • Summary

CHAPTER 21. GETTING STARTED WITH BOOTSTRAP

  • Bootstrap Basic Page Template
  • The Viewport Meta Tag
  • The user-scalable Property
  • Including Bootstrap JavaScript Files
  • Plugin Dependencies
  • Checking the Needed Version of jQuery
  • Resetting Styles
  • Customizing the CSS Global Settings
  • A Fragment of the scaffolding.less File
  • Bootstrap Components
  • Containers
  • Using Containers
  • Device Sizes
  • The Grid System
  • The Column Arithmetic
  • A Grid Example
  • CSS Media Queries (1 / 2)
  • CSS Media Queries (2 / 2)
  • Customizing Breakpoints
  • Responsive Grid Layout
  • Combining Column Styles
  • Other Column Operations
  • Navigation
  • Navigation (Desktop)
  • Navigation (Mobile)
  • Navigation Source
  • Navigation Explained
  • Navigation Elements and Styles
  • Glyphicons
  • Using
  • Glyphicons
  • Responsive Images
  • Styles for Image Shapes
  • Summary

 

LAB EXERCISES

Lab 1. Introduction to Angular

Lab 2. Introduction to TypeScript

Lab 3. Introduction to Components

Lab 4. Create the Subscription Form Component

Lab 5. Understanding Data Binding

Lab 6. One Way Data Binding in a Custom Component

Lab 7. Using Basic Angular Directives

Lab 8. Using Structural Directives

Lab 9. Template Driven Form

Lab 10. Validation of a Template Driven Form

Lab 11. Service and Dependency Injection

Lab 12. HTTP Client Development

Lab 13. Basic Single Page Application Using Router

Lab 14. Intro to CSS

Lab 15. Applying Basic Styles

Lab 16. Control Element Spacing with Box Properties

Lab 17. Media Queries and Responsive Design

Lab 18. Understanding Bootstrap's Grid System

Lab 19. Understanding Bootstrap's Navbar Component