000%
COMMISSION Nº 06 · 2018–20 — TEAM CHAT
GRAP · iOS

GRAP — alter Build, neuer Build, Dual-Track-Ownership durch eine Übernahme hindurch.

Zwei Jahre Solo-iOS-Ownership bei GRAP: den Legacy-Team-Chat-Build weiter ausliefern, während 4.0 parallel von Grund auf in Swift neu gebaut wird — und in der Zwischenzeit die Übernahme durch Kakao Enterprise mittragen.

FIG. 01GRAP — IOS — GRAP · iOS
COMMISSIONiOS · Swift (Pods Obj-C) · MVVM · RxSwift family · CocoaMQTT-over-TLS2018.02 — 2019.12 → 2020.12

Ich entwickelte GRAP von 2018 bis 2020. Die App wurde branchenübergreifend eingesetzt — bei Heesung Catalysts, Amazing Brewery, Samsung Electronics, Lock&Lock, einer großen religiösen Organisation und weiteren. Ich musste beide Versionen gleichzeitig betreuen: der alte Build musste weiter ausgeliefert werden, während der neue parallel entstand. Ich betreute dasselbe Produkt mit getrennten Codebasen und Architekturen.

Die Anwendung ist in Swift geschrieben. Die Third-Party-Schicht trug einen erheblichen Objective-C-Anteil aus der damaligen kanonischen koreanischen iOS-Toolchain — Networking, Echtzeit-Messaging, In-App-Bildrendering, Capture und Album, Identity, Push und Telemetrie, Keychain, Attributed-Text und die RxSwift-Familie, die das Ganze zusammenhielt.

Das Echtzeit-Messaging lief über MQTT, abgeriegelt mit beidseitigem TLS — der Client trägt sein eigenes Zertifikat, und während der Entwicklung wurde die Verschlüsselung auf Paketebene nachgeprüft. Dieselbe App trug Live-Übersetzung für Teams über Grenzen hinweg: Nachrichten, Beiträge und Kommentare ließen sich an Ort und Stelle übersetzen, mit dem Ergebnis zur Durchsicht, bevor gesendet wird. Und wo eine Bibliothek von der Stange nicht reichte, haben wir geforkt und den Patch selbst getragen — der Kamera-und-Album-Picker gehörte dazu.

Ich betreute Dutzende Store-Releases in diesen zwei Jahren, einschließlich Notfall-Builds am selben Tag, wenn ein Crash vor Kundenaugen es verlangte. Der Lebenszyklus der Push-Zertifikate lag komplett bei mir — jährlich erneuert, nach einem Runbook, das ich selbst geschrieben habe —, und als ein Toolchain-Update die Symbolauflösung der Crash-Reports zerbrach, automatisierte ich die Symbolauflösung. Vier Sprachen gingen in Produktion.

Das Backend wurde von einem starken slowenischen Engineer geführt, und unsere tägliche Arbeitssprache war Englisch — jede Frage zum Protokoll wurde zu einer schriftlichen Designkonversation, die in einem expliziten Vertrag mündete. Mit einem fähigen grenzüberschreitenden Counterpart über ein schriftliches englisches Protokoll zusammenzuarbeiten, prägt bis heute, wie ich Engineer-zu-Engineer-Kollaboration denke. (Die ausführliche Erzählung dieser Phase steht unter Visuals · The Interview No. 004 — The Mission Song.)

Nachdem das Unternehmen in Kakao Enterprise aufgenommen worden war, blieben GRAP und Kakao Work als unabhängige Produkte im Betrieb. Es gab eine Phase, in der ich beide gleichzeitig betreut habe — dasselbe Büro, zwei Produktlinien, zwei Release-Kalender.

— FIN —