Benni in der Corona-Zeit

Während es einige Leute gibt, die durch den Corona-Virus bzw. die Gegenmaßnamen ihre Arbeit oder Einkünfte verloren haben oder in Kurzarbeit geschickt wurden kam ich bislang sehr glimpflich davon.

Doch auch bei mir hat sich in den letzten Wochen so manches geändert. Wie die meisten meiner Kollegen habe ich zu Hause im “Corona-Office” gearbeitet. Zeitweise habe ich sogar die eigene Wohnung nur für Einkäufe verlassen.

Man gewöhnt sich an ein oder mehrere Videokonferenzen pro Tag mit dem Team. Um auch unsere regelmäßgien Retrospektiven und Feedbackgespräche weiterhin durchführen zu können haben wir Miro eingeführt.

Während andere Kollegen unter den Kita-Schließungen litten, hat mich eher der Lärm im Haus gestört. Ein Nachbar hatte offenbar mit den Renovierungsarbeiten auf Corona gewartet, damit alle Bewohner etwas davon haben ;-).

Mit dem räumlichen Abstand ist es schwieriger ein paar Fragen spontan mit Kollegen zu klären. Viele andere Aufgaben ließen sich aber sogar besser erledigen, da man weniger abgelenkt war und fokussierter arbeiten konnte. Zumal ich zu Hause auch gut ausgestattet bin, z.B. mit einem guten Bürostuhl.

Außerdem ist der Kühlschrank näher und mittags ist das Essen schneller zubereitet. Leider musste ich in den letzten Wochen auf den ein oder anderen Döner und Hamburger verzichten. Doch das wird sich bald wieder ändern. Seit wenigen Tagen trifft man mich nun wieder häufiger im Büro an.

Coronavirus: Zahlen & Diagramme

In Zeiten von Home Office durch Covid-19 bzw. Coronavirus SARS-CoV-2 habe ich mir ein paar Lesezeichen angelegt, um neben den täglichen News Zahlen und Entwicklungen verfolgen zu können:

Das Virus in Echtzeit – Tagesspiegel: diverse Zahlen und Diagramme

Dashboard der Johns Hopkins University mit weltweiten Daten

Dashboard des Robert-Koch-Institut speziell für Deutschland mit Daten zur Verbreitung in deutschen Bundesländern bzw. Landkreisen.

Coronavirus latest – Financial Times

Die Maßzahl der Pandemie – Spiegel mit Schwerpunkt auf die Verdopplungszeit von Infizierten. Diese Zahlen wurden in letzter Zeit u.a. von Bundeskanzlerin Angela Merkel oft als entscheidend für die Anpassung der aktuellen Maßnahmen genannt.

Wie viele Intensivbetten gibt es in meiner Region? – Zeit: Kapazitäten von Krankenhäusern in Deutschland

Firebase App Distribution von iOS-Apps via buddybuild

Jahrelang haben wir gerne Crashlytics Beta für die interne Verteilung von Testversionen unserer iOS-Apps verwendet. Crashlytics Beta wird von Google Ende März 2020 eingestellt.

TestFlight ist wohl die bekannteste Alternative. Der Dienst wurde bereits vor mehr als fünf Jahren von Apple übernommen. Die Nachteile von TestFlight waren u.a., dass die Bereitstellung oft durch eine automatisierte Verarbeitung etwas verzögert wurde. Außerdem müssen sich Personen zum Testen auf den jeweiligen Gerät mit ihrer Apple-ID anmelden.

Mit Firebase App Distribution bietet Google einen Ersatz an. Tester nutzen einen Google-Account. Einladungslinks für die Test-Versionen können leicht über die Firebase Console erstellt werden. Außerdem kann man Testpersonen und Testgruppen anlegen und verwalten.

Einige Continuous Integreation Systeme, wie z.B. bitrise, bieten bereits vorgefertigte Integrationen für Firebase App Distribution an. buddybuild unterstützt Firebase App Distribution nicht von Haus aus, man muss die Integration selbst mit Hilfe von eigenen Build Steps durchführen:

Da Firebase CLI verwendet wird muss man sich zunächst ein Firebase CLI Login Token erstellen.

Dieses Firebase Token sowie die Firebase App ID hinterlegt man dann in buddybuild als Environment Variablen FIREBASE_TOKEN bzw. FIREBASE_APP_ID.

Dann kann man die Custom Build Steps für buddybuild ergänzen.

In das Root-Verzeichnis des iOS-Projekts legt man zwei Shell-Script-Dateien. In die Datei buddybuild_postbuild.sh wird der eigentliche Befehl eingetragen, ob die Test-Version der App via Firebase bereitzustellen:

firebase appdistribution:distribute $BUDDYBUILD_IPA_PATH --app $FIREBASE_APP_ID --groups "my-test-group" --token $FIREBASE_TOKEN

Für den obigen Befehl werden die Firebase Tools auf dem CI-Server benötigt. Diese werden global installiert. Dabei stoß ich auf das Problem, dass die globale node.js-Version nicht kompatibel war. Daher versuche ich vor der Firebase CLI Installation zunächst die globale node.js zu aktualisieren. Dafür werden folgende Zeilen in der Datei buddybuild_postclone.sh ergänzt:

echo "Updating global node.js version…"
sudo npm install -g n
sudo n stable

echo "Installing global Firebase CLI…"
npm install -g firebase-tools

Diese Schritte führe ich vor dem eigentlichen Build-Prozesses des iOS-Projektes durch, damit im Fehlerfall der Workflow frühzeitig abgebrochen wird und man so Verzögerungen vermeiden kann.

iOS Simulator CoreTelephony-Log-Spam reduzieren

In neueren Xcode-Versionen wurde ich oft mit Infos über CoreTelephony, wenn ich Apps im iOS Simulator getestet habe. Offenbar wird dieses Verhalten von manchen Frameworks hervorgerufen, u.a. Firebase. Dies habe ich kürzlich in einem GitHub Issue gelesen.

Dort findet man auch den nützlichen Tipp, um diese Log-Ausgaben zu deaktivieren. Im Terminal den folgenden Befehl ausführen:

xcrun simctl spawn booted log config --mode "level:off" --subsystem com.apple.CoreTelephony

Der Befehl muss jeweils auf jedem Computer ausgeführt werden, auf dem die App via iOS Simulator laufen soll.