Ihre Entwickler arbeiten in unserer Niederlassung in Indien

App Entwicklung mit PhoneGap: Unsere Erfahrung

App Entwicklung mit PhoneGap: Unsere Erfahrung

Hybride Apps sind stark im kommen. Auch weil man die Programmierung nicht für alle Systeme (Android, iOS, WindowsPhone, etc.) separat machen muss, sondern nur einmal und sich somit einiges an Aufwand erspart.

PhoneGap (im Beitrag auch kurz “PG” genannt) ist eines der beliebtesten Werkzeuge um solche Hybrid Apps oder Cross-Mobile-Apps zu erstellen.

Im Beitrag einige Informationen zu PhoneGap, die Vorteile und Nachteile und wann es Sinn macht damit zu entwickeln.

Einführung

Das Non-Plus-Ultra der App Entwicklung ist immer noch die Programmierung auf Basis von iOS und Android. Besonders die Performance, bei diesen sogenannten “Nativen”-Technologien, ist immer noch am höchsten.

Dennoch gibt es eine grosse Herausforderung bei solchen nativen Projekten. Um viele Nutzer zu erreichen, muss man für jede Plattform separat programmieren. Es kann sein dass man mehrere Entwickler dafür benötigt. Eine Person für iOS, eine für Android, eventuell eine für Windows und zusätzlich einen Webentwickler, welcher das Online-Backend erstellt.

Der Aufwand lohnt sich in vielen Projekten nicht.

Der Bedarf, alles in einer Programmierung fertigzustellen ist hoch. Das ist der Punkt an dem die Hybride Mobile Entwicklung, basierend auf Technologien wie PhoneGap, aufsetzt.

Anstatt für die Betriebssysteme einzeln zu entwickeln, wird mit HTML, CSS und JavaScript – eine – Software erstellt, die auf allen Betriebssystemen läuft.

Mit HTML und CSS werden die Frontend-Funktionalitäten (das was der Nutzer sieht) umgesetzt und mit JavaScript wird auf die Hardware-Komponenten des Mobilen Gerätes (Speicher, Fotokamera, etc.) zugegriffen.

Anwendung im Browser

Die Anwendung läuft im Browser des jeweiligen Mobilen Gerätes/ Betriebssystems.

PhoneGap sorgt dafür, dass der Browser so wirkt wie eine App und weniger wie eben ein Browser.

Der Nutzer erhält hierdurch das Gefühl, dass er/ sie eine Mobile App nutzt und nicht eine Web-Anwendung.

Hier einige Vorteile und Nachteile von PhoneGap.

Vorteile

Die Vorteile sind vielfältig. Hier eine Auflistung:

Weniger Entwicklungsaufwand

Wie bereits erwähnt, sinkt der Entwicklungsaufwand, wenn man mit dieser Technologie arbeitet.

Anstatt mehreren Experten braucht man nur einen Programmierer.

Einfacher zu erlernen für Webentwickler

Für alle Webentwickler, welche bereits mit HTML, CSS und JavaScript gearbeitet haben, fällt das Einarbeiten in diese Technologie einfacher.

Gleichzeitig gibt es im Bereich Webentwicklung viel mehr Experten, als dies im Bereich Native Programmierung (auf Basis von Android oder iOS zum Beispiel) der Fall ist.

Läuft auf fast allen Plattformen

PhoneGap unterstützt iOS, Android, Windows Phone 7 und 8, Windows 8, Blackberry, WebOS, Symbian und Tizen.

Fast alle, im Umlauf befindlichen, Mobil-Geräte werden daher angesprochen.

Frontend-Frameworks für die einfachere Entwicklung mit HTML und CSS vorhanden

PG ist weniger Frontend-lastig und beschäftigt sich eher mit den Hardware-nahen Funktionalitäten, wie der Kamera, Touch, Speicher, etc. Wenn man ein gutes Frontend/ Design erstellen möchte, dann braucht es sehr gute Kenntnisse in HTML und CSS.

Wer sich die Arbeit einfacher machen möchte, kann auf Frontend-Frameworks setzen. Einige beliebte hiervon sind:

  • jQuery Mobile
  • Ionic
  • Sencha Touch
  • Kendo UI Complete

Diese vereinfachen die Erstellung von ansprechenden Benutzer-Oberflächen.

Besonders Ionic setzt sich gerade durch. Im Enterprise-Bereich ist KendoUI beliebt.

Nachteile

Die weniger positiven Bereiche von PG sollen in diesem Beitrag nicht unerwähnt bleiben.

Performance niedriger als bei Native

Das grosse Hindernis ist immer noch die Performance.

Sogar grosse Unternehmen wie Facebook haben initial mit einer Hybriden Entwicklung angefangen, nur um dann später auf eine Native Anwendung auf Basis von Android und iOS zu wechseln.

Besonders wenn durch die App viele Hardware-nahen Eigenschaften genutzt werden, leidet die Performance von PhoneGap Anwendungen stark.

So sollte man zum Beispiel eine Gaming-Anwendung besser auf den Nativen Plattformen erstellen, da hier, in den meisten Fällen, sehr stark auf die “Touch”-Funktionalität gesetzt wird. Die Reaktions-Zeit wäre bei PG höchstwahrscheinlich nicht ausreichend.

Nicht alle Hardware-Komponenten nutzbar

Der Umweg über JavaScript ist nicht immer einfach. Oftmals ist ein grosser Mehraufwand notwendig, um wirklich alle Hardware-Komponenten eines Mobilen Gerätes nutzen zu können.

Native Plattformen sind im Gegensatz dazu, gerade – darauf – ausgerichtet, um die Hardware der Mobilen Systeme zu nutzen.

Kleine Änderungs-Massnahmen für jede Plattform notwendig

Auch wenn es heisst, dass man nur einmal entwickeln muss und es dann theoretisch überall läuft, ist dem nicht unbedingt so.

Für alle Betriebssysteme müssen in den meisten Fällen Anpassungen vorgenommen werden.

Hoher Testing Aufwand

Auf allen Plattformen muss zudem ein umfangreiches Testing durchgeführt werden, um eventuelle Bugs/ Fehler zu entdecken.

Die Technologie ist nicht immer auf dem neuesten Stand

Wenn man eine App für die neueste Version einer Mobilen-Plattform, wie zum Beispiel iOS, erstellen möchte, dann muss man oftmals einige Zeit warten. Denn PG ist oftmals eine Version älter, als die neuste Version des Betriebssystems.

Wann ist PG sinnvoll?

PhoneGap kann in einigen Fällen sehr sinnvoll sein.

Hier einige Szenarien:

  1. App nutzt nur wenige Hardware-eigenen Komponenten: Einige Anwendungen müssen nicht ständig auf die Hardware der Mobile-Geräte zugreifen. Hier passt PG.
  2. Wenn Performance kein Erfolgsfaktor ist: In einigen Fällen, muss die App nicht unbedingt flüssig laufen. Dies kann verschiedene Gründe haben. Beispielsweise wenn der Anwender nicht unter Zeitdruck steht oder es sich nicht anders gewohnt ist.
  3. Wenn das Budget niedrig ist: Besonders bei kleinen Budgets kommt eine Programmierung auf Basis von Android und iOS und weitere Plattformen nicht in Frage. Hier kann eine Hybride Anwendung die richtige Lösung sein.

Alternative Technologien

Eine wirkliche Alternative zu PhoneGap gibt es derzeit nicht. Es gibt zwar AngularJS, Ionic, Sencha Touch, etc. Dies sind jedoch eher Ergänzungen zu PG, als Alternativen.

Eine andere Technologie, welche nicht auf HTML/ CSS/ JavaScript basiert, jedoch auf den meisten Plattformen arbeitet ist Xamarin. Auch mit Xamarin lassen sich mit der gleichen Code-Basis Mobile Anwendungen erstellen. Für die Entwicklung mit dieser Plattform muss man jedoch Kenntnisse in der Programmiersprache C# und den Technologien Android und iOS haben.

Fazit

Nicht alle Anwendungen müssen separat für alle Plattformen umgesetzt werden. In vielen Fällen reicht eine Programmierung auf Basis von PG, welche dann überall läuft.

Die Entscheidung für oder gegen PG muss man anhand der Kriterien “Performance” und “Intensität der Hardware-Nutzung” treffen. Auch die weiteren Punkte in diesem Beitrag sollten beachtet werden.

Besonders für Personen und Unternehmen welche sich bereits mit Webtechnologien (wie HTML/ CSS/ JavaScript) auskennen, kann PhoneGap eine gute Lösung sein, um App Programme zu erstellen.

Was ist Ihre Erfahrung?

Interessante Links:
Erfahrungsbericht zur Hybrid App Programmierung
Cross Plattform Anwendungen mit PhoneGap

Bilder: Flickr.com/ Sonin/ Iglesias/ Monito


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.

Artikel teilenShare on FacebookTweet about this on TwitterShare on Google+Share on LinkedInEmail this to someone
Kommentar hinterlassen

Adresse

YUHIRO Entwicklungszentrum
Thattil Nadakalan Complex
(Opp. Church) Kuriachira
Thrissur, Kerala - 680006, Indien
Phone: +91 9846861166
Webseite: www.yuhiro.de
Email: info@yuhiro.de

YUHIRO

Wir arbeiten eng mit Ihnen zusammen um Ihre Anforderungen zu verstehen und daraufhin den richtigen Softwareentwickler für Sie zu finden und bereitzustellen.