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.*
すぐに使いたい場合オンライン版を使用するのが便利です。
▲左側の「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開発情報を探している方は是非お立ち寄りください。