Let's talk about iOS architecture & DevOps!


Details
Hey Tech Heads, heute möchten wir mit euch über die Details guter App-Architektur in iOS sowie die Entwicklung nach DevOps-Prinzipien in iOS sprechen.
In einem ersten Vortrag gehen Oliver & Stefan auf die konsequente Verwendung von NSOperations ein, mit denen man den Code für jeden einzelnen Task kapseln kann. Danach stellt Sebastian die nötige Infrastruktur und Provisionsierungs-Tools vor, um iOS-Anwendungen nach DevOps-Prinzipien zu entwickeln.
Beide Vorträge werden untermauert von Erfahrungen aktueller Projektentwicklungen.
Vor dem Büro sind kostenlose Parkplätze vorhanden – für reichlich Pizza & Getränke ist gesorgt.
Vorläufiger Zeitplan
18.30 Uhr – Doors Open
19 Uhr – Oliver Bayer: iOS Best Practices
19.45 Uhr – Pizza & Networking
20.30 Uhr Sebastian Meßingfeld: Continuous Delivery einer iOS-App mit gitlab-ci und fastlane
Abstracts
Oliver Bayer & Stefan Engel (dm): iOS Best Practices – Divide and Conquer mit NSOperations
Änderungen sind unvermeidlich, gerade in mobilen Applikationen. Seien es nun Anforderungen, die sich über die Zeit weiterentwickeln, Backends, die sowohl aus dem WLAN als auch aus schlechten mobilen Datenverbindungen heraus angesprochen werden, kurzlebige Authentifizierungstokens, oder auch Einschränkungen des Betriebssystems. Soll all das für den Benutzer der App transparent umgesetzt werden und dabei die Architektur flexibel und schlank bleiben, sollte dies bereits beim Planen und Entwickeln der App berücksichtigt werden.
Teile und herrsche: Es gilt, die Komplexität der Anforderungen soweit zu teilen, dass diese für sich genommen beherrschbar werden. Getreu der Unix-Philosophie – do one thing and do it well.
In einem unserer letzten Projekte, das in Zusammenarbeit mit dm Filiadata GmbH & Co. KG entstand, wurde diese Idee aufgegriffen und mit Hilfe von NSOperations umgesetzt. Dabei eignen sich NSOperations nicht nur dafür Aktionen vom Main Thread zu nehmen, sondern sie bieten darüber hinaus einen einheitlichen Mechanismus zum Unterbrechen von asynchronen Aktionen und die Möglichkeit, Abhängigkeiten zwischen einzelnen Aktionen zu definieren. Durch dieses Vorgehen lassen sich viele kleinere Operationen zu grösseren Zusammensetzten, um daraus letztendlich die Use Cases innerhalb der App abzubilden. Der Vortrag wird die Vor- und Nachteile dieses Ansatzes erläutern und die Erfahrungen aus dem letzten Projekt aufgreifen.
Sebastian Meßingfeld: Continuous Delivery einer iOS-App mit gitlab-ci und fastlane
Als iOS-Entwickler muss man sich nicht selten selber um den eigenen Build-Server und die -Toolchain kümmern, da die Kombination von macOS und Xcode für Infrastruktur-Teams noch ein rotes Tuch ist. Der Vortrag zeigt daher, wie man (fast) automatisiert seinen Build-Server selbst aufsetzen kann und als Runner in eine bestehende GitLab-Continuous-Integration-Infrastruktur integriert.Aufbauend darauf wird die Build-Toolchain „fastlane“ vorgestellt, die eine große Sammlung von Aktionen bereitstellt, um den Build- und Release-Prozess für iOS Apps zu vereinfachen. Dazu zählen das Bauen von Apps für verschiedene Umgebungen, mit verschiedenen Zertifikaten und Distributionswegen, wie HockeyApp oder TestFlight. Angereichert wird der Vortrag mit Erfahrungen aus dem Alltag.

Let's talk about iOS architecture & DevOps!