Duration
5 days
Overview
The Economist says there will be 20 billion mobile devices by 2020. Roughly 2 million apps are now in iTune and Google Play. Mobile apps generate additional revenues to every company by encouraging repeat orders from customers on the go. Comparing to the traditional method of marketing mobile apps lowers the marketing cost. This market needs has driven the software industry to focus on mobile apps development. A diverse skill-set is necessary to develop apps for multiple platforms such as Android / iOS.
Angular 5 allows developing awesome web applications powered by TypeScript / JavaScript. Now Ionic framework build on top of Angular, requires HTML, JS and CSS knowledge to build hybrid mobile applications. Hybrid solution enables single code base across multiple platform. Since Ionic allows the developer to release mobile applications without having to learn thousands of different languages, it is extremely popular and in high demand.
This course takes participants from zero to published app, taking a very practice-orientated route. Participants will be building apps throughout the course, learning about the basics of Ionic 3 and its rich component library, how to fetch and handle user input, how to store data and access native device features and much more! Each app will be a real world example that focuses on different topics like Components, Navigation, Tabs, Side menus, User Input, Native Device Features, Storage, Http, and Authentication. Upon completing the app participants will also learn how to run the apps either in browser or on an emulator or on own device.
Objective
- A detail training on JavaScript, TypeScript
- Develop a web application using Angular 5
- How to set up Ionic projects
- Basics about Ionic Navigation, project structure and its rich component library
- Use the beautiful components ships with Ionic
- "Back"-Button-Navigation, Tabs and Side menus
- Show Modals, Alerts, Toasts and many more useful UI components
- Test the app in the browser, on emulators and real devices
- Fetch and handle user input through Text fields, Dropdowns, Dialogs and Sliders
- Authenticate users and access web servers
- Access the local device Storage
- Adding third-party packages for styling and theming the app
- Learn how to configure app and publish it to App Store or Google Play Store
Target Participants
The primary target audience for this course is software developers / programmers. This program is for anybody who has programming background and interested in diving into the development of mobile apps for iOS and Android.
Program Prerequisites
An basic understanding of JavaScript with little bit of programming experience would be beneficial. The first day of the program will recap the JavaScript Language.
Mode of Delivery
Every participant will be provided with course notes and are required to bring in their own laptops for hands-on exercise and practice sessions.
Day 1
- Introduction to "Modern (ES5)" JavaScript
- JavaScript Refresher
- Basic language features
- Creating variables, Functions and functional programming
- Nesting functions
- Creating Objects with JavaScript literal syntax and constructor functions
- Indexed property access
- Typeof and objects
- Special comparisons for objects
- Scope and Context
- JavaScript visibility rules
- Global variables
- Object functions and execution
- The this keyword in JavaScript
- JavaScript types: Number, String, Boolean, Date
- JavaScript == and false conditions and Triple Equals ===
- Primitives and wrapper objects in JavaScript
- Arrays – Ordered sequence of items
- Key JavaScript built-in objects
- Introduction to TYPESCRIPT
- Understanding the case for TypeScript
- Types in TypeScript
- Functions, lambdas, and execution flow
- Classes, interfaces, and class inheritance
- Decorators in TypeScript
- Organizing our applications with modules
- Lab: Develop a simple web page using TypeScript
Day 2
- Introduction to Angular
- What is Angular 4?
- Central Features of the Angular Framework
- Scope and Goal of Angular
- Angular 4 vs. AngularJS
- Installing and Using Angular 4
- Adding Angular 4 and Dependencies to Your App
- Building Blocks of and Angular 4 Application
- A Basic Angular 4 Application
- What is new in Angular 4
- Summary
- Building with Components
- Introducing the component tree
- Explaining Dependency Injection
- Component Starter
- Developing a Simple Feedback Component
- Feedback Component: Add HTML
- The HTML Component Template
- The templateUrl property
- Feedback Component: Add CSS Styling
- Feedback Component: Hook Up Input Fields and Button
- Feedback Component: Fields & Button in the Component Class
- Component Decorator Properties
- Component Lifecycle Hooks
- Using a Lifecycle Hook: OnInit
- Summary
- 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
- Summary
- Attribute Directive and Property Binding
- 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
- 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
- Template Driven Forms
- Note on Deprecated Forms APIs
- 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
Day 3
- Services and Dependency Injection
- What is a Service?
- Creating a Basic Service
- What is Dependency Injection?
- What Dependency Injection Looks Like
- Injecting Services
- Using a Service in a Component: Dedicated Instance
- Using a Service in a Component: Dedicated Instance - Example Code
- Using onInit to Initialize Component Data
- Using a Shared Service Instance
- Dependency Injection and @Host
- Dependency Injection and @Optional
- Summary
- HTTP Client
- The Angular HTTP Client
- Using The HTTP Client - Overview
- Setting up HTTP_PROVIDERS in the Root Component
- 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
- Pipes and Data Formatting
- What are Pipes?
- More on Pipes
- Using a Built-in Pipe
- Built-In Pipes
- Using Pipes in HTML
- Chaining Pipes
- Using Pipes in JavaScript
- Some Pipe Examples
- Decimal Pipe
- Currency Pipe
- Custom Pipes
- Using Custom Pipes
- A Filter Pipe
- A Sort Pipe
- Pipe Category: Pure and Impure
- Pure Pipe Example
- Impure Pipe Example
- Summary
- Introduction to Single Page Applications
- What is a Single Page Application (SPA)
- SPA Workflow
- Traditional Web Application Capabilities
- Single Page Application Advantages
- SPA and Traditional Web Sites
- SPA Challenges
- Implementing SPA's Using Angular 4
- Simple SPA Using Visibility Control
- SPA Using Angular Components
- SPA with Angular Components - Switching
- SPA with Angular Components - The Displayed Component
- Implement SPA Using an Angular Component Router
- Summary
- 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
- Routes
- The app.routes.ts File
- Bootstrapping Routing in Main.ts
- A Basic App With Routing
- App Routes
- App Component
- 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 and Asynchronously
- Query Parameters
- Query Parameters - queryParams
- Query Parameters - Navigation
- Retrieving Query Parameters Asynchronously
- Problems with Manual URL entry and Bookmarking
- Fixing Manual URL entry and Bookmarking
- Summary
- Build and Dependency Management
Introduction
- Bower Package Manager
- Managing Packages Using Bower
- Using Bower Packages
- Grunt Build Manager
- Installing Grunt Components
- Writing a Grunt Build Script
- Running Grunt
- Running JSHint Task
- Compiling Less Files
- Compressing CSS Files
- Gulp Build Manager
- Gulp vs. Grunt
- Installing Gulp Components
- Writing a Build Script
- Running Gulp
- Compiling Less Files
- Summary
Day 4
- Ionic – Getting Started
- Installing the tools
- Installing required npm packages
- Understanding the Ionic CLI
- Platform and SDK – Android / iOS
- Starting a fresh project
- Project Structure
- Running the project
- Viewing App with Browser
- Viewing on Android Emulator
- Viewing using IONIC View
- Lists and other Components
- Headers and Footers
- Lists
- Slides
- Cards
- Icons
- Grids
- Navigation
- Basic Navigation
- Navigating from Root Component / Overlay Component
- Tabs
- Menus
- Side Menus
- Scroll
- Transitions
- History
- Dynamic Components
- Loading
- Spinner
- Popovers
- Models
- Popup
- Utility
- Alerts
- Toasts
Day 5
- Input
- Checkboxes
- Radio Buttons
- Gestures and Events
- Swipe to Refresh
- Range & Select
- Storage
- Ionic Storage
- Ionic SQLite Storage
- Ionic Native
- Device Information
- Camera
- Http
- In App Browser
- Android Permissions
- FlashLight
- Ionic CLI
- Install
- Start
- Development & Testing
- Run and Emulate
- Icon & Splash Screen
- Uploading and Viewing
- SASS
- Gathering Environment Info
- Debugging and Testing Ionic Applications
- General Overview of Debugging
- Working With Emulators - IOS
- Working With Emulators - Android
- Testing On Device - Android
- Testing On Device - IOS
- Using Ionic View
- Proper Testing
- Finishing Up Our Ionic Application
- Generating App Icons And Splash Screens
- Preparing For Submission
- Code Signing For IOS
- Code Signing For Android
- Additional Resources
- The Road Ahead
- Conclusion
Programme scope, delivery arrangements and suitability are confirmed during enquiry.