Upgrade to Pro — share decks privately, control downloads, hide ads and more …

One Source = iOS, Android, BB, WP7

Marcus Ross
September 08, 2012

One Source = iOS, Android, BB, WP7

Slides from my session @ Developer Conference Hamburg 2012
Using Apache Cordova with some HTML Frameworks make the dream come true, one source for several platforms.

Marcus Ross

September 08, 2012
Tweet

More Decks by Marcus Ross

Other Decks in Programming

Transcript

  1. Ein  Code  =  iOS,  Android,  BB,   WP7   Marcus

     Ross   (Trainer/Berater)   @zahlenhelfer  
  2. Das  Problem   •  Chef:  „Wir  brauchen  eine  App“  

    •  IT:  „Wow,  ja  gerne,  welche  PlaHorm?“   •  Chef:  „Wieso  PlaHorm  –  Mobil!“   •  IT:  „Ja,  aber  WP7,  iOS,  android,  BB?“   •  Chef:  „Na  alle!  Oder  nicht?“   •  IT:  „OK  –  Problem!“  
  3. Lösung (3 Teile) •  X-Plattform UI -> jQueryMobile •  ein

    Sourcecode -> JavaScript •  native App -> Apache Cordova
  4. jQueryMobile •  Touch-Optimiertes Framework für eine Vielzahl von Geräten/Browsern • 

    Eigenes UI-Paradigma, nicht nativ! •  Leicht, da mit HTML5 Attributen („data-xxx“)
  5. jQueryMobile Bspl. <head> <link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0/ jquery.mobile-1.1.0.min.css" /> <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>

    <script src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"></script> </head> <body> <div data-role="page"> <div data-role="header"> <h1>Hallo HDC 2012</h1> </div> <div data-role="content"> <p>Apache Cordova Track</p> </div> </div> </body> http://jsfiddle.net/Lwryv/
  6. jQueryMobile UI <div  data-­‐role="fieldcontain“>          <label  for="name">Text

     Input:</label>          <input    type="text"      name="name“    id="name“    value=""  />    </div>    
  7. Lösung (3 Teile) •  X-Plattform UI -> jQueryMobile •  Ein

    Sourcecode -> JavaScript •  native App -> Apache Cordova
  8. Logik mit JavaScript •  Client-Site-Rendering (Templates) •  Seitenlogik (Routing/Hyperlinks/Forms) • 

    Filter (Datenfilter) •  Kommunikation mit Servern (XHR) oder auch kompakt •  Single Page Apps
  9. Lösung (3 Teile) •  X-Plattform UI -> jQueryMobile •  Ein

    Sourcecode -> JavaScript / HTML5 •  native App -> Apache Cordova
  10. Kurzer Abriss der Geschichte •  PhoneGap  erstellt  durch  die  Firma

     Nitobi   •  Nach  Release  V1.0  kauf  durch  Adobe   •  Übertragung  des  IP  an  die  ASF   •  Jetzt  ist  es  Apache  Cordova  
  11. Mind the (Phone)Gap – 60 Sek. •  Was macht Apache

    Cordova? Packager/JS-Bridge! •  www-­‐Verzeichnis  für    HTML5  /  JS  /  CSS3   •  Was ist der Tick? native WebView!
  12. Zugriff per API Accelerometer   Camera   Capture   Compass

      Connecion   Contacts   Device   Events   File   Geolocaion   Media   Noificaion   Storage   *Plugins  
  13. Einfach mal machen... ...! <script type="text/javascript" charset="utf-8“>! ! document.addEventListener("deviceready", onDeviceReady,

    false);! !! function onDeviceReady() {! var element = document.getElementById('deviceEigenschaften');! ! !'Geräte Name: ' + device.name + '<br />' + ! ! !'Geräte Cordova: ' + device.cordova + '<br />' + ! ! !'Geräte Platform: ' + device.platform! }! </script>! ...!
  14. oder auch... ...! <script type="text/javascript" charset="utf-8“>! ! document.addEventListener("deviceready", onDeviceReady, false);!

    !! function onDeviceReady() {! var element = document.getElementById('deviceEigenschaften');! ! !'Geräte Name: ' + device.name + '<br />' + ! ! !'Geräte Cordova: ' + device.cordova + '<br />' + ! ! !'Geräte Platform: ' + device.platform! }! </script>! ...!
  15. Aber Debugging? •  hmp://debug.phonegap.com   •  npm  -­‐g  install  weinre

      •  Plugin     hmps://github.com/phonegap/phonegap-­‐plugins    
  16. Plugins 1/2 •  Zugriff  auf  Hardware  /  Funkionen   • 

    Zentral  zu  erreichen  unter:   hmps://github.com/phonegap/phonegap-­‐plugins.git  
  17. Mehr Info bitte... •  Dokumentaion  der  API  unter:   hmp://docs.phonegap.com

      •  auch  in  Deutsch  durch   den  Referenten  J  
  18. FAQ •  Performance!?  -­‐>  Ja,  aber...   •  jQueryMobile  

    –  $.mobile.ajaxEnabled  =  false;   –  $.mobile.linkBindingEnabled  =  false;     •  Nutzen  von  MVC  -­‐>  manchmal  muss  es  sein!     •  Datenbankproblem  -­‐>  WebSQL/Storage  
  19. Fazit •  Apache  Cordova  stellt  eine  Lösung  dar   • 

    Erweiterbar  durch  Plugins   •  OpenSource,  daher  keine  SLA´s   •  Webdeveloper  können  nun  auch  Apps!  
  20. Danke Habt  Ihr  noch  Fragen?     Alternaiv  auch  gerne

     unter:   -­‐  @zahlenhelfer   -­‐  [email protected]