iOS Apps mit Webtechnologien erstellen

Ein Überblick

Michael Kühnel

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:

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

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

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

(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-26636606-1', 'auto'); ga('send', 'pageview');