Agenda
• Overview de Soluções;
• NodeJS;
• Bower;
• GulpJS;
• AngularJS;
• Cordova;
• Ionic;
• Firebase;
Ferramentas
Modern WebApps
NodeJS – O que é?
• http://www.nodejs.org/
• Plataforma baseada no Javascript runtime do Google Chrome – V8;
• Criado para desenvolvimento de aplicações de alto desempenho;
• Baseado em Eventos de I/O;
• Apps real-time (Websockets);
• Não confundir com Ajax (requisições assíncronas);
• Operação via command-line;
• Javascript de todos os lados (front-end e back-end);
• Não suporta base de dados relacionais;
• Disponível para Windows, Linux e MacOS;
• Gerenciamento de pacotes via NPM (Node Package Manager);
Primeiro Projeto
Criando um servidor HTTP
https://github.com/GDGDoisVizinhos/nodejs-http-server
http.js
Segundo Projeto
Criando um servidor HTTP + Adicionando um serviço REST
https://github.com/GDGDoisVizinhos/nodejs-rest-service
package.json
mensagens.js
Modern Webapps workflow
Criar um serviço básico de autenticação
WebApp Workflow
• Criação de estrutura básica como diretórios e arquivos estruturais do projeto;
• Instruções de SaaS/LEES;
• Programação Javascript++;
• Alterações de CSS++;
• Criação de formulários;
• Programação Javascript++;
• Mais alterações de CSS++;
• Deploy da aplicação:
• Testes;
• Lint;
• Minificação;
• Compilação CSS;
Bower – O que é?
• http://bower.io/
• Ferramenta para gerenciamento de pacotes relacionados ao desenvolvimento
WEB;
• Pré-requisitos: NodeJS;
• Mantem a estrutura de dependências do projeto no arquivo bower.json;
• Todos os componentes são adicionados no diretório bower_components;
• Documentação: http://bower.io/docs/api/#commands
• Configuração: http://bower.io/docs/config/
Instalação
Iniciando um projetohttps://github.com/GDGDoisVizinhos/bower-primeiro-exemplo
Adicionando dependências
Principais comandos
Configuração
.bowerrc
AngularJS – O que é?
• http://www.angularjs.org/
• Framework JavaScript com grande foco em HTML;
• Conceito MVC;
• Desenvolvido pela Google;
• Permite uma padronização de arquitetura “enterprise” em uma aplicação web
dinâmica;
• Permite criação de novas tags em HTML para seu navegador interpretar;
• Suporta os navegadores: IE8+, Chrome, Firefox, Safari e Opera;
AngularJS – Principais features
• Bootstrap;
• Two-way databinding;
• Templates;
• Repeaters;
• Filters;
• Injeção de Dependência;
• Routes;
• Eventos;
• RESTful;
Primeira aplicação - TODOhttps://github.com/GDGDoisVizinhos/angularjs-todo
Segunda Aplicaçao - Routinghttps://github.com/GDGDoisVizinhos/angularjs-router
GulpJS – O que é?
• http://www.gulp.js/
• Ferramenta para build de aplicações web modernas;
• Pré-requisitos: NodeJS;
• Através de um único arquivo você pode trabalhar com o build de seus
aplicativos;
• Operação via command-line;
• Lista de plugins: http://gulpjs.com/plugins/
• Documentação de tarefas:
https://github.com/gulpjs/gulp/blob/master/docs/API.md
Instalação
Primeira exemplo – Build Taskhttps://github.com/GDGDoisVizinhos/gulp-build-task
Segundo exemplo - Browser-Sync
https://github.com/GDGDoisVizinhos/gulp-browser-sync
Showcase e Demos
Firebase – O que é?
• http://www.firebase.com/
• Google Company;
• Realtime Database;
• Serviço de Autenticação;
• Serviço de Hosting;
• SDK para Android, iOS e JavaScript;
Firebase – Valores
Firebase – Dashboard
Serviço de Databasehttps://github.com/GDGDoisVizinhos/firebase-data
Google Developer Cloud – Criando Aplicação
Google Developer Console - API
Google Developer Console - API
Google Developer Console - API
Google Developer Console - API
Google Developer Console - API
Firebase – Serviço de Autenticação
Serviço de Autenticaçãohttps://github.com/GDGDoisVizinhos/firebase-auth
Aplicativo de Chathttps://github.com/GDGDoisVizinhos/firebase-chat
CréditosSlides do número 42 ao 68, retirados da apresentação cedida pelo Ionic: http://ionicframework.com/present-ionic/
Obrigado!

Workshop - Ionic + firebase