Fotolia

Grundlagen der App-Entwicklung für Apple iOS: iOS-Apps optimal entwickeln

Die Entwicklung von iOS-Apps ist ein mehrstufiger Prozess, der mit der Wahl der richtigen Sprache beginnt und mit einer nutzerfreundlichen App endet.

Die Entwicklung nativer Apple-iOS-Apps ist eher ein Hindernis-Parcours als ein Spaziergang im Park. Mehrere Voraussetzungen sind notwendig, um erfolgreich iOS-Apps zu bauen: Entwickler müssen die integrierte Entwicklungsumgebung (IDE) von Apple beherrschen und ihren Programmcode entweder mit der Programmiersprache Swift oder mit Objective-C schreiben. Sie müssen die grundlegenden Abstraktionsschichten verstehen, die iOS definieren, und sie müssen wissen, wie die App-Dateien gebündelt sind.

Um eine App erfolgreich zu starten, ist zudem eine effektive Benutzeroberfläche (UI) zu bauen, die die User Experience (UX) auf allen Ebenen verbessert.

Xcode IDE

Theoretisch können Entwickler iOS-Anwendungen unter Verwendung von Cross-Plattform-Frameworks bauen. Allerdings ist die Xcode IDE von Apple (aktuell Version 8) das effizienteste und umfassendste iOS-Application-Development-Tool, das zur Verfügung steht. Xcode kann gratis heruntergeladen werden, funktioniert aber nur auf einem Mac mit OS X Yosemite oder höher.

Das Apple-Werkzeug enthält alle Funktionen, die Entwickler brauchen, um eine iOS-App zu entwerfen, zu bauen und zu debuggen. Sie können damit auch Anwendungen für Mac OS X beziehungsweise macOS, die Apple Watch (watchOS) und Apple TV (tvOS) bauen. Xcode stellt die Editoren und Funktionen bereit, die notwendig sind, um mit dem Code und den Interface-Elementen zu arbeiten sowie die Dateien zu organisieren, die die App bilden, und es enthält Vorlagen für die Entwicklung der üblichen App-Typen.

Xcode umfasst auch Tools wie den iOS-Simulator, der bestimmt, wie eine App auf den verschiedenen Geräten aussehen und sich verhalten wird. Die Auto-Layout-Funktion entwirft Apps, die sich automatisch an verschiedene Gerätegrößen anpassen. Entwickler können Storyboards verwenden, um visuelle Darstellungen einer App-Schnittstelle zu erzeugen, und dann die Gliederungsansicht für eine hierarchische Darstellung der Objekte verwenden.

Objective-C versus Swift

Vor 2014 verwendeten Entwickler, die eine iOS-App in Xcode bauten, Objective-C. 2014 stellte Apple dann auf Swift um. Die Sprache wird damit beworben, dass sie leichter zu erlernen und besser zu handhaben ist, wenn es darum geht, mit den Feinheiten der iOS-Anwendungsentwicklung umgehen zu können.

Entwickler, die eine bestimmte Sprache auswählen müssen, nehmen in der Regel diejenige, die sie bereits kennen. Allerdings gibt es weitere Faktoren, die bei der Wahl einer Sprache berücksichtigt werden sollten. Wenn sie zum Beispiel Apps für eine ältere Version von iOS entwickeln oder mit C#-Bibliotheken arbeiten, dann sollten sie besser Objective-C nehmen.

Swift gewinnt allerdings derzeit immens an Popularität; deshalb sollten Entwickler auch diesen Faktor berücksichtigen.

Die iOS-Architektur

Entwickler können sich iOS als ein Betriebssystem in vier Abstraktionsschichten vorstellen, die seine Architektur definieren:

  • Cocoa Touch: Unterstützt die grundlegende App-Infrastruktur und liefert wichtige Anwendungs-Frameworks wie Push-Benachrichtigungen, Multitasking und Touch-basierte Eingabe.
  • Medien: Ermöglicht der App die Nutzung von Audio-, Video- und Grafikfunktionen.
  • Core Services: Hier finden Entwickler grundlegende Systemdienste wie die Core Foundation und das Foundation Framework. Diese Schicht unterstützt auch Funktionen wie Standort- und Netzwerkdienste.
  • Core OS: Bietet Dienstleistungen wie Sicherheit, lokale Authentifizierung und Core-Bluetooth-Frameworks.

Apple empfiehlt Entwicklern, Code – wann immer möglich – für die höchste betreffende Schicht zu schreiben und die untergeordneten Frameworks nur für die Eigenschaften zu nutzen, die auf den höheren Ebenen nicht verfügbar sind.

Mehr als nur Codierung

Obwohl das Schreiben von Code grundsätzlich das Herz der iOS-App-Entwicklung bildet, dürfte dies am Ende der leichteste Teil des gesamten Application Lifecycles sein.

Um Probleme zu identifizieren und zu beheben, müssen Entwickler ihren Code testen und überprüfen. Xcode enthält einen Debugger, der Entwickler dabei unterstützt, Probleme zu lokalisieren und den Kontrollfluss sowie die Datenstruktur zu untersuchen, um dann ihren Code entsprechend zu revidieren.

Das Anwendungspaket

Jede iOS-App wird in ein Bundle verpackt, ein Dateisystemverzeichnis, das eine Reihe von miteinander verknüpften Ressourcen enthält. Im Herzen des Pakets befindet sich die App als ausführbare Datei, die den kompilierten Code enthält – der Dateiname für die ausführbare Datei ist der gleiche wie der Name für die App, ohne die Erweiterung .app.

Mehr zum Thema App-Entwicklung:

Acht Kriterien für die Auswahl von Mobile-App-Entwicklung-Tools.

App-Entwicklungs-Frameworks und -Plattformen erleichtern Entwicklern das Leben.

Oracle stößt mit Mobile Cloud Service in den App-Entwicklungsmarkt vor.

Mobile Apps mit Cross-Plattform-Entwicklungs-Tools entwickeln.

AWS Mobile Hub bietet verschiedene Services für App-Entwickler.

Das Paket enthält auch eine Datei mit Informationen zu den Property-Listen. Diese beinhalten Metadaten, die das Betriebssystem verwendet, um mit der App sowie mit den Storyboard-Dateien, die die Schnittstelle auf den Bildschirm bringen, zu interagieren. Das Bundle enthält auch Bild-, Ton- und Videodateien, einschließlich der Home-Screen-Icons und der temporären Bilder, die verwendet werden, wenn die Anwendung geladen wird.

Zu den anderen Dateitypen, die ebenfalls noch in dem Paket enthalten sind, gehören benutzerspezifische Datendateien und lokalisierte Ressourcendateien, die in eigenen, sprachspezifischen Sub-Directories abgelegt werden. Entwickler können auch eine optionale Bundle-Datei einbinden, die App-Einstellungen definiert. Die Einstellungen-App verwendet diese Datei, um die Elemente der App-UI zusammenzubauen.

Nutzeroberfläche und User Experience

Eine iOS-App ist viel mehr als ein Paket einzelner Dateien. Um eine App erfolgreich zu starten, müssen die Entwickler das Design der Nutzeroberfläche (UI) und die User Experience (UX) bei jedem Schritt auf dem Weg zum Endprodukt im Auge behalten.

Die Benutzer der App sollten den Content sehen, ihn verstehen und mit ihm interagieren können, ohne ständig scrollen oder zoomen zu müssen – der Text muss deshalb immer lesbar sein. User sollten auch Touch-Funktionen jederzeit nutzen und Aufgaben mit möglichst wenigen Schritten ausführen können.

Folgen Sie SearchEnterpriseSoftware.de auch auf Twitter, Google+ und Facebook!

Erfahren Sie mehr über Mobile Apps und Entwicklung

ComputerWeekly.de
Close