Pelos Poderes do JS...

Eu tenho a FORÇA!
Quem...?
Luan Castro
Analista em Desenvolvimento de Sistemas
@castrolol
Ex-Competidor OC de TI
@castrolol
castrolol.dev@gmail.com
O Que...?
Javascript no...
Javascript!
Navegador
Servidor
Desktop
Games
Banco
de
Dados
Robôs!
Mobile
Javascript no...
Navegador
No Navegador...
Interatividade
Experiência do Usuário
Vida!
Evoluiu e ganhou muitos poderes!





Antes
Ferramenta para auxiliar validações e interações pequenas.
Hoje
Ferramenta para criações de aplicações completas na parte do cliente.




Javascript no...
Mobile
A realidade da criação de Apps



Android
iPhone
Windows Phone
Javascript como uma alternativa
Javascript + CSS + HTML
Cordova
Android
iPhone
Windows Phone

Cordova...?

Conjunto de APIs para manipulação de dispositivos móveis, que permite o desenvedor de APPS usar a tecnlogia da WEB



Tudo isso... sem perder a essência
navigator.camera.getPicture(onSuccess, onFail, {
quality: 50,
destinationType: Camera.DestinationType.DATA_URL
});
function onSuccess(imageData) {
var image = document.getElementById('myImage');
image.src = "data:image/jpeg;base64," + imageData;
}
function onFail(message) {
alert('Failed because: ' + message);
}Apps com Javascript
Indoonia

Rormix



Orbium
Filterbox
Servidor
Imagine se...
Você pudesse usar no servidor a mesma linguagem que usa no cliente, compartilhando e reutilizando código...
Você Pode!
Apresento-lhes

Plataforma criada com o runtime de Javascript do Chrome, com intuito de criar aplicações para internet com alta escalabilidade.
Foco na comunidade!
Core
Comunidade


Simples como... JS!
var express = require('express')
var app = express();
var http = require('http').Server(app);
app.use(express.static('public'));
app.get('/', function(req, res){
res.sendfile('index.html');
});
http.listen(3000, function(){
console.log('server up!');
});
Porque um Server em JS?
Simplicidade
Escalonabilidade
Multi-plataforma
Infinidade de Bibliotecas (NPM)
Reuso de código no Client/Server
Demo
Banco
de
Dados
Queremos sempre mais...
Já temos JS no cliente
Já temos JS no servidor
Porque não no Banco de Dados?
MongoDB e CouchDB
O Ciclo completo!


MySql
MongoDB
SELECT
nome,
idade,
sexo
FROM
Pessoa
where
idade > 18
order by nome
db.Pessoa.find({
"idade": {
"$gt": 18
}
}, {
"nome": 1,
"idade": 1,
"sexo": 1
}).sort({
"nome": 1
});Desktop
Aplicações em Desktop ?

Bom... quase isso
Aplicações Desktop com a Beleza da Web

Referencias




Robôs?!
Internet-das-Coisas
Internet-of-Things (IoT)
Rede de produtos ou "Coisas" que estarão embarcadas com componentes eletrônicos, softwares e sensores.
IoT no Futuro...
De acordo com uma pesqisa da Gartner a IoT vai ultrapassar U$300bi em 2020
Em 2020 o numero de smartphones, tablets e PC's juntos vai chegar a 7,3bi enquanto a quantidade de dispositivos IoT irá ultrapassar 26bi.
Tinkering... !

Johnny-five é uma framework que facilita a programação robótica em JS.
var five = require("johnny-five");
var board = new five.Board();
board.on("ready", function() {
var led = new five.Led(13);
led.blink(500);
});Demo!...
JS + Arduino + Joystick
Games!!!
Um império derrubado!



Frameworks de Games em JS




Tudo que é preciso pra ser respeitado
2D e 3D com FPS aceitaveis
Acesso à camera e microfone
Suporte para Joystyck e Leapmotion
Shaders com HSLS
Multiplataforma... de verdade!
Jogos de Alta Performance






Links
HelloRun
hellorun.helloenjoy.com
HexGL
hexgl.bkcore.com/play
Trigger Rally
triggerrally.com
Space Buggy
playcanv.as/p/3RerJIcy
Perguntas?
Pelos poderes do JS... Eu tenho a FORÇA!
By castrolol
Pelos poderes do JS... Eu tenho a FORÇA!
- 300