objc2swift - Objective-CをSwiftに変換してくれるオープンソースツール

S 20180510 194043

Appleは現在、macOSやiOS用のアプリを開発するために、Objective-CとSwiftという2種類のプログラミング言語を提供しています。

本日紹介する「objc2swift」は、Objective-CのソースコードをSwiftのソースコードに変換することが出来る、Yahoo! JAPANによって開発された、オープンソースツールです。

ツールをローカルにダウンロードしてコマンドラインツールやWebインターフェイスを通じて使用できるほか、オンラインサイトで直接使用することも可能で、以下のような特徴を持ちます。

  • @interfaceと@implementationをマージしてSwiftクラスを生成
  • getter/setter実装を持つものを含めプロパティの変換
  • init処理の変換
  • NSIntegerからInt、NSLogからprintへの変換
  • その他いろいろ

長い歴史を持ち、膨大に存在するObjective-Cの資産を最新のSwiftコードに移植したい場合に使用すると便利なツールといえるでしょう。以下使用法を説明します。

objc2swiftの使用方法

ローカルで使用する場合、以下の手順で実行します。

$ git clone https://github.com/yahoojapan/objc2swift.git
$ cd objc2swift
$ ./gradlew jar

エイリアスを設定し、以下のように実行します。

$ alias objc2swift='java -jar /path/to/objc2swift/build/libs/objc2swift-1.0.jar'
$ objc2swift src/test/resources/sample.*

すぐに使いたい場合オンライン版を使用するのが便利です。

Convert

▲左側の「Objective-C」の欄に、Objective-Cのソースコードを貼り付けます。通常Objective-Cのクラスのソースコードは.hと.mに分かれています。それらの内容を順に貼り付ければ良いでしょう。

実際に試してみたところ、合わせて300行程度のソースコードを問題無く変換できましたが、そのままXcodeで動かせるわけではなく、手動で調整が必要な部分も残っている模様です。

まとめ

objc2swiftを利用すれば完璧ではありませんが、Objective-CをSwiftに変換することができます。記事執筆時、ツールの更新は2015年で止まっていて、生成されるSwiftのソースコードは「Swift 2.x」のレベルに留まっていますが、Swift変換後のソースコードをざっくり調べたい場合は便利なツールだと思います。

お知らせ: 姉妹サイトSwift StudyではSwiftを使ったiOS/Macアプリ開発情報を公開しています。Swift開発情報を探している方は是非お立ち寄りください。

スポンサーリンク