Mobile App Entwicklung mit dem Sencha Touch Framework

Wenn man heutzutage Mobile Applikationen erstellen möchte, hat man mehrere Möglichkeiten. Android und iOS, sogenannte Native Entwicklungen, waren lange Zeit im Vordergrund. Immer mehr Unternehmen präferieren jedoch die Programmierung mit Sencha Touch (im Artikel kurz “ST”), da man, wenn man es einmal gebaut hat, überall funktioniert, sei es iOS, Android, Black Berry oder Windows Phone. Das ist eine enorme Erleichterung, da ein Programmieren für jede Plattform für viele Projekte zu aufwändig wäre.

Sencha Touch bietet hier eine gute Alternative. Im Beitrag ein wenig über die Möglichkeiten der Programmierung mit diesem Framework.

Wie funktioniert es?

Anstelle der üblichen Methoden (iOS, Android, Java, Objective-C), werden die Webtechnologien HTML5, CSS und JavaScript genutzt, um damit überall verwendbare Anwendungen zu schreiben.

Vom Aussehen her unterscheiden sich diese Webapplikationen kaum von ihren Nativen Pendants.

In der Anfangsversion im Jahr 2010 hat das Framework, nur Endgeräte mit Android und iOS unterstützt.

Mit den Jahren wurden dann immer mehr mobile Betriebssysteme und Mobile Browser, wie der von Android oder Google Chrome hinzugenommen.

Die MVC Architektur

Das Sencha Touch Framework folgt dem sogenannten MVC (Model-Viewer-Controller) Ansatz. Um es in einfachen Worten zu erklären: Der Backend Code und die Frontend Ansicht sind voneinander logisch getrennt. Somit ist es zum einen einfacher, Änderungen am Hintergrund-Code vorzunehmen und das Frontend fast unverändert zu lassen. Zum anderen lassen sich damit performantere Anwendungen erstellen.

Die MVC Architektur lohnt sich jedoch eher weniger für kleinere Programme.

Desktop-Version vorgesehen?

Falls in der Planung Desktop-Programme vorgesehen sind, dann eignet sich Sencha eher nicht, weil man den Grossteil des Codes nicht wiederverwenden. Das erzeugt daher zusätzlichen Aufwand.

Lizenzfrei

Das Framework ist kostenfrei erhältlich als Open Source Lizenz. Nur Hersteller von Geräten, sogenannte OEM’s (Orignial Equipment Manufacturer) müssen für diese Lizenzen zahlen.

Dokumentation und Entwicklergemeinschaft

Sencha stellt eine eigene Dokumentation bereit, welche, laut Aussagen vieler, sehr gut gestaltet ist.

Gleichzeitig gibt es eine grosse Gemeinschaft, welche in den offiziellen Foren tätig ist. Dort lassen sich Antworten zu den meisten Fragen finden. Alternativ kann man auch auf Stack Overflow vorbeischauen. Dort findet man mehre Tausend Fragen und Antworten.

Widgets, Tools, Themes

Viele Widgets, Tools und Themes erleichtern die Entwicklung mit diesem Werkzeug. Es werden zum Beispiel Themes mitgeliefert, welche sich den Nativen Plattformen anpassen. Anstatt also alles von Grund auf zu schreiben, kann man die bestehenden Themes abändern und den eigenen Bedürfnissen anpassen.

Auch die verschiedenen Widgets reduzieren die Entwicklungszeit.

Vorteile und Nachteile

In manchen Fällen lohnt sich der Einsatz von Sencha Touch.

Möchte man zum Beispiel Unternehmensanwendungen schreiben, welche mit wenig Aufwand erstellt werden sollen, dann macht es Sinn auf dieses Framework zu setzen. Es ist jedoch ein mächtiges Werkzeug, an dem auch grössere Teams gemeinsam arbeiten können.

Gleichzeitig ist diese JavaScript Framework immer noch nicht in der Lage, die gleiche Performance, wie eine Native App basierend auf Android oder iOS zu erreichen. Das liegt sicherlich auch daran, dass Touch nicht in der Lage ist, alle Mobile (Smartphone, Tablet, etc.) eigenen Hardware-Komponenten perfekt zu nutzen. Möchte man zum Beispiel ein Mobile Spiel entwickeln, welches sehr stark mit Smartphone-Hardware zusammenarbeitet, dann machen Android und iOS mehr Sinn.

Es gibt auch einige Stimmen, welche Zweifel äussern, wie langlebig dieses Framework sein wird. Auch weil die Gemeinschaft nicht so aktiv ist, wie zum Beispiel für andere Systeme.

Im allgemeinen kann man jedoch sagen, dass sich ST lohnt, wenn die Backend-Funktionalitäten nicht so elaborat sind und mehr im Frontend (Design, einfache Funktionalitäten) geschieht.

Zudem wird es für einen Webentwickler einfacher sein, sich in ST einzuarbeiten, da er/ sie in den meisten Fällen bereits mit HTML, CSS und JavaScript gearbeitet hat. Während Dinge wie Objective-C (iOS) oder Java (Android) für diese Programmierer ehrer schwieriger wird zu erlernen. Man kann sagen, dass es sehr viele Web-Spezialisten gibt, aber nur wenige Experten welche sich mit Objective-C oder Java auskennen.

Unterschied zu PhoneGap und Apache Cordova

Oftmals wird ST auch direkt mit PhoneGap verglichen und in die gleiche Kategorie gestellt.

PhoneGap kann jedoch als ergänzende Technologie gezählt werden, da es als Brücke für JavaScript Code zur Smartphone/ Tablet-internen Hardware (Mikrofon, Kamera, Batterie, etc.) genutzt werden kann. Hierfür stellt PhoneGap unterschiedliche Plugins zur Verfügung.

Hierzu muss jedoch auch gesagt werden, dass PhoneGap auch ohne ST funktioniert. So kann man einfache Apps auch mit PhoneGap schreiben. Die meisten Entwickler nutzen jedoch ein JavaScript Framework wie Sencha Touch, AngularJS oder jQuery Mobile zusammen mit PhoneGap.

Nun zu Cordova. PhoneGap und Cordova sind im Grunde genommen das Gleiche. Die Firma Adobe kaufte die von der Firma Nitobi hergestellte Cordova Lösung und gab ihr den neuen Namen PhoneGap. Adobe entschied sich zudem die PhoneGap Lösung an die Apache Software Foundation zu spenden. So kam der Name Apache Cordova zustande.

Unterschiede zwischen PhoneGap und Cordova gibt es trotzdem. PhoneGap ist heute zum Beispiel eine Distribution von Apache Cordova.

Möchte man zudem am Open Source Projekt teilnehmen, dann ist Apache Cordova die Anlaufstelle. PhoneGap ist wiederum das Werkzeug, um die Applikationen zu erstellen.

Sencha versus Ionic, AngularJS, jQuery Mobile

ST, Ionic und jQuery Mobile haben alle in etwa den gleichen Zweck und sind Wettbewerber.

ST war lange Zeit das beliebteste Framework. Das hat sich mittlerweile jedoch geändert. Mehr und mehr Experten setzen auf Ionic.

Auch jQuery Mobile ist heutzutage nicht mehr wirklich beliebt.

Ionic baut auf AngularJS und Apache Cordova auf. Wobei AngularJS ein relative neues und beliebtes JavaScript Framework ist, um Single-Page-Applikationen (dazu gehen wir in einem anderen Beitrag näher ein) zu programmieren.

Fazit

ST wird heutzutage immer mehr von Ionic verdrängt.

Die Erfahrung vieler Experten zeigt zudem, dass egal mit welchem JavaScript Werkzeug man arbeitet, man nicht an die gleiche Performance wie mit Nativen Systemen, wie iOS oder Android, herankommt.

Man muss also schon genau abwägen, was man genau erstellen möchte, nur danach sollte man sich hinzu einem der Mobilen Frameworks bewegen. Besonders für einfache Aufgaben lohnt es sich. Zum Beispiel für eine Lösung mit vielen Bildern und Text und wenig Zugriff auf Hardware-Funktionalitäten und es gleichzeitig auf allen Betriebssystemen (iOS, Android, WindowsPhone, etc.) laufen soll.

Welche Erfahrungen haben Sie gemacht?

Disclaimer: YUHIRO stellt auch Programmierer im Bereich ST, Ionic und Cordova bereit. Die Abwägung, ob eine Arbeit mit diesen Technologien Sinn macht, muss jedoch der Kunde (die Agentur/ Softwareunternehmen/ IT Abteilung) treffen.

Interessante Links:
ST auf Wikipedia erklärt
Mehr Informationen zu Sencha Touch auf der offiziellen Webseite
Eine Liste mit interessanten Hybrid App Frameworks

Bilder: Flick.com/ Creative Commons/ Hobson/ JD Hancock/ MeeGo/ Iglesias


Der Autor: Sascha Thattil arbeitet bei YUHIRO und hilft Unternehmern und Unternehmen beim einfachen Aufbau von Programmier-Teams in Indien. YUHIRO ist ein deutsch-indisches Unternehmen welches IT Firmen, Agenturen und IT Abteilungen Softwareentwickler bereitstellt.

Schreibe einen Kommentar