Beim Entwickeln von hauptsächlich iOS-Apps auf macOS haben sich für mich folgende Tools als sehr hilfreich herausgestellt:
In habe viel mit Core Data zu tun. Ich setze Core Data Lab hauptsächlich ein, um mir die Daten im Simulator genauer anzusehen. Ich kann Relationen untersuchen. Ich kann URLs, Bilder, JSON und andere Daten formatiert und direkt sichtbar machen. Im Wesentlichen hilft es mir zu klären, ob ich alle Daten in der App habe, die ich erwarte und ob es die richtigen Daten sind und ob ein Fehler in der UI ein Anzeige-Problem oder wirklich fehlende Daten sind. Das Tool kann jedoch viel mehr und gibt einem Entwickler erheblich mehr Kontrolle über Core Data in seiner App.
Vor Core Data Lab habe ich jahrelang Core Data Pro verwendet. Das Tool ist kostenlos und man muß es selbst bauen. Es ermöglicht das Ansehen der Daten und man kann auch den Relationen mit einem Klick folgen.
Mit Control Room kann man die diversen Simulatoren, die
man mit Xcode verwendet, auf sehr einfache Weise konfigurieren. Nicht nur das Aussehen, sondern auch die Geo-Location,
den Netzwerk-Typ, die Sprache und Region. Das Tool verwendet intern /Applications/Xcode.app/Contents/Developer/usr/bin/simctl
.
Darum muß Xcode installiert sein, um dieses Tool zu verwenden.
Besonders nett finde ich die Option, damit Push Notifications an eine App im Simulator zu schicken. Das funktioniert zwar auch, indem man den entsprechenden JSON-Payload als Datei auf einen laufenden Simulator zieht, aber mit Control Room kann man sie auch ad hoc editieren.
Push Notifications im Simulator funktionieren nach meiner Erfahrung nur, wenn man Provisional Authorization nicht
verwendet. Darum nutze ich #if TARGET_OS_SIMULATOR
, um die UNAuthorizationOptions
nur für
Simulatoren passend ohne UNAuthorizationOptionProvisional
zu konfigurieren.
Mit dem Asset Catalog Creator kann man aus jedem Bild die nötigen Dateien erstellen lassen, einen Asset Catalog, um zum Beispiel ein App-Icon zu kreieren. Das Tool kann auch die Icons in den notwendigen unterschiedlichen Größen für viele andere Zwecke wie Complications erzeugen. All die verschiedenen Graphik-Dateien per Hand in der richtigen Auflösung zu erstellen, ist ansonsten recht mühselig.
Bezier Code erzeugt aus einer Zeichnung
Programm-Code, der genau das nachmalt mit u. a. UIBezierPath
. Der Code kann direkt nach
Xcode übernommen werden und die erzeugte Vektor-Graphik auch als PNG oder JPG. Das Tool kann sogar SVGs
importieren.
Der Attributed Strings Generator
läßt Dich einen formatierten Text eingeben und beliebig stylen. Auf Knopfdruck erzeugt er dann daraus Code, der
dies dann als NSAttributedString
implementiert. Das ist nicht nur hilfreich, sondern auch nützlich,
um dabei anhand des erzeugten Codes zu lernen.
Mit der Differences Menulet App kann man Texte/Dateien schnell und einfach in der Menüleiste auf Unterschiede prüfen.
Der DevCleaner für Xcode löscht große Mengen an Daten, die Xcode automatisch anlegt, die man aber nach bestimmter Zeit nicht mehr braucht. Beispiele dafür sind alte Versionen von iOS-Simulatoren, Derived Data und alte Dokumentation.
Das Erste, was mir unmittelbar an der Fish Shell gefallen hat, ist, daß sie vorausahnt, was ich tippen möchte. Eine Shell kann tatsächlich sehr viel Freude machen. "LINUX Unplugged" diskutiert in seiner Episode 283 "The Premiere Shell" die Fish Shell mit einem ihrer wesentlichen Entwickler @ridiculous_fish. Das Thema startet ab Minute 17. Die "friendly interactive shell" ist für macOS und andere Systeme verfügbar.
Mein Auslöser, asdf zu nutzen, war, daß ich, nachdem Python nicht mehr im Lieferumfang von macOS war, einen guten Weg gesucht hatte, um verschiedene Versionen von Python zu installieren und zu verwalten. Mit asdf hat man ein zentrales Command-Line-Tool, um dies nicht nur mit Python zu ermöglichen.
Das screen-Kommando ist in macOS standardmäßig im Terminal verfügbar und ich finde es super nützlich. Mein absoluter Favorit ist, sich mit einer Shell-Session auf einer entfernten Maschine erneut zu verbinden und so weiterarbeiten zu können, als wäre man nie weggewesen. Diese Seite zeigt diesen und weitere interessante Anwendungsfälle.
ShowTime macht User-Interaktionen in iOS Apps sichtbar. Das ist für mich hilfreich beim Vorführen von Apps und für Fehlerberichte.
Ich mußte allerdings feststellen, daß ShowTime selbst mit der Option
ShowTime.enabled = EnabledNever
mehr als 24% der CPU-Last in
der App ausmachte. Daher habe ich es wieder herausgenommen und einen
Fehlerbericht
als Rückmeldung an den Entwickler gegeben.