PhoneGap




           Zaedy Dantas
Who?
me: {
  name: ‘Zaedy Dantas Sayão’,
  twitter: ‘@zaedysayao’,
  github: ‘javamanrj’,
  study: ‘UFRJ’,
  works: ‘BioLogica Sistemas S.A’,
  slideshare: ‘javamanrj’
}
Público
•   iOS?
•   Android?
•   WP?
•   BB?
•   Web? JS?
Write Once?
• Run everywhere
• SONHO
Mobile
•   Iphone – 2007
•   Apps – 2008
•   Ipad – 2010
•   2013?
Mercado Mobile




                 mobilestatistics.com
Quantas linguaguens?
• “Se você é Sênior em 5 linguagens, você não é
  Sênior em nenhuma”
                                Zaedy Sayão
Muitas linguagens
• Alto custo
  – Desenvolvimento
  – Manutenção
Uma linguagem
Web Apps
•   Navegador ✓
•   Sem acesso a código nativo ✖
•   Lenta ✖
•   Apenas para sites ✖
•   Menos integrado ao SO ✓
•   Linguagem não compilada ✓
Facebook x Fastbook
• Zuckerberg: “I think the biggest mistake we
  made as a company is betting too much on
  HTML5 as opposed to native”
Facebook x Fastbook




http://vimeo.com/55486684
Gmail - iOS
Gmail – iOS
…

navigator.googleInternal = {
   iframe_: undefined,
   isInitialized: false,
   init: function() {
     if (this.isInitialized) {
       return;
     }
     this.iframe_ = document.createElement('iframe');
     var cssText = 'position:absolute;top:-5000px;height:2px;width:2px;';
     this.iframe_.style.cssText = cssText;
     this.iframe_.src = 'about:blank';
     document.body.appendChild(this.iframe_);
     this.isInitialized = true;
   }

…
PhoneGap
•   Nitobi
•   Adobe -> Apache
•   Open Source
•   HTML + CSS + JS -> APP
•   iOS, Android, BB, WP, WebOS, Symbian, BADA
O Que dá para fazer?
• Imagine um APP
  Ele é possível
Apps?
www.phonegap.com/apps
API
•   Acelerômetro                •   InAppBrowser
•   Câmera
•   Captura (Recording)         •   Media
•   Bússula                     •   Notificações
•   Conexão                     •   Splash
•   Contatos
                                •   Storage
•   Device
•   Arquivo
•   Geolocation
Acabou?
• Plugins
  – https://github.com/phonegap/phonegap-plugins
Debug
•   Browser
•   Weinre
•   Ripple
•   iWebInspector
•   PonyDebugger
•   debug.phonegap.com
Build
• IDE
• PhoneGap Build
Diretório de desenvolvedores
• http://people.phonegap.com/
IDE
•   Eclipse
•   Xcode
•   Aptana
•   Dreamweaver
•   WebStorm
•
•
    Netbeans
    IntelliJ
                     WHATEVER
•   Visual Studio
•   VI
•   Notepad
•   Sublime Text 2
Problemas
• Build online
  – Sem suporte a todos os plugins
• Ainda precisa saber programar nativamente
  (meia verdade)
Pontos positivos
• Baixa curva de aprendizado
• Comunidade grande e ativa
• Equipe de desenvolvimento paga
     – Adobe -> investimento
•   Releases mensais
•   Boa documentação
•   Estável
•   Roadmap conhecido
•   Open Source
•   Fácil de testar em várias telas e devices
•   Concorrência
•   Reproveitamento de código
•   API uniforme
Mitos
• Performance
• Impossível fazer coisas nativas
• Descaracteriza o app
  – Não fica parecido com nativo
Qual é o nativo?
Qual é o nativo?
Qual é o nativo?
Qual é o nativo?
Resposta
• Primeiro/Segundo/Terceiro slides:
  – Todos são WebApp
• Quarto slide:
  – Esquerda nativo e direita WebApp
Situações não recomendadas
•   Alta performance
•   Concorrência
•   Threads
•   Games -> GPU -> Elementos gráficos pesados
Frameworks/Libs JS (UI)
•   Sencha Touch (MVC)
•   jQuery Mobile
•   Kendo UI
•   Dojo
•   jQTouch
•   Jo
•   XUI
•   Zepto.JS
Frameworks JS MVC
•   Angular.js
•   Knockout.js
•   Backbone.js
•   Agility.js
•   SproutCore
•   Ember.js
•   Batman.js
•   Cappuccino
•   Sammy.js
Outras
•   Hammer.JS
•   jStorage
•   Foundation
•   iScroll
•   SASS
•   Less
•   CSS grid
•   iWebkit
•   Bootstrap
Sem framework




                Fique à vontade
News
• FirefoxOS
• Desktop
  – Mac
  – Linux
  – W7 e W8
Hands ON
• Criando um projeto iOS
• BUILD
• Projeto para MAC
Dúvidas

Phonegap - self RJ