52
Criando aplicações Desktop com HTML, CSS e JS #riojs Zaedy Dantas

Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

Embed Size (px)

DESCRIPTION

Slides da apresentação no primeiro Rio.JS Conference, em Março de 2013

Citation preview

Page 1: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

Criando aplicações Desktop com HTML, CSS e JS

#riojs

Zaedy Dantas

Page 2: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

Who?

me: {name: ‘Zaedy Dantas Sayão’,twitter: ‘@zaedysayao’,github: ‘javamanrj’,study: ‘UFRJ’,works: ‘BioLogica Sistemas S.A’,slideshare: ‘javamanrj’

}

Page 3: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

Why not?

• jQuery• Sencha Touch• Phonegap• Mobile com JS• Outra moda qualquer

Page 4: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

Desktop?

Page 5: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

Estado da arte

• Chromebook

Page 6: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

Será?

• iOS• Android• Windows Phone• BB

Page 7: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

Mas e desktop?

• Quem usa serviço na nuvem?• Quem SÓ usa serviço na nuvem?• Quem não tem aplicativo instalado?

Page 8: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

Desktop?

Page 9: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

Mac App Store

• 1604 apps em 1 manhã– Muitos games

• Rumor

Page 10: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

Why?

• A empresa tem:– Site– Cloud (SAAS)– Android– iOS– WP– BB– Desktop?

Page 11: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

Why?

Page 12: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

Why?

Page 13: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

Conexão

Page 14: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

Conexão

Anatel – 11/2011

Page 15: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

Why?

Page 16: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

Realidade brasileira

Page 17: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

Games

http://hexgl.bkcore.com/

Page 18: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

Why?

Page 19: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

Roda?

• IE6?• IE7?• Firefox 2?• Tem certeza? Daria sua vida pela resposta?

Page 20: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

HTML, CSS e JS?

• C• C++• QT• .Net• Java• Delphi

Page 21: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

Como funciona?

HTMLCSSJS

Resources…

Packager Executável

Page 22: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

Como funciona?

HTMLCSSJS

Resources…

Ponte Código Nativo

Page 23: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

Como portar?

• Angular.js• Knockout.js• Backbone.js• Agility.js• SproutCore• Ember.js• Batman.js• Cappuccino• Sammy.js• Bootstrap

Page 24: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

Como portar?

• Sencha Touch (MVC)• jQuery Mobile• Kendo UI• Dojo• jQTouch• Jo• XUI• Zepto.JS

Page 25: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

O que posso usar?• SQLite• Recursos de Janela• Threads• Aúdio• Vídeo• Processo• Notificações• Câmera• Arquivos• Rede• Informações do desktop/plataforma• Menu• Tray• Dialogs• Clipboard

Page 26: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

TideSDK

• Free e OpenSource• Windows/Linux/Mac• Python/Ruby/Php/C/C++• IDE• Boa documentação• Comunidade ativa• Linguagens futuras (possibilidade)– Lua, Falcon, C# (via Mono) e Java

Page 27: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

TideSDK

• Exemplos– Wunderlist: h

ttps://github.com/6wunderkinder/wunderlist

– SimpLESS: https://github.com/Paratron/SimpLESS

– Shopify Theme Tool: https://github.com/meeech/Shopify-Theme-Tool

Page 28: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

TideSDK

Page 29: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

TideSDK

• IDE• HelloWorld• SimpLESS

Page 30: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

Chromium

• OpenSource browser• Suporte a Vobis, Theora e WebM (aúdio e vídeo do html5) • Suporte a AAC e MP3• WebKit (engine que ‘pinta’ na tela): HTML, CSS, Imagens,

XML -> conteúdo na área visual– Permite a renderização das páginas web– C++

• Portado para várias plataformas– Arch Linux, Debian, OS X entre outros

• Rockmelt

Page 31: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

Chromium -> Chrome

• Flash Player• Visualizador de PDF• GoogleUpdate• Estatísticas e Crash Reports• Impressão• Entre outros

Page 32: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

Chrome Installable Web Apps

• http://developer.chrome.com/stable/apps/about_apps.html

• http://www.chromeappsnow.com/• Free e OpenSource• NO PUBLISH!!!! (ainda)

Page 33: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

node-webkit

• Baseado no Chromium e no Node.JS (V8)• Free e OpenSource• Intel• Windows/Linux/Mac• Boa documentação (inferior ao TideSDK)• Comunidade ativa

Page 34: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

node-webkit

Page 35: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

node-webkit

• Simple Ace Editor https://github.com/brads-tools/node-webkit-ace-editor

• WarTrail- Performance! http://delphitools.info/WarTrail/index.htmlhttp://delphitools.info/2012/12/13/desktop-html5-apps-game-changer-node-webkit/

• Smart Mobile Studio

Page 36: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

AppJS

• Projeto promissor mas ainda imaturo• Usa Node.JS• Documentação confusa e espalhada• Windows/Linux/Mac• Links úteis:– http://appjs.org/– http://appjs.delightfulsoftware.com/– http://appjs.delightfulsoftware.com/example-apps/– https://github.com/sihorton/appjs-appPackager– https://github.com/studiochris/starter-for-appjs

Page 37: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

AppJS

Page 38: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

Sencha Desktop Packager

• Baseado no Chromium• Pago!– $499 sem suporte– $695 com suporte

• Windows/Linux/Mac• Inferior a TideSDK e node-webkit– Não recomendo (ao menos ainda)

• Boa documentação mas api limitada

Page 39: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

Sencha Desktop Packager

Page 40: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

Sencha Desktop Packager

Page 41: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

Chromium Embedded Framework (CEF)

• https://code.google.com/p/chromiumembedded/• Framework para embarcar o Chromium em outras aplicações• OpenSource e Free• Baseado no Chromium• C/C++• Integrado a outras linguagens

– .Net– Mono– Delphi– Java– Python– PHP

• Windows/Mac

Page 42: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

Outras apps

• TweetDeck – show code• Brackets (V8 e CEF) • Adobe Edge Code

Page 43: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

Acabou?

• Phonegap!

Page 44: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

Phonegap

• Imaturo (apenas desktop)• Roadmap• Sincronizado com mobile (objetivo ainda não

alcançado)• Windows/Linux/Mac + Mobile• http://cordova.apache.org/• https://github.com/apache/cordova-mac• https://github.com/apache/cordova-windows

Page 45: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

Phonegap

Page 46: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

Nativo

• Use quando quiser

Page 47: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

E os problemas?

• Migração de uma app mobile/web quase nunca é automática– Mas não costuma ser demorada

• Segurança– Licença

Page 48: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

O que eu recomendo?

1. TideSDK2. node-webkit3. Whatever

1. Mas fique de olho em todos, principalmente no Phonegap!

Page 49: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

Curiosidades

• Tela de login do Linux Mint– Feita em HTML5

• Gnome já usa javascript

Page 50: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

Dúvidas?

Page 51: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

Slides e fontes

• http://www.slideshare.net/javamanrj/• https://github.com/javamanrj/riojs-conferenc

e

Page 52: Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013

Thanks!