IOS APPS MIT WEBTECHNOLOGIEN
          ERSTELLEN
           EIN ÜBERBLICK
MICHAEL KÜHNEL
Macht Internet seit Netscape 4.7

Frontend Developer bei der SMA Solar Technology AG
Twitter: @mkuehnel

Website: www.michael-kuehnel.de
WORUM GEHT ES
UIWebView

Apache Cordova (PhoneGap)
Appcelerator Titanium
NATIVE APPS = NATIVE TOOLCHAIN
                      VORAUSSETZUNGEN
Apple Macintosh

iOS SDK
   Xcode IDE
   UIKit Framework, iPhone-Simulator, weitere Tools, Compiler etc.

iOS Developer Program ( $99/Jahr )
UIWEBVIEW
 “ You use the UIWebView class to embed web content in your
  application. To do so, you simply create a UIWebView object,
attach it to a window, and send it a request to load web content.
                                 ”

                 Siehe developer.apple.com
FAKTEN
»Container« für Webinhalte

Bestandteil des Apple UIKit Frameworks

Kann »interne« und »externe« Inhalte laden

Build Prozess über Xcode
Native APIs teilweise über HTML5 APIs nachrüstbar:
    Offline / Storage : Application Cache, Local Storage, Web SQL & Indexed
   Database
    Geolocation , Media Capture and File API
VORTEILE
»Freiheit« in der Webentwicklung:
   Serverseitige -> Datenbanken, Skriptsprachen etc.

   Clientseitig -> Datenbanken, CSS und JavaScript Frameworks etc.
Gleiche Code-Basis ggf. für andere Plattformen nutzbar.
NACHTEILE
Performance: Andere JavaScript Engine als in Mobile Safari

Rudimentäre iOS SDK und Objective-C Kentnisse nötig
APACHE CORDOVA (PHONEGAP)




“ Apache Cordova is a platform for building native mobile
     applications using HTML, CSS and JavaScript. ”

        Siehe incubator.apache.org/cordova
FAKTEN
»Container« für Webinhalte
Kann nur mit »internen« Inhalten (HTML, CSS, Javascript) umgehen

Build Prozess über Xcode
Zusätzliche Javascript Device APIs:
Accelerometer , Camera , Capture , Compass , Connection , Contacts , Device ,
Events , File , Geolocation , Media , Notification , Storage
VORTEILE
»Freiheit« in der Webentwicklung:
   Clientseitig -> CSS und JavaScript Frameworks etc.
Alle wichtigen Geräte APIs werden unterstützt

Gleiche Code-Basis für andere Devices nutzbar:
    Unterstützt zur Zeit 7 mobile Plattformen.

Open Source und kostenlos
NACHTEILE
Performance: Andere JavaScript Engine als in Mobile Safari

Kein Einsatz von serverseitigen Scriptsprachen möglich
APPCELERATOR TITANIUM SDK




“ Create rich native iOS, Android, hybrid, and mobile web apps
             from a single JavaScript-based SDK. ”

                 Siehe appcelerator.com
FAKTEN
JavaScript basierte Plattform
   »JavaScript« -> »Objective C« Bridge

   Man programmiert JavaScript und die App nutzt letzlich native APIs
   Unterstütztung von JavaScript Modulen nach der
   CommonJS Module Specification

Build Prozess über Titanium Studio
VORTEILE
Native UI Elemente
Performance

Gleiche Code-Basis für andere Devices nutzbar:
    Unterstützt zur Zeit 3 mobile Plattformen.
NACHTEILE
Pure JavaScript Lösung. Kein HTML, kein CSS.
Kein Einsatz von serverseitigen Scriptsprachen möglich

Kommerzieles Produkt mit dem eine Firma Geld verdienen muss. Siehe
Preistabelle .
FAZIT
           »RICHTIGE« APPS BENÖTIGEN »RICHTIGE« APIS
Kein Unterschied an API Features zwischen Cordova und Titanium SDK

Letzlich eine Sache der persönlichen Präferenz:
   Performance vs. Flexibilität …
   Vorhandenes Wissen … etc …
DIREKTER VERGLEICH EINER APP IN ENTWICKLUNG
            »WORKOUT LOG« AUF GITHUB
                 Titanium Branch

                 Phonegap Branch
ALTERNATIVEN
RUBYMOTION
   “ RubyMotion is a revolutionary toolchain for iOS. It lets you
  quickly develop and test native iOS applications for iPhone or
iPad, all using the awesome Ruby language you know and love. ”

                   Siehe rubymotion.com
CORONA
   “ With Corona, you will develop mobile apps in record time.
Develop in Lua, an easy-to-learn language that coupled with our
elegant APIs allow you to add features like Facebook and physics
                   in just a few lines of code. ”

                   Siehe coronalabs.com
DAS WARS ; )




FRAGEN?
Twitter: @mkuehnel
E-Mail: mail@michael-kuehnel.de
APPENDIX – LINKS
Mobile JavaScript/CSS Frameworks
         Zepto
         jQTouch

         jQuery Mobile

         Sencha Touch

         Kendo UI Mobile
         Foundation 3

         Sidetap

iOS Apps mit Webtechnologien erstellen

  • 1.
    IOS APPS MITWEBTECHNOLOGIEN ERSTELLEN EIN ÜBERBLICK
  • 2.
    MICHAEL KÜHNEL Macht Internetseit Netscape 4.7 Frontend Developer bei der SMA Solar Technology AG Twitter: @mkuehnel Website: www.michael-kuehnel.de
  • 3.
    WORUM GEHT ES UIWebView ApacheCordova (PhoneGap) Appcelerator Titanium
  • 4.
    NATIVE APPS =NATIVE TOOLCHAIN VORAUSSETZUNGEN Apple Macintosh iOS SDK Xcode IDE UIKit Framework, iPhone-Simulator, weitere Tools, Compiler etc. iOS Developer Program ( $99/Jahr )
  • 5.
    UIWEBVIEW “ Youuse the UIWebView class to embed web content in your application. To do so, you simply create a UIWebView object, attach it to a window, and send it a request to load web content. ” Siehe developer.apple.com
  • 6.
    FAKTEN »Container« für Webinhalte Bestandteildes Apple UIKit Frameworks Kann »interne« und »externe« Inhalte laden Build Prozess über Xcode Native APIs teilweise über HTML5 APIs nachrüstbar: Offline / Storage : Application Cache, Local Storage, Web SQL & Indexed Database Geolocation , Media Capture and File API
  • 7.
    VORTEILE »Freiheit« in derWebentwicklung: Serverseitige -> Datenbanken, Skriptsprachen etc. Clientseitig -> Datenbanken, CSS und JavaScript Frameworks etc. Gleiche Code-Basis ggf. für andere Plattformen nutzbar.
  • 8.
    NACHTEILE Performance: Andere JavaScriptEngine als in Mobile Safari Rudimentäre iOS SDK und Objective-C Kentnisse nötig
  • 9.
    APACHE CORDOVA (PHONEGAP) “Apache Cordova is a platform for building native mobile applications using HTML, CSS and JavaScript. ” Siehe incubator.apache.org/cordova
  • 10.
    FAKTEN »Container« für Webinhalte Kannnur mit »internen« Inhalten (HTML, CSS, Javascript) umgehen Build Prozess über Xcode Zusätzliche Javascript Device APIs: Accelerometer , Camera , Capture , Compass , Connection , Contacts , Device , Events , File , Geolocation , Media , Notification , Storage
  • 11.
    VORTEILE »Freiheit« in derWebentwicklung: Clientseitig -> CSS und JavaScript Frameworks etc. Alle wichtigen Geräte APIs werden unterstützt Gleiche Code-Basis für andere Devices nutzbar: Unterstützt zur Zeit 7 mobile Plattformen. Open Source und kostenlos
  • 12.
    NACHTEILE Performance: Andere JavaScriptEngine als in Mobile Safari Kein Einsatz von serverseitigen Scriptsprachen möglich
  • 13.
    APPCELERATOR TITANIUM SDK “Create rich native iOS, Android, hybrid, and mobile web apps from a single JavaScript-based SDK. ” Siehe appcelerator.com
  • 14.
    FAKTEN JavaScript basierte Plattform »JavaScript« -> »Objective C« Bridge Man programmiert JavaScript und die App nutzt letzlich native APIs Unterstütztung von JavaScript Modulen nach der CommonJS Module Specification Build Prozess über Titanium Studio
  • 15.
    VORTEILE Native UI Elemente Performance GleicheCode-Basis für andere Devices nutzbar: Unterstützt zur Zeit 3 mobile Plattformen.
  • 16.
    NACHTEILE Pure JavaScript Lösung.Kein HTML, kein CSS. Kein Einsatz von serverseitigen Scriptsprachen möglich Kommerzieles Produkt mit dem eine Firma Geld verdienen muss. Siehe Preistabelle .
  • 17.
    FAZIT »RICHTIGE« APPS BENÖTIGEN »RICHTIGE« APIS Kein Unterschied an API Features zwischen Cordova und Titanium SDK Letzlich eine Sache der persönlichen Präferenz: Performance vs. Flexibilität … Vorhandenes Wissen … etc …
  • 18.
    DIREKTER VERGLEICH EINERAPP IN ENTWICKLUNG »WORKOUT LOG« AUF GITHUB Titanium Branch Phonegap Branch
  • 19.
  • 20.
    RUBYMOTION “ RubyMotion is a revolutionary toolchain for iOS. It lets you quickly develop and test native iOS applications for iPhone or iPad, all using the awesome Ruby language you know and love. ” Siehe rubymotion.com
  • 21.
    CORONA “ With Corona, you will develop mobile apps in record time. Develop in Lua, an easy-to-learn language that coupled with our elegant APIs allow you to add features like Facebook and physics in just a few lines of code. ” Siehe coronalabs.com
  • 22.
    DAS WARS ;) FRAGEN? Twitter: @mkuehnel E-Mail: mail@michael-kuehnel.de
  • 23.
    APPENDIX – LINKS MobileJavaScript/CSS Frameworks Zepto jQTouch jQuery Mobile Sencha Touch Kendo UI Mobile Foundation 3 Sidetap