Macoun 2012: Mac- und iOS-Entwickler-Treffen mit Live Coding

Seite 4: Syncen ohne iCloud

Inhaltsverzeichnis

Eine immer wichtigere und zugleich besonders haarige Aufgabe hatten sich Ingo Kasprzak und Peter Hauke gestellt: das Syncen von Core Data Clients. Sie zeigten im Detail, wie sie mit möglichst geringen Eingriffen in den vorhandenen Code NSManagedObjects zwischen iOS-Geräten synchronisieren. Da sie die Technik für Spiele brauchen, konnten sie die Transportaufgaben an das Game Kit von Apple delegieren – eine elegante Lösung. Ganz ohne Änderungen geht es allerdings nicht, so braucht jede Entität zusätzlich eine eindeutige ID sowie Erzeugungs- und Änderungsdaten. Als Demo zeigten sie ein Tic-Tac-Toe-Spiel: iPhone gegen Simulator.

Wie aufwendig das Drumherum bei größeren Projekten ist, zeigte der Vortrag von Felix Schulze zu Continuous Integration (CI) mit iOS. Bei ImmobilienScout24 läuft ein CI-Server mit einem Build-Cluster aus mehreren Mac minis. Dazu verwendet das Team Maven für die Build-Steuerung, GH-Unit und OCMock für Unit-Tests, KIF (Keep It Functional) für Integrationstests, einen internen App Store zum Verteilen von Beta-Versionen und die Hockey-App für Beta-Updates und Crash-Reports. Das Ganze wird durch selbstgeschriebene Xcode- und Maven-Plug-ins zusammengehalten. Ein erheblicher Aufwand, der zwar nichts zur Produktfunktionalität beiträgt, jedoch für die Produktqualität entscheidend sein kann.

Im Vortrag von Felix Schulze ging es um Continuous Integration bei komplexen Projekten.

Der Kreis schloss sich mit Martin Winters Vorstellung der Storyboards in iOS, die ebenso wie Auto Layout eine recht neue Apple-Technik sind. Storyboards fassen mehrere Views mit ihren Controllern zusammen und definieren die Übergänge zwischen ihnen (Segues in Englisch). Martin ließ uns einen Blick auf ein wirklich großes Storyboard werfen, das er für ein früheres Projekt gebaut hatte. Er empfahl aber, statt eines großen, monolithischen Storyboards besser mehrere, nach Funktionsgruppen getrennte zu verwenden. Das verringere auch potenzielle Merge-Probleme in Teams, da Apple leider wieder ein XML-Format mit Zufallsreihenfolgen verwendet hat, das sich praktisch nicht automatisch mergen lässt. Auch Martin ließ sich auf das Abenteuer Live Coding ein, kämpfte dabei mit einer ungewohnten Tastatur und zeigte trotzdem souverän, wie ein Storyboard in Xcode entsteht und die Segues definiert werden. Gerade für schnelle Prototypenentwicklung sind Storyboards eine große Hilfe.