Merry Christmas!

お久しぶりです。
暫くの間、treastrain Press で SSL まわりの設定ミスがあり、正常にアクセス出来ない状態が続いていたかと思います。
その設定ミスのおかげで、WordPress に一切ログインすることができず、大変でした…。

HSTS にも登録してしまったので、この状況は環境によって数ヶ月続くかもしれません…。

さて、本題です。
私のホーム、Google+ にこんな投稿が流れてきました。


Yahoo! JAPAN の投稿ですね。
Objective-C を Swift に書き換えるコンバーター、objc2swift…

おおおおおっ!?これはっ!?いいじゃん!!!

とはなりませんね…。なぜかと言えば、それはすでに在るからです。

私がいつも使用している Objective-C to Swift コンバーターは、
Swiftify Objective-C to Swift Converter (外部サイト)
というものです。

今回は Swiftifyobjc2swift を比較していこうかと思います。

Objective-C のコードを入力して比較

Swift でアプリ開発をしていてわからないことがあった時、インターネットで検索をしますが、実際のところまだまだ、Objective-C でのサンプルしか見つけられないことが多いです。

そのため、私は Objective-C to Swift のコンバーターをよく使いますが、そもそも、私は Objective-C がさっぱりなので、Objective-C のコードを入力して比較なんてこと出来ません…。

 

とりあえず、objc2swift のサンプルコードで比較していきます。こちらです。

なんか、Objective-C ってものすごく書きづらいですね…

それはともかく、こちらのサンプルコードを Swiftify と objc2swift に入力してみましょう。

objc2swift のサンプルコード 変換結果

Swiftify

スクリーンショット 2015-12-25 17.14.32
なるほど…普通に変換されていますね…
このままコピペで Xcode に貼り付けすれば OK というところでしょうか。

objc2swift

スクリーンショット 2015-12-25 17.16.45
変換結果は Swiftify と変わりませんね。
しかし、Objective-C と Swift の両方、クラス名などに色が付いています!
これはいいですね。Xcode へのコピペの前に多少のチェックは行えそうです。

続いて、Swiftify のサンプルコードで比較します。

Swiftify のサンプルコード 変換結果

Swiftify

スクリーンショット 2015-12-25 17.38.21
普通に変換できます。というか、自分自身が変換できないコードをサンプルにはしませんよね…。

objc2swift

スクリーンショット 2015-12-25 17.38.31
………あれっ!?結果が表示されない!?

 

ここでは省きますが、いろいろと検証したところ、
Swiftify では Objective-C でいうヘッダファイルと実装ファイル、どちらか一方でも動作しますが、
objc2swift ではヘッダファイルと実装ファイルの両方を記述することが必須のようです。

個人的には Objective-C で書かれた1行のコードをコンバーターにかけることが多いので、objc2swift はちょっと…という感じでしょうか。

それでは、細かい部分についても比較していきます。

その他の比較

  • Swiftify には 1 KB の容量制限があり、それ以上の Objective-C コードを変換するにはサインアップ(10 KBまでは無料)しなければなりません。しかし、objc2swift ではそのような制限は見受けられませんでした。
    スクリーンショット 2015-12-25 17.57.03
  • objc2swift では、もし、Objective-C コードに何かしらの不備があった場合、「convert」しても何も変化がありませんが、Swiftify ではコンソール結果を表示する部分があり、エラーの内容などが表示されるようになっています。
    スクリーンショット 2015-12-25 17.57.55
  • Swiftify は SSL 接続です。objc2swift は通常(HTTP)接続です。
  • Swiftify の有料版では、Objective-C で書かれた Xcode のプロジェクトを丸ごと、Swift に変換してくれる機能もあります。
  • Swiftify の運営は Swiftify(アメリカ、コロラド州)、objc2swift は Yahoo! JAPAN デベロッパーネットワークによるオープンソースでの提供(GitHub)です。

こんな感じでしょうか。

どっちを使う?

私は先ほどから何度も言っていますが、Objective-C のことはさっぱりわからないので、おそらくこれからも Swiftify を使い続けるだろうと思います。

「Objective-C から段々に Swift に移行していきたい!」という開発者の皆さんは objc2swift という選択肢もありますね。