One framework
Mobile and desktop.
Cross Platform
Speed & Performance
Tooling
Deliver app-like experiences
High performance, offline and zero-step installation
Ionic Framework
NativeScript
React Native
Converts templates into code
You can server the first view of the app in just HTML and CSS
Near instant rendering
Simple and powerful template syntax
Add components and test
Intelligent code completion
TypeScript is a typed superset of JavaScript that compiles to plain JavaScript
Any browser. Any host. Any OS. Open Source
Use existing JavaScript code
Incorporate popular JavaScript libraries
Call TypeScript code from JavaScript
TypeScript compiles to clean, simple JavaScript code
Use highly-productive development tools
Leverage static checking and code refactoring
Types are optional
Type inference allows static verification of code
Supports the latest JavaScript features
Current: ECMAScript 2015
Future: async functions and decorators
Are compiled into simple JavaScript that targets ECMAScript 3 environments
// install
npm install -g typescript
// compile
tsc helloworld.ts
npm install -g typescript
function greeter(person) {
return "Hello, " + person;
}
var user = "Jane User";
document.body.innerHTML = greeter(user);
<!DOCTYPE html>
<html>
<head><title>TypeScript Greeter</title></head>
<body>
<script src="greeter.js"></script>
</body>
</html>
tsc greeter.ts
function greeter(person: string) {
return "Hello, " + person;
}
var user = "Jane User";
document.body.innerHTML = greeter(user);
Compiles cleanly and lets the IDE suggest completions
function greeter(person: string) {
return "Hello, " + person;
}
var user = [0, 1, 2];
document.body.innerHTML = greeter(user);
Compiler will show an error
greeter.ts(7,26): Supplied parameters do not match any signature of call target
class Student {
fullName: string;
constructor(public firstName, public middleInitial, public lastName) {
this.fullName = firstName + " " + middleInitial + " " + lastName;
}
}
interface Person {
firstName: string;
lastName: string;
}
function greeter(person : Person) {
return "Hello, " + person.firstName + " " + person.lastName;
}
var user = new Student("Jane", "M.", "User");
document.body.innerHTML = greeter(user);
Angular Component Router enables navigation from one view to the next
Can interpret a browser URL as an instruction to navigate to a given view
Can pass parameters to help decide what specific content to present
Can bind to links on the page and it will navigate to the appropriate view when they are clicked
Components are the main way to build and specify elements and logic on the page
Combines directives, controllers and scope from Angular 1
import { Component } from '@angular/core';
@Component({
selector: 'my-component',
template: 'I am {{name}}. '
})
export class MyComponent {
constructor() {
this.name = 'Miguel'
}
logName() {
console.log('Regards ', this.name)
}
}
A Google Chrome Dev Tools extension for debugging Angular 2 applications
Material Design components for Angular 2 apps
Comprehensive, modern UI components that work across web, mobile and desktop
Fast and consistent. Tested on IE11, Chrome, Edge, Firefox and Safari
Themable, accessible and internationalized
Integrates seamlessly with Angular 2
A Progressive Web App uses modern web capabilities to deliver an app-like user experience
Build cross platform desktop apps
with JavaScript, HTML, and CSS
Uses Chromium and Node.js
Automatic updates
Native menus & notifications
Windows installers
Atom
Slack
Visual Studio Code
Atom
Open source mobile SDK for developing native and progressive web apps
Virtual DOM rendering
Hardware accelerated transitions
Touch optimized gestures
Builds on top of Angular
Runs inside Cordova or Phonegap
Deploys natively or as a Progressive Web App
Miguel Cobá