SlideShare una empresa de Scribd logo
1 de 33
Descargar para leer sin conexión
Single Page Apps com
AngularJS
PAULO ROBERTO SAMPAIO BEZERRA
ANALISTA DE TI NA UFMS
IFMS - Aquidauana, MS - 25/04/2015
Palestrante
Paulo Roberto Sampaio Bezerra.
Formado em Análise de Sistemas pela UFGD.
Especialista em Desenvolvimentode
Aplicativos Utilizando a Tecnologia Java pela
Anhanguera/Uniderp.
Atualmente é Analista de TI na UFMS, lotado
na Divisão de Desenvolvimentode Software
(DIDS) no Núcleo de Tecnologia da Informação
(NTI).
Pai da Valentina!
Sumário
Single Page App (SPA)
◦ O que é isso?
◦ Como isso funciona?
◦ Vantagens e Desvantagens.
AngularJS
◦ O que é isso?
◦ Principais conceitos
◦ Diretivas, data binding, controladores, serviços, filtros e
ajax.
◦ Exemplos de código
Sistema de Seleção de Bolsistas da UFMS
Ferramentas
OutrosFrameworks JavaScript MVC
Frameworks Front-end
Livros sobreAngularJS
Referências
Perguntas!?
Single page apps
TODO O SITE EM UMA ÚNICA PÁGINA HTML
SPA, o que é isso?
As SPAs são aplicações completas, que com base nas tecnologia nativas dos browsersweb
(HTML, CSS e JavaScript), não necessitam de uma linguagem server-side para gerar páginas
que forneçam as funcionalidades necessárias do lado cliente de uma aplicação web.
Funcionam "quase" como se estivessem sendo executadas nativamente no desktop.
SPA, o que é isso?
Com as últimas versõesdas tecnologias web, HTML5 e CSS3, com a popularidade cada vez
maior da linguagem JavaScript e como o avançodos frameworks JavaScript, as SPAs tem se
tornado cada vez mais populares.
O Gmail, a busca do Google, o Google Drive, Facebook, o Twitter, o FourSquare,o Instagram
são exemplos de SPAs
SPA, como isso funciona?
SPA, como isso funciona?
AJAX
◦ acrônimo em língua inglesa de Asynchronous Javascriptand XML
◦ é o uso metodológico de tecnologias como Javascripte XML, providas por navegadores, para tornar
páginas Web mais interativas com o usuário, utilizando-se de solicitações assíncronas de informações.
JSON
◦ acrônimo para "JavaScript Object Notation"
◦ é um formato leve para intercâmbio de dados computacionais.
A simplicidade de JSON tem resultado em seu uso difundido, especialmente como uma
alternativa para XML em AJAX.
SPA - Vantagens
Melhor experiência para o usuário
Melhor desempenhona transferência de dados
Redução de carga no lado servidor
Facilidade de manutenção
Gerenciamentode equipes
Facilidade de inclusão de novosfront-ends
SPA - Desvantagens
Aprender mais um framework
Páginas com conteúdogerado dinamicamente no lado cliente
HTML ENHANCED FOR WEB APPS!
H TM L A P RI M ORA D O PA RA A P L I CATI V OS D A W EB!
AngularJS
Framework JavaScript mantido pela Google.
Funciona como uma extenção do documentoHTML
Baseia-se em linguagem declarativa que usa diretivas (parâmetros nas tags do html) para alterar
o comportamento padrão do html.
Fornecetambém um conjuntode funcionalidades que tornam o desenvolvimento webmuito
mais fácil e empolgante, tais como o DataBinding, templates, filtros, diretivas e fácil uso do Ajax.
AngularJS - Diretivas
São marcadoresde elementos de uma página HTML(seja um atributo, nome de elemento,
comentário ou classe CSS) que são chamadas pelo compilador do AngularJS para anexar um
comportamento específico para o elemento DOM ou transformar o elemento DOM e seus
filhos.
Angular vem com várias dessas diretivas como ngModel, ngClass, ngRepeat, etc. Mas podemos
criar nossas próprias diretivas para serem compiladas pelo Angular na inicialização da nossa
página.
◦ Ex01: http://jsfiddle.net/bezerra_paulo/xnbk6z0u/
◦ Ex02: http://jsfiddle.net/bezerra_paulo/7kh7z5ck/
AngularJS - DataBinding
Em aplicativos Angular a sincronizaçãode dados entre os componentesdo modelo e visão é
automática.
A maneira que Angular implementa vinculação de dados permite tratar o modelo como a única
fonte de dados verdadeira na sua aplicação.
A visão é uma projeçãodo modelo em todos os momentos.
Quando o modelo for alterado, a visão reflete a mudança, e vice-versa.
O modelo de databinding do AngularJS é chamado de Two-Way-Data-Binding.
◦ Ex03: http://jsfiddle.net/bezerra_paulo/8kp9m37w/
AngularJS -
DataBinding
Vinculação de dados em sistemas
de modelos clássicos
AngularJS -
DataBinding
Vinculação de dados no modelo
AngularJS
AngularJS - Controladores
No Angular, o controlador é uma funçãoconstrutorJavaScript que server para ampliar o escopo.
Quando o controlador anexado ao DOM pela diretiva ngController,o Angular utiliza a função
construtor para ligar um novocontroladora visão, assim como um novo $scope,passado por
parâmetro para funçãoconstrutora será injetado no controlador.
◦ Ex04: http://jsfiddle.net/bezerra_paulo/smjtezzy/
◦ Ex05: http://jsfiddle.net/bezerra_paulo/7n25secn/
AngularJS - Serviços
No Angular, Serviços são objetossubstituíveis que estão ligados entre si usando a injeção de
dependência(DI).
Você pode usar os serviços para organizar e compartilhar código em seu aplicativo.
Angular oferece diversosserviços úteis (como $http ), mas para a maioria das aplicações você
também vai querer criar o seu próprio.
◦ Ex06: http://jsfiddle.net/bezerra_paulo/o6p8cdrj/
AngularJS - Filtros
Filtros formatam valorese expressõespara serem mostradas na tela do usuário. Podem ser
usadas em templates, controlesou serviços.
◦ Ex07: http://jsfiddle.net/bezerra_paulo/ponvozce/
AngularJS - AJAX
O AgularJS fornece duas formas distintas de trabalhar com estas conexões.
A primeira delas, e mais simples, é através do serviço $http , que pode ser injetado em um
controller.
A segunda forma é através do serviço $resourceque é uma abstração RESTful,funcionando
como um data source.
AngularJS - AJAX - $http
O uso do $http não deveser ignorado, mesmo que o $resourceseja mais poderoso.
Em aplicações simples, ou quando deseja obter dados de uma forma rápida, deve-seutilizar
$http.
◦ Ex08: http://jsfiddle.net/bezerra_paulo/p9yzyc19/
AngularJS - AJAX - $resource
O $resourceestabelece um padrão de comunicaçãoRESTful entre a aplicação e o servidor.
Para que possamos usar esta biblioteca é preciso adicionar o arquivoangular-resource.jsno
documento HTML.
◦ Ex09: http://jsfiddle.net/bezerra_paulo/8t713j76/
Sistema de
Seleção de
Bolsistas da
UFMS
Tela de login do sistema de seleção de
bolsistas.
Sistema de
Seleção de
Bolsistas da
UFMS
Tela inicial do sistema de seleção de
bolsistas.
Sistema de
Seleção de
Bolsistas da
UFMS
Tela do formulário sócio econômico.
Sistema de
Seleção de
Bolsistas da
UFMS
Relatório para comprovaçãode
inscrição do acadêmico.
Ferramentas
Outros Frameworks JavaScript MVC
Frameworks Front-end
Materialize
Livros sobre AngularJS
Referências
Single Page Apps
◦ http://imasters.com.br/desenvolvimento/single-page-applications-e-outras-maravilhas-da-web-
moderna/
Vantagens do Single Page Apps
◦ http://www.guidefreitas.com/aplicacoes-mvc-client-side-single-page-applications/
AngularJS na Prática - Daniel Schmitz e Douglas Lira
◦ https://leanpub.com/livro-angularJS/read
Guide to AngularJS Documentation
◦ https://docs.angularjs.org/guide
Perguntas!?
Muito Obrigado!

Más contenido relacionado

La actualidad más candente

Apresentação AngularJS - Angular UI
Apresentação AngularJS - Angular UIApresentação AngularJS - Angular UI
Apresentação AngularJS - Angular UICecília Rosa
 
Performance com AngularJS
Performance com AngularJSPerformance com AngularJS
Performance com AngularJSWilson Mendes
 
AngularJS - 10 passos para aprender a criar suas directivas
AngularJS - 10 passos para aprender a criar suas directivasAngularJS - 10 passos para aprender a criar suas directivas
AngularJS - 10 passos para aprender a criar suas directivasJanderson Fernandes Cardoso
 
CakePHP - Configurando o ambiente de desenvolvimento no Windows
CakePHP - Configurando o ambiente de desenvolvimento no WindowsCakePHP - Configurando o ambiente de desenvolvimento no Windows
CakePHP - Configurando o ambiente de desenvolvimento no WindowsEmerson Soares
 
AngularJS Components - Semana da Informática 2016
AngularJS Components - Semana da Informática 2016AngularJS Components - Semana da Informática 2016
AngularJS Components - Semana da Informática 2016Diego Melo
 
Introdução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsIntrodução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsCloves Moreira Junior
 
O futuro dos WebApps com AngularJS 2.0
O futuro dos WebApps com AngularJS 2.0O futuro dos WebApps com AngularJS 2.0
O futuro dos WebApps com AngularJS 2.0Wilson Mendes
 
Introdução ao AngularJS
Introdução ao AngularJSIntrodução ao AngularJS
Introdução ao AngularJSRodrigo Branas
 
Spring MVC Framework
Spring MVC FrameworkSpring MVC Framework
Spring MVC Frameworkelliando dias
 
Angular - Um novo change detection
Angular - Um novo change detectionAngular - Um novo change detection
Angular - Um novo change detectionGustavo Costa
 
Ionic 2/3 + Firebase
Ionic 2/3 + FirebaseIonic 2/3 + Firebase
Ionic 2/3 + FirebaseBruno Catão
 
Construindo Sistemas Com Django
Construindo Sistemas Com DjangoConstruindo Sistemas Com Django
Construindo Sistemas Com DjangoMarinho Brandão
 
Workshop Ruby on Rails dia 2 ruby-pt
Workshop Ruby on Rails dia 2  ruby-ptWorkshop Ruby on Rails dia 2  ruby-pt
Workshop Ruby on Rails dia 2 ruby-ptPedro Sousa
 
Construindo Diretivas com AngularJS
Construindo Diretivas com AngularJSConstruindo Diretivas com AngularJS
Construindo Diretivas com AngularJSRodrigo Branas
 
Desenvolvendo APPs Com Angular.JS + Cordova
Desenvolvendo APPs Com Angular.JS �+ CordovaDesenvolvendo APPs Com Angular.JS �+ Cordova
Desenvolvendo APPs Com Angular.JS + CordovaGustavo Costa
 
Como escolher o Framework Java para web?
Como escolher o Framework Java para web?Como escolher o Framework Java para web?
Como escolher o Framework Java para web?Anderson Araújo
 

La actualidad más candente (19)

Apresentação AngularJS - Angular UI
Apresentação AngularJS - Angular UIApresentação AngularJS - Angular UI
Apresentação AngularJS - Angular UI
 
Performance com AngularJS
Performance com AngularJSPerformance com AngularJS
Performance com AngularJS
 
Web Offline
Web OfflineWeb Offline
Web Offline
 
AngularJS - 10 passos para aprender a criar suas directivas
AngularJS - 10 passos para aprender a criar suas directivasAngularJS - 10 passos para aprender a criar suas directivas
AngularJS - 10 passos para aprender a criar suas directivas
 
Visão Geral sobre Angular JS
Visão Geral sobre Angular JSVisão Geral sobre Angular JS
Visão Geral sobre Angular JS
 
CakePHP - Configurando o ambiente de desenvolvimento no Windows
CakePHP - Configurando o ambiente de desenvolvimento no WindowsCakePHP - Configurando o ambiente de desenvolvimento no Windows
CakePHP - Configurando o ambiente de desenvolvimento no Windows
 
ApresentaçãO Mvc
ApresentaçãO MvcApresentaçãO Mvc
ApresentaçãO Mvc
 
AngularJS Components - Semana da Informática 2016
AngularJS Components - Semana da Informática 2016AngularJS Components - Semana da Informática 2016
AngularJS Components - Semana da Informática 2016
 
Introdução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular jsIntrodução ao desenvolvimento front end usando bootstrap e angular js
Introdução ao desenvolvimento front end usando bootstrap e angular js
 
O futuro dos WebApps com AngularJS 2.0
O futuro dos WebApps com AngularJS 2.0O futuro dos WebApps com AngularJS 2.0
O futuro dos WebApps com AngularJS 2.0
 
Introdução ao AngularJS
Introdução ao AngularJSIntrodução ao AngularJS
Introdução ao AngularJS
 
Spring MVC Framework
Spring MVC FrameworkSpring MVC Framework
Spring MVC Framework
 
Angular - Um novo change detection
Angular - Um novo change detectionAngular - Um novo change detection
Angular - Um novo change detection
 
Ionic 2/3 + Firebase
Ionic 2/3 + FirebaseIonic 2/3 + Firebase
Ionic 2/3 + Firebase
 
Construindo Sistemas Com Django
Construindo Sistemas Com DjangoConstruindo Sistemas Com Django
Construindo Sistemas Com Django
 
Workshop Ruby on Rails dia 2 ruby-pt
Workshop Ruby on Rails dia 2  ruby-ptWorkshop Ruby on Rails dia 2  ruby-pt
Workshop Ruby on Rails dia 2 ruby-pt
 
Construindo Diretivas com AngularJS
Construindo Diretivas com AngularJSConstruindo Diretivas com AngularJS
Construindo Diretivas com AngularJS
 
Desenvolvendo APPs Com Angular.JS + Cordova
Desenvolvendo APPs Com Angular.JS �+ CordovaDesenvolvendo APPs Com Angular.JS �+ Cordova
Desenvolvendo APPs Com Angular.JS + Cordova
 
Como escolher o Framework Java para web?
Como escolher o Framework Java para web?Como escolher o Framework Java para web?
Como escolher o Framework Java para web?
 

Destacado

DDD - Domain Driven Design
DDD - Domain Driven DesignDDD - Domain Driven Design
DDD - Domain Driven DesignDaniel Cukier
 
Microservices, soa e o melhor das filas
Microservices, soa e o melhor das filasMicroservices, soa e o melhor das filas
Microservices, soa e o melhor das filasDiego Pacheco
 
Microservices&ap imanagement
Microservices&ap imanagementMicroservices&ap imanagement
Microservices&ap imanagementpramodkumards
 
EXPERTALKS: Feb 2013 - Rise of the Single Page Application
EXPERTALKS: Feb 2013 - Rise of the Single Page ApplicationEXPERTALKS: Feb 2013 - Rise of the Single Page Application
EXPERTALKS: Feb 2013 - Rise of the Single Page ApplicationEXPERTALKS
 
REST - Padroes e Melhores Praticas
REST - Padroes e Melhores PraticasREST - Padroes e Melhores Praticas
REST - Padroes e Melhores PraticasFelipe Firmo
 
DDD – Domain Driven Design
DDD – Domain Driven DesignDDD – Domain Driven Design
DDD – Domain Driven DesignÍtalo Bandeira
 
Evoluindo a arquitetura de uma aplicação com AngularJS
Evoluindo a arquitetura de uma aplicação com AngularJSEvoluindo a arquitetura de uma aplicação com AngularJS
Evoluindo a arquitetura de uma aplicação com AngularJSRodrigo Branas
 
HTTP, JSON, REST e AJAX com AngularJS
HTTP, JSON, REST e AJAX com AngularJSHTTP, JSON, REST e AJAX com AngularJS
HTTP, JSON, REST e AJAX com AngularJSRodrigo Branas
 

Destacado (9)

Let's do SPA
Let's do SPALet's do SPA
Let's do SPA
 
DDD - Domain Driven Design
DDD - Domain Driven DesignDDD - Domain Driven Design
DDD - Domain Driven Design
 
Microservices, soa e o melhor das filas
Microservices, soa e o melhor das filasMicroservices, soa e o melhor das filas
Microservices, soa e o melhor das filas
 
Microservices&ap imanagement
Microservices&ap imanagementMicroservices&ap imanagement
Microservices&ap imanagement
 
EXPERTALKS: Feb 2013 - Rise of the Single Page Application
EXPERTALKS: Feb 2013 - Rise of the Single Page ApplicationEXPERTALKS: Feb 2013 - Rise of the Single Page Application
EXPERTALKS: Feb 2013 - Rise of the Single Page Application
 
REST - Padroes e Melhores Praticas
REST - Padroes e Melhores PraticasREST - Padroes e Melhores Praticas
REST - Padroes e Melhores Praticas
 
DDD – Domain Driven Design
DDD – Domain Driven DesignDDD – Domain Driven Design
DDD – Domain Driven Design
 
Evoluindo a arquitetura de uma aplicação com AngularJS
Evoluindo a arquitetura de uma aplicação com AngularJSEvoluindo a arquitetura de uma aplicação com AngularJS
Evoluindo a arquitetura de uma aplicação com AngularJS
 
HTTP, JSON, REST e AJAX com AngularJS
HTTP, JSON, REST e AJAX com AngularJSHTTP, JSON, REST e AJAX com AngularJS
HTTP, JSON, REST e AJAX com AngularJS
 

Similar a AngularJS Single Page Apps

Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório Portal GSTI
 
AngularJS com ASP.NET MVC 4 - Binding, Eventos, Ajax, Validações e Rotas
AngularJS com ASP.NET MVC 4 - Binding, Eventos, Ajax, Validações e RotasAngularJS com ASP.NET MVC 4 - Binding, Eventos, Ajax, Validações e Rotas
AngularJS com ASP.NET MVC 4 - Binding, Eventos, Ajax, Validações e RotasIldyone Martins
 
AngularJS - Universidade Positivo - Trabalho
AngularJS -  Universidade Positivo - TrabalhoAngularJS -  Universidade Positivo - Trabalho
AngularJS - Universidade Positivo - TrabalhoGustavoAlves216
 
Desenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-endDesenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-endGiovanny Valente
 
2° Codelab - Por onde começar com AngularJS
2° Codelab  - Por onde começar com AngularJS2° Codelab  - Por onde começar com AngularJS
2° Codelab - Por onde começar com AngularJSGDGFoz
 
TDC 2014 - Arquitetura front-end com AngularJS
TDC 2014 - Arquitetura front-end com AngularJSTDC 2014 - Arquitetura front-end com AngularJS
TDC 2014 - Arquitetura front-end com AngularJSLeonardo Zanivan
 
AngularJS com NODE.JS e Socket.IO
AngularJS com NODE.JS e Socket.IOAngularJS com NODE.JS e Socket.IO
AngularJS com NODE.JS e Socket.IODouglas Lira
 
Apresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemApresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemRodrigo Valerio
 
MSP Tech Days Online 2018 - SPA além do JavaScript com Blazor
MSP Tech Days Online 2018 - SPA além do JavaScript com BlazorMSP Tech Days Online 2018 - SPA além do JavaScript com Blazor
MSP Tech Days Online 2018 - SPA além do JavaScript com BlazorGustavo Bellini Bigardi
 
Angular - Ruby Morning
Angular - Ruby MorningAngular - Ruby Morning
Angular - Ruby MorningYan Justino
 
Aplicações Web, Frameworks, REST e SPA
Aplicações Web, Frameworks, REST e SPAAplicações Web, Frameworks, REST e SPA
Aplicações Web, Frameworks, REST e SPAmarcosvpcortes
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento webRodrigo Rodrigues
 

Similar a AngularJS Single Page Apps (20)

Angular js
Angular jsAngular js
Angular js
 
Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório
 
AngularJS com ASP.NET MVC 4 - Binding, Eventos, Ajax, Validações e Rotas
AngularJS com ASP.NET MVC 4 - Binding, Eventos, Ajax, Validações e RotasAngularJS com ASP.NET MVC 4 - Binding, Eventos, Ajax, Validações e Rotas
AngularJS com ASP.NET MVC 4 - Binding, Eventos, Ajax, Validações e Rotas
 
AngularJS - Universidade Positivo - Trabalho
AngularJS -  Universidade Positivo - TrabalhoAngularJS -  Universidade Positivo - Trabalho
AngularJS - Universidade Positivo - Trabalho
 
Desenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-endDesenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-end
 
2° Codelab - Por onde começar com AngularJS
2° Codelab  - Por onde começar com AngularJS2° Codelab  - Por onde começar com AngularJS
2° Codelab - Por onde começar com AngularJS
 
Jsf
JsfJsf
Jsf
 
TDC 2014 - Arquitetura front-end com AngularJS
TDC 2014 - Arquitetura front-end com AngularJSTDC 2014 - Arquitetura front-end com AngularJS
TDC 2014 - Arquitetura front-end com AngularJS
 
AngularJS com NODE.JS e Socket.IO
AngularJS com NODE.JS e Socket.IOAngularJS com NODE.JS e Socket.IO
AngularJS com NODE.JS e Socket.IO
 
Angularjs
AngularjsAngularjs
Angularjs
 
Apresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemApresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvem
 
Front end architecture
Front end architectureFront end architecture
Front end architecture
 
Ember JS Brasil
Ember JS BrasilEmber JS Brasil
Ember JS Brasil
 
MSP Tech Days Online 2018 - SPA além do JavaScript com Blazor
MSP Tech Days Online 2018 - SPA além do JavaScript com BlazorMSP Tech Days Online 2018 - SPA além do JavaScript com Blazor
MSP Tech Days Online 2018 - SPA além do JavaScript com Blazor
 
Palestra Sobre REST
Palestra Sobre RESTPalestra Sobre REST
Palestra Sobre REST
 
Angular - Ruby Morning
Angular - Ruby MorningAngular - Ruby Morning
Angular - Ruby Morning
 
Aplicações Web, Frameworks, REST e SPA
Aplicações Web, Frameworks, REST e SPAAplicações Web, Frameworks, REST e SPA
Aplicações Web, Frameworks, REST e SPA
 
Apresentação angular js
Apresentação angular jsApresentação angular js
Apresentação angular js
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
 
Asp net mvc
Asp net mvcAsp net mvc
Asp net mvc
 

AngularJS Single Page Apps

  • 1. Single Page Apps com AngularJS PAULO ROBERTO SAMPAIO BEZERRA ANALISTA DE TI NA UFMS IFMS - Aquidauana, MS - 25/04/2015
  • 2. Palestrante Paulo Roberto Sampaio Bezerra. Formado em Análise de Sistemas pela UFGD. Especialista em Desenvolvimentode Aplicativos Utilizando a Tecnologia Java pela Anhanguera/Uniderp. Atualmente é Analista de TI na UFMS, lotado na Divisão de Desenvolvimentode Software (DIDS) no Núcleo de Tecnologia da Informação (NTI). Pai da Valentina!
  • 3. Sumário Single Page App (SPA) ◦ O que é isso? ◦ Como isso funciona? ◦ Vantagens e Desvantagens. AngularJS ◦ O que é isso? ◦ Principais conceitos ◦ Diretivas, data binding, controladores, serviços, filtros e ajax. ◦ Exemplos de código Sistema de Seleção de Bolsistas da UFMS Ferramentas OutrosFrameworks JavaScript MVC Frameworks Front-end Livros sobreAngularJS Referências Perguntas!?
  • 4. Single page apps TODO O SITE EM UMA ÚNICA PÁGINA HTML
  • 5. SPA, o que é isso? As SPAs são aplicações completas, que com base nas tecnologia nativas dos browsersweb (HTML, CSS e JavaScript), não necessitam de uma linguagem server-side para gerar páginas que forneçam as funcionalidades necessárias do lado cliente de uma aplicação web. Funcionam "quase" como se estivessem sendo executadas nativamente no desktop.
  • 6. SPA, o que é isso? Com as últimas versõesdas tecnologias web, HTML5 e CSS3, com a popularidade cada vez maior da linguagem JavaScript e como o avançodos frameworks JavaScript, as SPAs tem se tornado cada vez mais populares. O Gmail, a busca do Google, o Google Drive, Facebook, o Twitter, o FourSquare,o Instagram são exemplos de SPAs
  • 7. SPA, como isso funciona?
  • 8. SPA, como isso funciona? AJAX ◦ acrônimo em língua inglesa de Asynchronous Javascriptand XML ◦ é o uso metodológico de tecnologias como Javascripte XML, providas por navegadores, para tornar páginas Web mais interativas com o usuário, utilizando-se de solicitações assíncronas de informações. JSON ◦ acrônimo para "JavaScript Object Notation" ◦ é um formato leve para intercâmbio de dados computacionais. A simplicidade de JSON tem resultado em seu uso difundido, especialmente como uma alternativa para XML em AJAX.
  • 9. SPA - Vantagens Melhor experiência para o usuário Melhor desempenhona transferência de dados Redução de carga no lado servidor Facilidade de manutenção Gerenciamentode equipes Facilidade de inclusão de novosfront-ends
  • 10. SPA - Desvantagens Aprender mais um framework Páginas com conteúdogerado dinamicamente no lado cliente
  • 11. HTML ENHANCED FOR WEB APPS! H TM L A P RI M ORA D O PA RA A P L I CATI V OS D A W EB!
  • 12. AngularJS Framework JavaScript mantido pela Google. Funciona como uma extenção do documentoHTML Baseia-se em linguagem declarativa que usa diretivas (parâmetros nas tags do html) para alterar o comportamento padrão do html. Fornecetambém um conjuntode funcionalidades que tornam o desenvolvimento webmuito mais fácil e empolgante, tais como o DataBinding, templates, filtros, diretivas e fácil uso do Ajax.
  • 13. AngularJS - Diretivas São marcadoresde elementos de uma página HTML(seja um atributo, nome de elemento, comentário ou classe CSS) que são chamadas pelo compilador do AngularJS para anexar um comportamento específico para o elemento DOM ou transformar o elemento DOM e seus filhos. Angular vem com várias dessas diretivas como ngModel, ngClass, ngRepeat, etc. Mas podemos criar nossas próprias diretivas para serem compiladas pelo Angular na inicialização da nossa página. ◦ Ex01: http://jsfiddle.net/bezerra_paulo/xnbk6z0u/ ◦ Ex02: http://jsfiddle.net/bezerra_paulo/7kh7z5ck/
  • 14. AngularJS - DataBinding Em aplicativos Angular a sincronizaçãode dados entre os componentesdo modelo e visão é automática. A maneira que Angular implementa vinculação de dados permite tratar o modelo como a única fonte de dados verdadeira na sua aplicação. A visão é uma projeçãodo modelo em todos os momentos. Quando o modelo for alterado, a visão reflete a mudança, e vice-versa. O modelo de databinding do AngularJS é chamado de Two-Way-Data-Binding. ◦ Ex03: http://jsfiddle.net/bezerra_paulo/8kp9m37w/
  • 15. AngularJS - DataBinding Vinculação de dados em sistemas de modelos clássicos
  • 16. AngularJS - DataBinding Vinculação de dados no modelo AngularJS
  • 17. AngularJS - Controladores No Angular, o controlador é uma funçãoconstrutorJavaScript que server para ampliar o escopo. Quando o controlador anexado ao DOM pela diretiva ngController,o Angular utiliza a função construtor para ligar um novocontroladora visão, assim como um novo $scope,passado por parâmetro para funçãoconstrutora será injetado no controlador. ◦ Ex04: http://jsfiddle.net/bezerra_paulo/smjtezzy/ ◦ Ex05: http://jsfiddle.net/bezerra_paulo/7n25secn/
  • 18. AngularJS - Serviços No Angular, Serviços são objetossubstituíveis que estão ligados entre si usando a injeção de dependência(DI). Você pode usar os serviços para organizar e compartilhar código em seu aplicativo. Angular oferece diversosserviços úteis (como $http ), mas para a maioria das aplicações você também vai querer criar o seu próprio. ◦ Ex06: http://jsfiddle.net/bezerra_paulo/o6p8cdrj/
  • 19. AngularJS - Filtros Filtros formatam valorese expressõespara serem mostradas na tela do usuário. Podem ser usadas em templates, controlesou serviços. ◦ Ex07: http://jsfiddle.net/bezerra_paulo/ponvozce/
  • 20. AngularJS - AJAX O AgularJS fornece duas formas distintas de trabalhar com estas conexões. A primeira delas, e mais simples, é através do serviço $http , que pode ser injetado em um controller. A segunda forma é através do serviço $resourceque é uma abstração RESTful,funcionando como um data source.
  • 21. AngularJS - AJAX - $http O uso do $http não deveser ignorado, mesmo que o $resourceseja mais poderoso. Em aplicações simples, ou quando deseja obter dados de uma forma rápida, deve-seutilizar $http. ◦ Ex08: http://jsfiddle.net/bezerra_paulo/p9yzyc19/
  • 22. AngularJS - AJAX - $resource O $resourceestabelece um padrão de comunicaçãoRESTful entre a aplicação e o servidor. Para que possamos usar esta biblioteca é preciso adicionar o arquivoangular-resource.jsno documento HTML. ◦ Ex09: http://jsfiddle.net/bezerra_paulo/8t713j76/
  • 23. Sistema de Seleção de Bolsistas da UFMS Tela de login do sistema de seleção de bolsistas.
  • 24. Sistema de Seleção de Bolsistas da UFMS Tela inicial do sistema de seleção de bolsistas.
  • 25. Sistema de Seleção de Bolsistas da UFMS Tela do formulário sócio econômico.
  • 26. Sistema de Seleção de Bolsistas da UFMS Relatório para comprovaçãode inscrição do acadêmico.
  • 31. Referências Single Page Apps ◦ http://imasters.com.br/desenvolvimento/single-page-applications-e-outras-maravilhas-da-web- moderna/ Vantagens do Single Page Apps ◦ http://www.guidefreitas.com/aplicacoes-mvc-client-side-single-page-applications/ AngularJS na Prática - Daniel Schmitz e Douglas Lira ◦ https://leanpub.com/livro-angularJS/read Guide to AngularJS Documentation ◦ https://docs.angularjs.org/guide