Die Performance mobiler Apps zu verbessern ist einfacher als Sie denken

Das Verbessern der Performance mobiler Applikationen ist weniger dramatisch als Sie denken. Wir geben Ihnen Tipps und Ratschläge zu diesem Thema.

Crystal Bedell

Oberflächlich gesehen ist das Performance-Management mobiler Applikationen ziemlich knifflig. Es gibt viele Variablen, die der Entwickler nicht direkt unter seiner Kontrolle hat. Diese wiederum können die Performance mobiler Apps negativ beeinflussen. Das Resultat hinterlässt beim Anwender meist einen schlechten Eindruck. Experten sind allerdings der Meinung, dass sich die Herausforderung relativ einfach meistern lässt. Dazu müssen Entwickler einige Prinzipien bezüglich mobiler App-Entwicklung und -Performance verstehen lernen.

„Mobile und Performance kann ein furchteinflößendes Thema sein und dafür gibt es eigentlich gar keinen Grund“, sagte Scott Barber, Präsident und CTO der Software-Performance-Testing-Firma und des Service-Providers Palm Bay. „Solange Sie nicht wissen, wie Sie damit umgehen müssen, ist es natürlich herausfordernd. Ich würde allerdings sagen, dass es wesentlich weniger kompliziert ist, als die meisten denken.“

Die Performance-Herausforderungen bei mobilen Apps

„Wir machen uns bei diesen Performance-Herausforderungen das Leben selbst schwer. Wir versuchen einfach die Performance von Desktops und Notebooks aus diesen weit schwächeren Geräten herauszuholen“, sagte Barber.

„Die größte Herausforderung bei der Entwicklung einer Applikation liegt darin, dass sie sich wie eine PC-Applikation verhalten soll, aber auf einer mobilen Plattform läuft“, sagte der Software-Architekt Nazmi Savga von Imprezzio Global.

Barbar sagt: „Es ist noch nicht allzu lange her, als die Art wie wir grundsätzlich Software erstellten und ausrollten, ähnlich war wie der gedachte Prozess, den wir heute auf mobile Anwendungen übertragen müssen.“

Der Technologie-Stratege von Compuware Corp. Stephen Pierzchala stimmt der Sachlage zu: „Für Mobile-Web- und native mobile Applikationen gilt das Gleiche, was wir auch in den vergangenen Jahren für den Desktop praktiziert haben: Kenne Deine Zielgruppe.“

Die Zielgruppe studieren

Mit der Zielgruppe für mobile Applikationen, meint Pierzchala: Welche Browser, welche Betriebssysteme, welche Geräte-Typen und welche Verbindungen verwenden Ihre potentiellen Kunden? All diese Faktoren beschränken möglicherweise Ihre Applikation. Je früher Sie das im Entwicklungs-Prozess wissen, desto besser.

Im Idealfall machen sich Teams zunächst in der Konzept-Phase Gedanken über die Zielgeräte auf denen die App laufen soll, sagte Barber. Er gibt aber auch zu, dass dies nicht immer leicht ist. Ist der Entwicklungs-Zyklus sechs Monate lang, müssen Sie sich überlegen: Entwickle ich für bestehende Geräte oder für künftig auf dem Markt erscheinende?

„Jeder möchte natürlich für die neusten und besten Geräte entwickeln und später wird dann entschieden, ob Rückwärtskompatibilität gerechtfertigt ist. Und genau hier erschaffen Sie einen Alptraum“, fügte Barber an. „Entscheiden Sie sich in diesem Bereich gleich am Anfang, gibt es Hoffnung. Verschieben Sie das auf das Ende, schießen Sie sich ins eigene Knie.“

Die Funktionen und Möglichkeiten für die neuesten Plattformen gibt es möglicherweise in älteren Versionen oder auch Plattform-übergreifend nicht. „Ein Software-Architekt sollte sich sehr schnell klar werden, auf welchen Plattformen die Applikation laufen wird“, sagte Savga. „Weiterhin muss er sich bewusst sein, dass es sich verglichen mit einem PC um eine eingeschränktere Plattform mit Schwächen handelt - wie zum Beispiel in den Bereichen Arbeitsspeicher und Speicherplatz“, fügte er an.

Barber hat die Herangehensweise mit Web-Entwicklung verglichen. Hier entschieden die Entwickler auch bereits am Anfang, welche Betriebssysteme und Browser unterstützt werden. „In gewisser Hinsicht ist das ein altmodisches Konzept“, sagte er.

Stehen Netzwerk-Aufrufe im Weg?

Ein weiterer Performance-Tipp für mobile Applikationen wird erfahrenen Entwicklern bekannt vorkommen: Netzwerk-Aufrufe immer in einen Hintergrund-Prozess verlagern. Matt Vaslach, Leiter der Mobile Integration Services bei Unwired Revolution, erklärte: „Seien Sie extrem vorsichtig mit Netzwerk-Operationen. Diese dürfen auf keinen Fall das User Interface (UI) während der Antwortzeit blockieren. Legen Sie Netzwerk-Aufgaben in den Haupt-Thread, wird die Applikation bis zur Antwort einfrieren. Verwenden Sie deswegen asynchrone Web-Requests.“

Vaslach sagte, dass man so auch bei der Entwicklung einer Web-Applikation herangehen würde. „Faustregel ist: Blockieren Sie den Anwender nicht, während er auf eine Antwort aus dem Netz wartet. Das ist zwar komplizierter und mit mehr Zeitaufwand während der Entwicklung verbunden, aber die Anwenderfreundlichkeit wird dadurch enorm erhöht“, fügte er an.

Darstellung von Logik und Daten trennen

Savga rät Entwicklern und Architekten, sich die drei Ebenen eines Systems zu verinnerlichen: Die Darstellung oder die Anwenderoberfläche, die Prozess-Schicht und die Daten-Ebene. Danach sollte man die Komponenten für die einzelnen Schichten sorgfältig ausarbeiten. „Eine Funktion im Code sollte in keiner anderen Schicht vorkommen“, sagte er. Somit wird die Wartung des Codes einfacher und es wirkt sich positiv auf die Performance aus.

Wenn wir über die Anwenderoberfläche von mobilen Applikationen sprechen, müssen sich Architekten über die Bildschirmgröße Gedanken machen und wie man die App präsentiert. Wenn man ein gemeinsames Layout für alle möglichen Auflösungen benutzt, passen sich die UI-Änderungen anhand dieser an, Das wird die Performance der Applikation beeinflussen.

„Am sinnvollsten ist es, verschiedene Layouts für unterschiedliche Bildschirmgrößen zu erschaffen. Die Applikation schaltet, dann automatisch je nach Bildschirmgröße um. Sollten Sie das mit einem einzelnen Layout für alle Auflösungen versuchen, bekommen Sie Performance-Probleme“, sagte Savga.

Somit sind wir bei den Prinzipien zurück, mit denen wir angefangen haben: „Kennen Sie Ihre Zielgruppe und die Einschränkungen. Dann können Sie die Inhalte so ausliefern, wie es Ihren Kunden entgegenkommt“, sagte Pierzchala.

Über den Autor: Crystal Bedell ist eine freiberufliche Autorin zu technischen Themen. Neben Applikations-Entwicklung schreibt Sie auch über Cloud Computing und Informations-Security. Kontaktieren Sie Crystal Bedell via LinkedIn oder E-Mail.

Erfahren Sie mehr über Softwareentwicklung

- GOOGLE-ANZEIGEN

ComputerWeekly.de

Close