50

Angular 2, TypeScript e Além

Embed Size (px)

Citation preview

Page 1: Angular 2, TypeScript e Além
Page 2: Angular 2, TypeScript e Além

Angular 2, TypeScript e além

Page 3: Angular 2, TypeScript e Além

André Baltieri• Microsoft MVP desde 2013• Visual Studio & Dev Technologies

• Web Developer desde 2005• http://andrebaltieri.net/• [email protected]• ASP.NET Cast

Page 4: Angular 2, TypeScript e Além

Agenda• Angular 2 e TypeScript• Angular CLI• Angular Material• Progressive Web Apps• Angular Mobile Toolkit• NativeScript

Page 5: Angular 2, TypeScript e Além

Angular2 e TypeScript• Dart, JavaScript ou TypeScript• Ótimo suporte no VS Code• Apoio da Microsoft

Page 6: Angular 2, TypeScript e Além

Angular2 e TypeScript1. Criar a pasta, iniciar app e configuração2. Criar o RootComponent3. Apontar o RootComponent no main.ts4. Criar o HTML e chamar os scripts5. Rodar a aplicação

Page 7: Angular 2, TypeScript e Além

Iniciando1. Criar a pasta, iniciar app e configuração

1. package.json2. tsconfig.json3. typings.json4. systemjs.config.json

Page 8: Angular 2, TypeScript e Além

DemonstraçãoInciando a aplicação e configurando

Page 9: Angular 2, TypeScript e Além

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

Page 10: Angular 2, TypeScript e Além

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

Page 11: Angular 2, TypeScript e Além

Import• O Angular é modular• Cada arquivo dedicado a um único propósito• Quando precisamos de algo, importamos

Page 12: Angular 2, TypeScript e Além

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

Page 13: Angular 2, TypeScript e Além

Component Decorator• Selector – Especifica uma tag HTML onde o componente

será renderizado• Template – Especifica o conteúdo (HTML) do

componente

Page 14: Angular 2, TypeScript e Além

Component Class• Define o comportamento do componente como

manipulação de DOM

Page 15: Angular 2, TypeScript e Além

DemonstraçãoCriando o RootComponent

Page 16: Angular 2, TypeScript e Além

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

Page 17: Angular 2, TypeScript e Além

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

Page 18: Angular 2, TypeScript e Além

DemonstraçãoCriando o main.ts

Page 19: Angular 2, TypeScript e Além

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

Page 20: Angular 2, TypeScript e Além

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

Page 21: Angular 2, TypeScript e Além

SystemJs• Configurado através do systemjs.config.js• Cria o map• Registra os pacotes• Modularização também funciona com WebPack por

exemplo

Page 22: Angular 2, TypeScript e Além

DemonstraçãoCriando o Index.html

Page 23: Angular 2, TypeScript e Além

Angular CLI• Cliente via comando para aplicações com Angular 2• Ainda está em construção (Demos podem falhar)

Page 24: Angular 2, TypeScript e Além

Instalação• npm install -g angular-cli

Page 25: Angular 2, TypeScript e Além

Uso• ng new PROJECT_NAME• cd PROJECT_NAME• ng serve• ng serve --port 4201 --live-reload-port 49153

Page 26: Angular 2, TypeScript e Além

DemonstraçãoCriando uma aplicação com Angular CLI

Page 27: Angular 2, TypeScript e Além

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

Page 28: Angular 2, TypeScript e Além

DemonstraçãoCriando componentes

Page 29: Angular 2, TypeScript e Além

Build• ng build

Page 30: Angular 2, TypeScript e Além

DemonstraçãoCompilando a aplicação

Page 31: Angular 2, TypeScript e Além

Ambientes• Na hora do build, o src/client/app/environment.ts será

substituido• config/environment.dev.ts• config/environment.prod.ts

• ng build -prod

Page 32: Angular 2, TypeScript e Além

Testes• ng test• ng e2e

Page 33: Angular 2, TypeScript e Além

DemonstraçãoExecutando testes

Page 34: Angular 2, TypeScript e Além

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

Page 35: Angular 2, TypeScript e Além

DemonstraçãoPublicando a aplicação

Page 36: Angular 2, TypeScript e Além

Angular Material 2• Modular• Instalável através do NPM• npm install --save @angular2-material/{core,button,card}

Page 37: Angular 2, TypeScript e Além

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

Page 38: Angular 2, TypeScript e Além

DemonstraçãoAdicionando componentes do Material Design

Page 39: Angular 2, TypeScript e Além

Importando os componentes• Importar utilizando import• Adicionar a diretiva

Page 40: Angular 2, TypeScript e Além

DemonstraçãoUtilizando os componentes

Page 41: Angular 2, TypeScript e Além

Progressive Web Apps• Carregamento instantâneo• Adicionar a tela inicial• Push Notifications• Rápidas• Seguras• Responsívas

Page 42: Angular 2, TypeScript e Além

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

Page 43: Angular 2, TypeScript e Além

DemonstraçãoCriando um PWA com Angular CLI

Page 44: Angular 2, TypeScript e Além

DemonstraçãoAdicionando a HomeScreen

Page 45: Angular 2, TypeScript e Além

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

Page 46: Angular 2, TypeScript e Além

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

Page 47: Angular 2, TypeScript e Além

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

Page 48: Angular 2, TypeScript e Além

PROMOÇÃO

http://lab1024.com.br/

• Compre 6 ganhe 8• Compre 12 ganhe 15

http://bit.ly/abt-promo

Page 49: Angular 2, TypeScript e Além

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!

Page 50: Angular 2, TypeScript e Além

Obrigado!E-mail: [email protected]: http://lab1024.com.br/Twitter: http://twitter.com/lab1024Facebook: http://fb.com/lab-1024