3. André Baltieri
• Microsoft MVP desde 2013
• Visual Studio & Dev Technologies
• Web Developer desde 2005
• http://andrebaltieri.net/
• contato@andrebaltieri.net
• ASP.NET Cast
4. Agenda
• Angular 2 e TypeScript
• Angular CLI
• Angular Material
• Progressive Web Apps
• Angular Mobile Toolkit
• NativeScript
5. Angular2 e TypeScript
• Dart, JavaScript ou TypeScript
• Ótimo suporte no VS Code
• Apoio da Microsoft
6. 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
7. Iniciando
1. Criar a pasta, iniciar app e configuração
1. package.json
2. tsconfig.json
3. typings.json
4. systemjs.config.json
9. 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
10. 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
11. Import
• O Angular é modular
• Cada arquivo dedicado a um único propósito
• Quando precisamos de algo, importamos
12. 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
13. Component Decorator
• Selector – Especifica uma tag HTML onde o componente será
renderizado
• Template – Especifica o conteúdo (HTML) do componente
16. 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
17. 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
19. 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
20. 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
21. SystemJs
• Configurado através do systemjs.config.js
• Cria o map
• Registra os pacotes
• Modularização também funciona com WebPack por exemplo
27. 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
31. Ambientes
• Na hora do build, o src/client/app/environment.ts será
substituido
• config/environment.dev.ts
• config/environment.prod.ts
• ng build -prod
34. 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
36. Angular Material 2
• Modular
• Instalável através do NPM
• npm install --save @angular2-material/{core,button,card}
37. 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
41. Progressive Web Apps
• Carregamento instantâneo
• Adicionar a tela inicial
• Push Notifications
• Rápidas
• Seguras
• Responsívas
42. 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
49. 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!