SlideShare uma empresa Scribd logo
Angular 2, TypeScript e Além
Angular 2, TypeScript
e além
André Baltieri
• Microsoft MVP desde 2013
• Visual Studio & Dev Technologies
• Web Developer desde 2005
• http://andrebaltieri.net/
• contato@andrebaltieri.net
• ASP.NET Cast
Agenda
• Angular 2 e TypeScript
• Angular CLI
• Angular Material
• Progressive Web Apps
• Angular Mobile Toolkit
• NativeScript
Angular2 e TypeScript
• Dart, JavaScript ou TypeScript
• Ótimo suporte no VS Code
• Apoio da Microsoft
Angular2 e TypeScript
1. Criar a pasta, iniciar app e configuração
2. Criar o RootComponent
3. Apontar o RootComponent no main.ts
4. Criar o HTML e chamar os scripts
5. Rodar a aplicação
Iniciando
1. Criar a pasta, iniciar app e configuração
1. package.json
2. tsconfig.json
3. typings.json
4. systemjs.config.json
Demonstração
Inciando a aplicação e configurando
RootComponent
• AppComponent é o item principal da aplicação
• Precisamos ter pelo menos um RootComponent
• Convencionalmente chamado de AppComponent
• Componentes são a base do Angular 2
• Controlam um pedaço da tela, uma View, através de seu
template
RootComponent
• Contém um ou mais Imports
• Referenciando o necessário para o componente ser executado
• Possui um decorator @Component que define itens como
template e afins
• Controla aparência e comportamento da View
Import
• O Angular é modular
• Cada arquivo dedicado a um único propósito
• Quando precisamos de algo, importamos
Component Decorator
• Component é um decorador
• Sempre contém o prefixo @ e vem antes do nome
• Permite a associação do metadata com a classe
• Metadata diz ao Angular como criar e utilizar o componente
• É como uma ”especificação” do componente
Component Decorator
• Selector – Especifica uma tag HTML onde o componente será
renderizado
• Template – Especifica o conteúdo (HTML) do componente
Component Class
• Define o comportamento do componente como manipulação de
DOM
Demonstração
Criando o RootComponent
main.ts
• Separamos o arquivo de inicialização por motivos de
organização
• Bootstrap da aplicação é algo diferente de uma View
• Testes ficam fáceis e isolados
• Não custa nada
Bootstrap
• Específico por plataforma (Lindo)
• Neste caso, importado de @angular/platform-browser-dynamic
• Não faz parte do Core pois tem várias maneiras de aplicá-lo
• Possível carregar componentes em ambientes diferentes como
Cordova ou Native Script
• Podemos carregar a aplicação inicialmente no servidor por exemplo,
para aumentar performance e SEO
• Isto requer diferentes implementações do Bootstrap
Demonstração
Criando o main.ts
Juntando tudo...
• O Index.html é o ponto de partida da aplicação, onde temos:
• As bibliotecas JavaScript
• Configuração do SystemJs e script onde vamos importar e executar a
aplicação
• A chamada do componente no <body>, usando o seletor que definimos
Bibliotecas
• Core-js (ES2015/ES6)
• Pacotes para contextos globais e funções do ES
• Polyfills do Angular2 e Zone.js
• Metadata e afins
• SystemJs
• Modularização e carregamento
SystemJs
• Configurado através do systemjs.config.js
• Cria o map
• Registra os pacotes
• Modularização também funciona com WebPack por exemplo
Demonstração
Criando o Index.html
Angular CLI
• Cliente via comando para aplicações com Angular 2
• Ainda está em construção (Demos podem falhar)
Instalação
• npm install -g angular-cli
Uso
• ng new PROJECT_NAME
• cd PROJECT_NAME
• ng serve
• ng serve --port 4201 --live-reload-port 49153
Demonstração
Criando uma aplicação com Angular CLI
Scaffolding
• ng generate component my-new-component
• Component
• ng g component my-new-component
• Directive
• ng g directive my-new-directive
• Pipe
• ng g pipe my-new-pipe
• Service
• ng g service my-new-service
• Route
• ng generate route hero
Demonstração
Criando componentes
Build
• ng build
Demonstração
Compilando a aplicação
Ambientes
• Na hora do build, o src/client/app/environment.ts será
substituido
• config/environment.dev.ts
• config/environment.prod.ts
• ng build -prod
Testes
• ng test
• ng e2e
Demonstração
Executando testes
Deploy
• Deploy instantâneo via GH Pages
• ng github-pages:deploy
• O que acontece
• Cria um repositório no GitHub
• Compila a aplicação em modo produção no HEAD atual
• Cria uma branch local pro gh-pages
• Move a aplicação pro gh-pages e cria um commit
• Edita a tag base do index.html pra suportar github pages
• Envia a branch para o github
• Volta ao HEAD original
• Necessário um Token
• https://github.com/settings/tokens
Demonstração
Publicando a aplicação
Angular Material 2
• Modular
• Instalável através do NPM
• npm install --save @angular2-material/{core,button,card}
Registrando os Componentes
• Precisamos compilar o @angular2-material na pasta
dist/vendor.
• Esta configuração é feita no angular-cli-build.js
• Mapear no SystemJs
• Registrar todos os pacotes
Demonstração
Adicionando componentes do Material Design
Importando os componentes
• Importar utilizando import
• Adicionar a diretiva
Demonstração
Utilizando os componentes
Progressive Web Apps
• Carregamento instantâneo
• Adicionar a tela inicial
• Push Notifications
• Rápidas
• Seguras
• Responsívas
Angular Mobile Toolkit
• ng new minhaapp --mobile
• Cria uma aplicação com recursos extras para PWA
• Web Application Manifest
• Fornece informações ao Browser de como instalar sua App
• App Shell
• Processo de build para gerar o App Shell do componente principal
• Service Worker
• Cache automático da App para carregamento rápido com ou sem
internet
Demonstração
Criando um PWA com Angular CLI
Demonstração
Adicionando a HomeScreen
Links
http://lab1024.com.br/
• Angular 2
• https://angular.io/docs/ts/latest
• Angular Mobile Kit
• https://github.com/angular/mobile-toolkit
• Angular 2 Material
• https://github.com/angular/material2/
• Progressive Web Apps
• https://developers.google.com/web/progressive-web-
apps
Eventos Gratuitos
http://lab1024.com.br/
• 16/06 – Conhecendo o Angular 2
• 30/06 – Migrando para o Angular 2
• 14/07 – Diferenças entre Angular 2 e React
• 28/07 – Bem vindo ao Ionic 2
Cursos Pagos
http://lab1024.com.br/
• http://andrebaltieri.net/
• Mais de 80 cursos online
• Apenas R$ 59,90 mensais
• Cancela quando quiser
• Próximos Cursos (Junho/Julho)
• Aplicações Híbridas
• Angular 2
• Progressive Web Apps
PROMOÇÃO
http://lab1024.com.br/
• Compre 6 ganhe 8
• Compre 12 ganhe 15
http://bit.ly/abt-promo
Ajude-nos
http://lab1024.com.br/
• Curta nossa página no Facebook
• Inscreva-se em nosso canal do YouTube
• Siga-nos no Twitter
• Participe do nosso Slack
• Codifique com a gente no GitHub
• Estamos em todo lugar!
Obrigado!
E-mail: contato@lab1024.com.br
Site: http://lab1024.com.br/
Twitter: http://twitter.com/lab1024
Facebook: http://fb.com/lab-1024

Mais conteúdo relacionado

PPTX
BaaS com Firebase 3
PDF
GDG Angular 2
PPTX
Migrando para o Angular 2
PPTX
Middlewares ASP.NET
PPTX
.NET Core Internals. O que é o .NET Platform Standard?
PPTX
Escalabilidade com docker - ASP.NET Conference 2016
PPTX
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...
PDF
Angular 2
BaaS com Firebase 3
GDG Angular 2
Migrando para o Angular 2
Middlewares ASP.NET
.NET Core Internals. O que é o .NET Platform Standard?
Escalabilidade com docker - ASP.NET Conference 2016
Implementando APIs multiplataforma com ASP.NET Core 2.0 - Nerdzão Day #3 - No...
Angular 2

Mais procurados (20)

PDF
React Native na globo.com
PDF
Angular 2
PDF
Devfest Cerrado: Angular 2
PDF
Angular 2 em 60 minutos
PPTX
ASP .NET Core MVC
PDF
Mini curso: Ionic Framework
PDF
Campus Party Brasil 2017: Angular 2 #cpbr10
PPTX
Performance do ASP.NET Core, um comparativo com Node.js
PPTX
ITerior - .NET Core, usando .NET no Linux!
PPTX
Criar um sistema com asp net
PDF
Meetup #17
PPTX
ASP.NET 5 - Novidades do Desenvolvimento Web em .NET
PDF
.NET 6: O que há de novo e o que está por vir?
PPTX
O Futuro do ASP.NET
PPTX
ASP.NET 5, MVC 6 e além
PDF
Angular 4 Ionic 3 Cordova 5
PPTX
Ionic Framework - Parte 1 - Iniciando um Projeto mais Robusto
PDF
Curso de ReactJS
PDF
Desenvolvendo uma App multiplataforma compartilhando 90% do código
PPTX
Futuro do ASP.NET vNext - MVP ShowCast
React Native na globo.com
Angular 2
Devfest Cerrado: Angular 2
Angular 2 em 60 minutos
ASP .NET Core MVC
Mini curso: Ionic Framework
Campus Party Brasil 2017: Angular 2 #cpbr10
Performance do ASP.NET Core, um comparativo com Node.js
ITerior - .NET Core, usando .NET no Linux!
Criar um sistema com asp net
Meetup #17
ASP.NET 5 - Novidades do Desenvolvimento Web em .NET
.NET 6: O que há de novo e o que está por vir?
O Futuro do ASP.NET
ASP.NET 5, MVC 6 e além
Angular 4 Ionic 3 Cordova 5
Ionic Framework - Parte 1 - Iniciando um Projeto mais Robusto
Curso de ReactJS
Desenvolvendo uma App multiplataforma compartilhando 90% do código
Futuro do ASP.NET vNext - MVP ShowCast
Anúncio

Destaque (17)

PPTX
Criando aplicações Híbridas com AngularJs, TypeScript e Material Design
ODP
Introduction to Angular 2
PDF
Getting Started with Angular 2
PPTX
Introdução ao Native Script
PPTX
Trabalhando com WebHooks no ASP.NET
PDF
An Intro to Angular 2
PDF
딥 시큐리티
PDF
Инновации в рекламном бизнесе
PDF
Open Government Data - Zwei Beispiele der Community-Einbindung
ODT
8281 Gefahr der Überheblichkeit ....
PPTX
Brightspace Spring Release 2016
 
PPTX
JavaScript Unit Testing
PDF
CA concepts, principles and practices Kitui
PPTX
Lean Startup for AaltoES Summer of Startups
PPT
Slide 04 - Otaciso, Digelvânia e Silvana
PPTX
Ana maria araujo calderon trabajo social redvolucion leidis
Criando aplicações Híbridas com AngularJs, TypeScript e Material Design
Introduction to Angular 2
Getting Started with Angular 2
Introdução ao Native Script
Trabalhando com WebHooks no ASP.NET
An Intro to Angular 2
딥 시큐리티
Инновации в рекламном бизнесе
Open Government Data - Zwei Beispiele der Community-Einbindung
8281 Gefahr der Überheblichkeit ....
Brightspace Spring Release 2016
 
JavaScript Unit Testing
CA concepts, principles and practices Kitui
Lean Startup for AaltoES Summer of Startups
Slide 04 - Otaciso, Digelvânia e Silvana
Ana maria araujo calderon trabajo social redvolucion leidis
Anúncio

Semelhante a Angular 2, TypeScript e Além (20)

PDF
Angular 4 - Introdução
PDF
Introdução à Programação Web com Angular
PDF
Aprendendo Angular com a CLI
PDF
Conhecendo os fundamentos e desenvolvendo uma apliação básica com Angular2
PPTX
Angular 2
PPTX
Conhecendo Angular 2
PDF
Preparar o ambiente para desenvolvimento angular
PDF
Ionic 2/3 + Firebase
PDF
TDC SP 2016: Ionic 2
PPTX
Desenvolvendo com Angular CLI
PDF
SampaJS 2016: Ionic 2
PDF
Curso AngularJS - Parte 1
PPTX
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
PDF
DevFest Nordeste: Ionic 2
PDF
Open Source Mobile Experience: Ionic 2
PDF
Ionic 2 na pratica!
PDF
DevFest BH: Ionic 2
PDF
2° Codelab - Por onde começar com AngularJS
PDF
Mobile Summit Brazil: Ionic 2
PDF
Angular js
Angular 4 - Introdução
Introdução à Programação Web com Angular
Aprendendo Angular com a CLI
Conhecendo os fundamentos e desenvolvendo uma apliação básica com Angular2
Angular 2
Conhecendo Angular 2
Preparar o ambiente para desenvolvimento angular
Ionic 2/3 + Firebase
TDC SP 2016: Ionic 2
Desenvolvendo com Angular CLI
SampaJS 2016: Ionic 2
Curso AngularJS - Parte 1
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
DevFest Nordeste: Ionic 2
Open Source Mobile Experience: Ionic 2
Ionic 2 na pratica!
DevFest BH: Ionic 2
2° Codelab - Por onde começar com AngularJS
Mobile Summit Brazil: Ionic 2
Angular js

Mais de Andre Baltieri (20)

PPTX
Clean Code - Promob DevDay 2022
PPTX
31/08/2019 - Flutter Talks
PPTX
Refatorando para Testes de Unidade
PPTX
PWA: State of Art
PPTX
PWAs no seu Desktop
PPTX
Criando APIs com Node e TypeScript
PPTX
Otimizando seu cenário de APIs
PPTX
Turbine sua API no Microsoft Azure
PPTX
Progressive Web Apps: Um novo mundo
PPTX
ASP.NET Core APIs: Performance Tips
PPTX
Progressive Web Apps
PPTX
Progressive Web Apps e o futuro do desenvolvimento Web na Plataforma .NET
PPTX
Otimizando eu JavaScript com TypeScript
PPTX
Microsoft e o mundo do Desenvolvimento
PPTX
5509 segurança em ap is
PPTX
BaaS seguros com Firebase
PPTX
5507 os principais design patterns
PPTX
5505 otimizando frontends
PPTX
TDC SP 2015 - Criando aplicações ASP.NET no Mac
PPTX
TDC SP 2015 - Criando Web Apps Real Time com AngularJs e Firebase
Clean Code - Promob DevDay 2022
31/08/2019 - Flutter Talks
Refatorando para Testes de Unidade
PWA: State of Art
PWAs no seu Desktop
Criando APIs com Node e TypeScript
Otimizando seu cenário de APIs
Turbine sua API no Microsoft Azure
Progressive Web Apps: Um novo mundo
ASP.NET Core APIs: Performance Tips
Progressive Web Apps
Progressive Web Apps e o futuro do desenvolvimento Web na Plataforma .NET
Otimizando eu JavaScript com TypeScript
Microsoft e o mundo do Desenvolvimento
5509 segurança em ap is
BaaS seguros com Firebase
5507 os principais design patterns
5505 otimizando frontends
TDC SP 2015 - Criando aplicações ASP.NET no Mac
TDC SP 2015 - Criando Web Apps Real Time com AngularJs e Firebase

Último (19)

PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Apple Pippin Uma breve introdução. - David Glotz
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Processos na gestão de transportes, TM100 Col18
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PPTX
Aula 18 - Manipulacao De Arquivos python
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Aula04-Academia Heri- Tecnologia Geral 2025
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Apple Pippin Uma breve introdução. - David Glotz
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
COBITxITIL-Entenda as diferença em uso governança TI
Custos e liquidação no SAP Transportation Management, TM130 Col18
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Processos na gestão de transportes, TM100 Col18
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Aula 18 - Manipulacao De Arquivos python
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...

Angular 2, TypeScript e Além

Notas do Editor

  • #9: mkdir angular2-quickstart cd angular2-quickstart package.json tsconfig.json typings.json systemjs.config.json npm install npm start npm run tsc  npm run tsc:w
  • #16: import { Component } from '@angular/core';@Component({ selector: 'my-app', template: '<h1>My First Angular 2 App</h1>'})export class AppComponent { }
  • #19: import { bootstrap } from '@angular/platform-browser-dynamic';import { AppComponent } from './app.component';bootstrap(AppComponent);
  • #23: <html> <head> <title>Angular 2 QuickStart</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="styles.css"> <!-- 1. Load libraries --> <!-- Polyfill(s) for older browsers --> <script src="node_modules/core-js/client/shim.min.js"></script> <script src="node_modules/zone.js/dist/zone.js"></script> <script src="node_modules/reflect-metadata/Reflect.js"></script> <script src="node_modules/systemjs/dist/system.src.js"></script> <!-- 2. Configure SystemJS --> <script src="systemjs.config.js"></script> <script> System.import('app').catch(function(err){ console.error(err); }); </script> </head> <!-- 3. Display the application --> <body> <my-app>Loading...</my-app> </body></html>