Schlagwörter
Skills
Jenkins
Atlassian JIRA
Atlassian Confluence
GitLab
REST
Scrum
Barrierefreiheit
VoiceOver
Dynamic Type
iOS12
iOS13
Swift5
Projekthistorie
Entwicklung einer App, die den „Stress-Status“ für eine Person über längere Zeit ermittelt und grafisch anzeigt. Dazu gibt der Proband drei Mal täglich die subjektive Bewertung seines aktuellen Status per Fragebogen ein.
Außerdem fließen die Messwerte HRV und Lärmpegel in die Berechnung ein, die aus der HealthKit Datenbasis eingelesen werden.
Local Notifications erinnern an diese Eingabe, die Uhrzeit wird in den Einstellungen konfiguriert.
OS-App zum Scannen von Kontaktinformationen in Form eines QR-Codes sowie die dynamische Darstellung von Kundendaten als QR-Code.
- Formular mit feldbezogenen Fehlermeldungen
- Liste mit Filterung über Eingabefeld,
- Dropdown zur Auswahl des Listentyps
- Export der gesammelten Daten im CSV-Format über Share-Button
- Konfiguration in Preferences,
IOS-App zur Erfassung von Stromverbrauchszahlen. Anzeige der Werte als Zusammenfassung, in Tabellenform und als Balkengrafik.
- Datenimport und -export im CSV-Format über die Zwischenablage
- Konfiguration in Preferences
- Bottom-Tabbar, Segmented Control,
- Settings im iOS-Stil
IOS-App zur Steuerung der beiden Motoren eines Geräts über Bluetooth LE.
IOS-App zur Wahl der persönlichen Wertesortierung per „Drag & Drop“ mit grafischer Darstellung des Ergebnisses als Radar-Chart.
IOS-App zum Trainieren von Shortcuts
Diverse Web-Apps zur Simulation physikalischer Bewegungsmuster, Newtons Cradle,
DIe Entwicklung neuer Features fand in 2-wöchigen-Scrum-Sprints statt, verwaltet mit Jira, Source-Control und Code-Reviews mit GitLab, Dokumentation mit Confluence.
Meine Schwerpunkte waren dabei
- Anbindung an Backend-Webservices mit Codable und Domain-Wrapper-Klassen
- Die Testbarkeit aller Fehlerfälle der Webservice-Responses
- Erstellung von Stub-Responses um vom Backend unabhängige Entwicklung zu ermöglichen
- Automatisierte UI-Tests lokal und in der Jenkins-CI
- Continuous Integration mit Jenkins
Das Projekt legte besonderen Wert auf Barrierefreiheit. Alle Screens mussten Dynamic Type und VoiceOver unterstützen.
- Eigentverantwortliche Implementierung einer neuen externen Schnittstelle ( 360Dialog CMS) mit Anzeige der geholten JSON-Daten in PageViewController.
- Zwischenspeichern von Statusinformationen in CoreData.
- Implementierung von Apple Push Notifications über 360Dialog Backend.
- Maintenance mit Fehlersuche und Fehlerbehebung entsprechend Jira-Bug-Tickets in sehr großer Codebasis ( ca. 60000 lines of Swift code)
- Implementierung diverser Features entsprechend Jira-Stories.
- iOS Entwicklung mit sehr komplexen TableViews
- große Codebase ( > 50000 lines of Swift code)
- Hohe Anforderungen an Visual Design und Datensicherheit
- Modularisierte App mit Frameworks in separaten Xcode-Projekten
- komplexe Architektur mit registrierten DataManagern, modulübergreifende Nutzung von ViewControllern, MVVM und MVC, ...
- Highlevel Swift > 2.0 ( Optionals, Generics, Enums mit associated Types, try/catch, Protocols, Closures, functional Programming, …)
- Swift-Weiterbildung und Anleitung von Junior Developern
- Klärung von Details mit Medium Developern
- Diskussion von Architekturfragen mit anderen Seniors
- Klärung fachlicher Details mit Produktowner( bzw. Analyst)
- Entwurf und Parsen von JSON Responses des Backends
- Test von JSON Responses mit Postman und Paw
- Erstellen von unittests und automatisierten UI-Tests in Xcode
- Git hosted in BitBucket mit Commandline, Sourcetree und in Xcode
- Bauen unterschiedlicher App-Varianten mit xcodebuild
- Continuous Integration mit Teamcity und Artifactory
- Workflow mit Jira und agile plugin
- Scrum in einer multi-Scrum-Team-Umgebung
- Englisch im Team mit indischen und ost-europäischen Kollegen