Press "Enter" to skip to content

Objective-C-Code nach Swift konvertieren mit Swiftify

Eines möchte ich diesem Artikel vorausschicken: Tatsächlich bin ich persönlich kein großer Fan von Xcode-Extensions. Das liegt nicht daran, dass ich per se nichts davon halten würde oder der Auffassung wäre, andere Entwickler außerhalb von Apple (so wie ich ja auch einer bin) könnten keine sinnvollen Erweiterungen für Xcode programmieren.

Die Wahrheit ist, dass ich – und das trifft auf so ziemlich alles im Leben zu – ein totaler Fan von Originalen und ja, ich gebe es zu, gewissen Marken bin. Ich kaufe nun einmal bei Adaptern am liebsten die Originale von Apple, auch wenn man vergleichbare (oder teils sogar bessere) Qualität für weniger oder gleiches Geld erhalten kann. Ich wähle in der Regel immer eines der Standard-Hintergrundbilder, egal ob iPhone, iPad oder Mac, statt irgendwelche persönlichen oder im Internet verfügbaren zu verwenden. Und ich nehme nun einmal gerne Xcode genau so, wie es von Apple vorgesehen ist, ganz ohne jegliche Erweiterungen von Dritten.

Beim Stöbern im Mac App Store vor einiger Zeit bin ich aber auf eine Extension gestoßen, die meine Aufmerksamkeit geweckt hat und die ich euch in diesem Artikel vorstellen möchte. Swiftify ist dazu gedacht, Objective-C-Code automatisch nach Swift zu konvertieren. Für jemanden wie mich, der heute viel lieber in Swift programmiert, aber noch das ein oder andere Projekt besitzt, das ganz oder in Teilen in Objective-C geschrieben ist, ist das eine enorm spannende Sache. Aus eigener Erfahrung weiß ich nämlich, wie unglaublich aufwendig und zeitraubend (und damit in der Regel kaum lohnenswert) es ist, selbst auf eigene Faust und damit händisch bestehenden Objective-C-Code in Swift neu zu schreiben. Aus diesem Grund hat Swiftify binnen weniger Sekunden meine Aufmerksamkeit erlangt, und einige weitere Sekunden später war es auch schon auf meinem Mac installiert.

Swiftify ist ein eigener Artikel im Mac App Store gewidmet.
Swiftify ist ein eigener Artikel im Mac App Store gewidmet.

Installation und Aktivierung

Um Swiftify in seiner einfachsten Form nutzen zu können muss man nur die entsprechende App aus dem Mac App Store herunterladen und installieren. Im Anschluss findet sich in den Systemeinstellungen von macOS im Abschnitt Erweiterungen ein Eintrag für Swiftify im Bereich Xcode Source Editor. Aktiviert man den zur App gehörigen Haken, ist die Extension vollständig installiert und aktiviert und kann fortan in Xcode genutzt werden.

Nach der Installation von Swiftify auf dem Mac muss die Extension noch in den Systemeinstellungen von macOS aktiviert werden.
Nach der Installation von Swiftify auf dem Mac muss die Extension noch in den Systemeinstellungen von macOS aktiviert werden.

Zu diesem Zweck taucht im Editor-Menü von Xcode nach der Swiftify-Installation ein neuer gleichnamiger Eintrag mit insgesamt drei Optionen auf: Convert Selection to Swift, Convert File to Swift und Paste as Swift.

Konvertierung von Objective-C nach Swift

Diese drei Namen geben schon recht eindeutig Aufschluss darüber, welche Aktionen die jeweiligen Optionen ausführen. Mit Convert Selection to Swift wird Objective-C-Code, der gerade im Editor markiert ist, umgehend in Swift-Code umgewandelt. Den Inhalt einer ganzen Objective-C-Datei wandelt man mithilfe von Convert File to Swift um, und mit Paste as Swift fügt man Objective-C-Code, der sich gerade in der Zwischenablage befindet, an der aktuellen Cursor-Position als umgewandelten Swift-Code ein.

Das sind alles drei sehr spannende Funktionen, die in ihren Grundzügen auch prima funktionieren. Man muss nur beachten, dass die jeweilige Code-Umwandlung von Objective-C nach Swift immer an genau der Stelle erfolgt, an der man einen der verfügbaren Befehle aufruft. Das sorgt beispielsweise dafür, dass bei Einsatz von Convert File to Swift zwar der Inhalt einer Objective-C-Datei nach Swift konvertiert wird, die Datei als solche aber unverändert bleibt. Das führt verständlicherweise zunächst einmal zu Compiler-Fehlern, da eine Objective-C-Datei nun einmal nichts von Swift versteht. Hier muss man sich passende Workarounds überlegen, um den umgewandelten Code dann ans gewünschte Ziel zu überführen. Eine Möglichkeit hierbei wäre beispielsweise , die entsprechende Datei schlicht umzubenennen und ihr die Endung .swift zu verpassen.

Eingeschränkte Funktionalität

Von den drei beschriebenen Funktionen können nur Convert Selection to Swift und Paste as Swift ohne weitere Konfiguration von Swiftify genutzt werden. Convert File to Swift hingegen setzt die Eingabe eines API-Keys voraus, den man über die offizielle Projekt-Website der App beziehen kann. Hierfür ist eine kostenlose Registrierung notwendig.

Den so erhaltenen Key gibt man direkt über die aus dem Mac App Store installierte Swiftify-App ein. Dazu startet man schlicht die Anwendung und wird direkt mit dem Eingabefenster für den API-Key begrüßt. Ist dieser eingetragen und validiert, können weitere Funktionen wie Convert File to Swift von Swiftify genutzt werden.

Den API-Key trägt man direkt in das dafür vorgesehen Feld innerhalb der Swiftify-App ein.
Den API-Key trägt man direkt in das dafür vorgesehen Feld innerhalb der Swiftify-App ein.

Weitere Funktionen und Einschränkungen

Es ist sogar möglich, aus dem Finder heraus die Inhalte ganzer Ordner und ZIP-Dateien von Objective-C nach Swift zu konvertieren. Hier endet aber die kostenlose Nutzungsmöglichkeit von Swiftify. Auch bei den drei genannten Optionen ist nur eine eingeschränkte Nutzung möglich, tatsächlich ist der pro Funktionsaufruf konvertierbare Code auf eine Größe von 2 KB beschränkt. Möchte man mehr umwandeln, muss man ein Abonnement abschließen, über das alle weiteren Funktionen der App (wie die beschriebene Konvertierung direkt aus dem Finder heraus) ebenfalls freigeschaltet werden.

Hierbei ist auch zu bedenken, dass standardmäßig jede Konvertierung eine aktive Internetverbindung voraussetzt, da die Code-Umwandlung online auf den Servern der Entwickler stattfindet. Zwar gibt es die Möglichkeit, einen Offline-Converter zu nutzen, das schlägt allerdings mit einem Abo-Preis von 999 $ im Jahr zu Buche. Die anderen beiden Abo-Pläne – Pro und Unlimited – kosten jeweils 179,99 $ beziehungsweise 599,99 $ pro Jahr und unterscheiden sich in verfügbarem Funktionsumfang und Größe des konvertierbaren Codes (100 MB beziehungsweise 10 GB).

Eine reine Offline-Nutzung von Swiftify kostet 999 $ jährlich.
Eine reine Offline-Nutzung von Swiftify kostet 999 $ jährlich.

Fazit

Die Idee und das Konzept von Swiftify gefallen mir immens gut, allerdings habe aber meine Zweifel, dass es in der Praxis einwandfrei funktioniert. Da ich bisher nur Tests mit der einfachen kostenlosen Variante durchgeführt habe, kann ich nicht beurteilen, ob die App am Ende das halten kann, was sie verspricht und das Umwandeln von Objective-C nach Swift fehlerfrei hinbekommt. Da glaube ich aber (leider) nicht wirklich dran.

Auch die Tatsache, dass der Code (abgesehen vom Offline-Abo für 999 $ im Jahr) online validiert wird, hinterlässt bei mir einen faden Beigeschmack, ist aber letztlich kein verwerfliches Vorgehen. Womöglich wollen die Entwickler bei dem kostenlosen Einsatz sowie den beiden kleineren Abos einfach ihre Programmlogik auch komplett bei sich behalten.

Ich besitze noch ein großes Objective-C-Projekt, das ich liebend gerne nach Swift konvertieren würde. Händisch wäre das ein zeitlich nicht tragbarer Albtraum, darum könnte Swiftify hierfür eine traumhafte Lösung sein. Allerdings ist mir das bisher die Kosten von fast 1.000 € einfach nicht wert, nicht zuletzt, da Objective-C als Programmiersprache für Apple-Plattformen noch immer etabliert ist und an sich einwandfrei funktioniert. Solange also die offizielle Unterstützung von Apples Seiten her für Objective-C da ist, fürchte ich, dass der Preis von Swifity für mich persönlich zu hoch angesetzt ist (womit ich aber nicht sagen will, dass der Preis unangemessen ist; das kann ich zum jetzigen Zeitpunkt schlicht nicht beurteilen).

Eventuell werde ich mich in der kommenden Zeit noch ein wenig intensiver mit dem Produkt auseinandersetzen und auch einmal – und sei es nur zu Testzwecken – eines der Abos abschließen. Wenn ich neue Erfahrungen damit gesammelt habe, lasse ich es euch natürlich wissen. 🙂

Hast du bereits Erfahrungen mit Swifity gesammelt und eines der kostenpflichtigen Abos im Einsatz? Wie stehst du zu dem Produkt und dem gebotenen Preis-Leistungsverhältnis? Ich freue mich auf den gemeinsamen Austausch. 🙂

Euer Thomas

Weiterführende Links zum Artikel

Schreibe den ersten Kommentar

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Kontakt und soziale Netzwerke

Impressum

Thomas Sillmann
Kettererstraße 6
D-63739 Aschaffenburg
E-Mail: contact@thomassillmann.de
Mobil: +49 (0) 151 65125650
Web: https://www.thomassillmann.de/

Inhaltlich Verantwortlicher gemäß §55 Abs. 2 RStV: Thomas Sillmann (Anschrift siehe oben)

Haftungshinweis: Trotz sorgfältiger inhaltlicher Kontrolle übernehme ich keine Haftung für die Inhalte externer Links. Für die Inhalte der verlinkten Seiten sind ausschließlich deren Betreiber verantwortlich.

Copyright © 2019 · Thomas Sillmann