12+ Jahre App-Entwicklung
Schnell mit KI, stark durch Erfahrung
50+ Erfolgreiche App-Projekte

Blog

iOS 7 konforme Apps

Das Jahr 2013 endete mit einem großen Knall. Neben dem typischen Silvester-Feuerwerk gab es für mich und viele andere noch eine E-Mail aus Cupertino, die gerade für Januar einiges an Arbeit bedeuten konnte. Die Ankündigung von Apple ab dem 01.02.2014 nur noch Apps in den App-Store zu lassen, die iOS 7 konform sind war schon erstaunlich. Nicht wegen der Ankündigung an sich, sondern vielmehr wegen dem kurzen Zeitraum.

Ich habe die vergangene Woche, speziell den Donnerstag, genutzt, und mich mit dem Thema näher beschäftigt, um in Erfahrung zu bringen, von welchen Aufwänden im Allgemeinen auszugehen ist. Klar bleibt aber auch, dass es stark von der App abhängig ist.

Erste Anlaufstelle: Transition Guide

Über die Besonderheiten der iOS 7 Designsprache konnte man schon früh viele persönliche Meinungen von gut über schlecht lesen. Gemeinsam haben wohl alle einen kleinen Kulturschock erlebt. Auf der Suche nach dem was Apple als konform ansieht, bin ich auf Apples iOS 7 Transition Guide gestoßen, der die wichtigsten Punkte anspricht. Das Dokument könnt ihr hier finden.

Der Bereich "Scoping the Project" gab mir Entwarnung, da ich im Allgemeinen ehr Daten-getriebene Apps für meine Kunden entwickelt habe und weil die Anforderungsliste unter "Things Every App Must Do" besonders klein ausfällt.

Neue Icons reichen nicht

Zwei von drei Aufgaben, die eine App unbedingt erfüllen muss, sind grafischer Natur, die vorsehen angepasste Grafiken für Icons und Startscreen zu liefern.

Der nächste Schritt sah für mich so aus, dass ich die App mit dem iOS 7 SDK kompiliert habe. Schnell wird dabei ersichtlich: Nur das Aktualisieren der Icons reicht nicht aus. Das nachfolgende Bild zeigt, dass sich die Navigation und die Statusleiste über die Liste mit Einträgen legt. Die Navigation ist zudem nicht mehr schwarz, wie auf der linken Seite unter iOS 6.

Vergleich Navigation iOS6 und iOS 7

Der Grund dafür ist das iOS 7 dem Inhalt mehr Raum geben möchte. Deshalb bekommt die App nun die vollen zur Verfügung stehenden Bildschirmabmessungen und die Navigations- sowie Statusleiste werden über dem Inhalt eingeblendet.

Mögliche Lösungswege

Davon ausgehend, dass ich kein Xcode zum Erstellen meines Layouts verwende, gibt es meiner Meinung nach zwei mögliche Lösungswege. Der Erste bedeutet, dass man die Positionsangaben aller Controls anpasst. Das kann schon mal aufwendiger werden.

Ich bevorzuge den zweiten Weg. Denn mit iOS 7 steht uns Entwicklern die Eigenschaft EdgesForExtendedLayout zur Verfügung. Man kann damit bestimmen, wie die App das Layout bereitstellen soll. Auf diese Weise lassen sich bereits grobe Darstellungsfehler beheben. Gegebenenfalls müssen nun nur noch einzelne, gerade im unteren Bereich des Screens befindliche Controls anders positioniert werden. Folgender Code bringt Abhilfe:

int SystemVersion = Convert.ToInt16 (UIDevice.CurrentDevice.SystemVersion.Split ('.') [0]);
if (SystemVersion >= 7)
{
	EdgesForExtendedLayout = UIRectEdge.None;
    NavigationController.NavigationBar.BarStyle = UIBarStyle.Black;
}

Mit der Prüfung auf iOS 7 vermeidet man, daas die App auf älteren Geräten abstürzt. Damit die Navigationsleiste nun auch wieder schwarz dargestellt wird hilft NavigationController.NavigationBar.BarStyle = UIBarStyle.Black; weiter.

Berichtigte Navigation

Fazit

Ich für meinen Teil empfinde den Aufwand eine bestehende App auf iOS 7 Design anzupassen inzwischen nicht mehr so aufwändig. Dabei ist mit schon klar, dass eine stärker im Design modifizierte App mehr Aufwand bedeutet. Die Möglichkeiten sich aber ähnlich sind. Xamarin dachte sich wohl am Donnerstag das Gleiche und hat einen Artikel zum Thema veröffentlicht. Für mich kam er auf Grund der Zeitverschiebung allerdings zu spät.

Solche Design-Umstellungen gehören zum Alltag in der iOS App Entwicklung und zeigen, wie wichtig es ist, Updates des Betriebssystems von Anfang an in der Projektplanung mitzudenken.

Sebastian Seidel

Sebastian Seidel

Als Mobile-Enthusiast und Geschäftsführer der Cayas Software GmbH ist es mir ein großes Anliegen, mein Team und unsere Kunden zu unterstützen, neue potenziale zu entdecken und gemeinsam zu wachsen. Hier schreibe ich vor allem zur Entwicklung von Android und iOS-Apps mit Xamarin und .NET MAUI.

Verwandte Artikel

Bluetooth LE mit .NET MAUI entwickeln: LEGO Porsche GT4 als Praxisbeispiel
Bluetooth LE mit .NET MAUI entwickeln: LEGO Porsche GT4 als Praxisbeispiel

Bluetooth Low Energy mit .NET MAUI: Dieser Artikel zeigt, wie sich BLE-fähige Geräte plattformübergreifend für Android und iOS ansprechen lassen. Als Praxisbeispiel dient der LEGO Porsche GT4 e-Performance mit dem offiziellen LEGO Wireless Protocol, inklusive Hub-Service, Port-Erkennung und Motorsteuerung.

Erweitere deine Xamarin.iOS-App mit OpenStreetMap

Kartenfunktionen sind im mobilen Bereich ein wichtiges Feature. Kaum eine App gewinnt nicht an Wert, wenn sie Karten darstellen kann. Apple und Google machen mit ihren Map-SDKs vieles richtig, aber manchmal stößt man an Grenzen - sei es aus rechtlichen Gründen oder wegen eines Bugs. In meinem Fall war Letzteres der Auslöser. Ich brauchte außerdem eine Alternative, die auch offline funktioniert.

Ein BeeWi-Auto mit Xamarin iOS steuern

Lerne in 5 einfachen Schritten, wie Bluetooth und das External Accessory Framework zusammenspielen, um ein BeeWi-Auto mit Xamarin.iOS zu steuern.