App-Entwicklung für Web-Developer

Native Apps mit Titanium
Kommentare

Am Anfang eines Mobile-Projektes steht meist die Forderung: „Wir brauchen eine App! – Am besten eine, die alle Plattformen unterstützt und sich nativ anfühlt.“

Leichter gesagt als getan, denn zunächst gilt es, die Möglichkeiten abzuwägen: HTML5, Sencha Touch, PhoneGap? Je nachdem wie man sich entscheidet, wird aber spätestens auf dem Device deutlich, dass es sich eben nicht um eine native App handelt, beispielsweise, weil Tabs nicht an die richtige Stellen rücken. Zwar sind Web- und HTML5-Apps geradezu unschlagbar was Zeit- und Kostenfaktor angeht, aber native Performance erfordert leider native Entwicklung – da führt kein Weg dran vorbei. Also müsste man alle Sprachen meistern: Objective-C , Java und C#. Aber ein einzelner Entwickler beherrscht selten alle Plattformen und Sprachen.

Was bleibt also? Wie wär’s zum Beispiel mit Titanium?

Titanium für native Apps

Web-Entwickler Marcel Pociot hat auf der Mobile Tech Con 2014 in München das Titanium-Framework von Appcelerator vorgestellt und gezeigt, wie sich damit native Apps umsetzen lassen.

Titanium wird inzwischen bereits von 500.000 Entwicklern weltweit genutzt und Titanium-Apps finden sich auf 205 Millionen Geräten (auch wenn man das vielleicht nicht merkt, was eben gerade davon zeugt, dass Titanium seinen Job gut macht). Angesprochene  Plattformen sind iOS, Android, BlackBerry und bedingt Windows Phone. Die IDE Titanium Studio ist kostenlos, basiert auf Eclipse/Aptana und hat einen integrierten Debugger.

Titanium funktioniert im Grunde so, dass man JavaScript-Code schreibt, mit dem man auf die APIs zugreift, die Titanium zur Verfügung stellt (UI API, Phone API, Module). Eine JavaScript-Bridge (V8/JS Core) kompiliert das Ganze dann in Objective-C oder Java. Angemerkt sei: Die JS-Bridge läuft in einem einzelnen Thread. Titanium ist nicht multithreadingfähig und somit weniger für Apps mit hoher Performancelast geeignet.

Ein komplettes UI in JavaScript zu schreiben, endet wie man weiß aber schnell in Spaghetti-Code. Um dies zu vermeiden, unterstützt Titanium ab Version 3.0  CommonJS, womit man Code modular gestalten kann, und ein integriertes Speichermanagement lädt den Code nur einmal in die App.

Für sauberen Code bietet sich auch das MVC-Framework Alloy an, das UI, Applikationslogik und Datenmodelle sauber voreinander trennt. Es ist aufgebaut in plattformabhängige Assets, Applikationslogik, TSS-Styling Files mit CSS-ähnlicher Syntax und XML-Views.

Titanium kann den Projekt-Anforderungen entsprechend auch erweitert werden:

  • Es gibt einen eigenen Marketplace von Accelerator, auf dem es kommerzielle aber auch Open-Source-Module gibt, außerdem Themes und Widgets.
  • gitTio ist ein Community-Projekt, auf dem man ausschließlich Open-Source-Module findet.
  • titaniumcontrols.com ist ebenfalls ein Community-Projekt, auf dem es UI-Elemente, Module und Co. gibt.

Wer dennoch nicht fündig wird, kann Titanium auch selbst erweitern, z.B Zugriff auf nicht abgedeckte OS-Features herstellen, kritische Bereiche der App anpassen oder das Core-Framework erweitern/verbessern.

Pociots Fazit: Titanium bietet sich immer dann an, wenn man sehr schnelles Cross-Plattform Prototyping braucht, es verfügt über ein gutes Ökosystem und eignet sich bestensfür den Einstieg in die App-Entwicklung für Leute mit Web-Hintergrund.

Nachteile sind, dass die Anpassungen am Core aufwendig sind und die Performance mitunterunter Probleme machen kann.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -