はじめまして、1/1からハンズラボにジョインした平井です。
皆さま、はじめまして、1/1からハンズラボにジョインした、アプリケーションエンジニアの平井です。
〜自己紹介〜
■以前は何をやっていたのか
以前は、アプリケーションエンジニアとして、主にエンタープライズ向けのWebアプリや
BToC向けのWebサービスの開発に携わっていました。
■所属チームについて
今は外販のチームに所属しています。
Webアプリ/iOSアプリの開発や巷でホットなSORACOMを使った開発に携わっており、毎日が充実しています!
■今後について
田部井や井上が行っている様なAWSを活用したアーキテクチャ設計・構築や東急ハンズのノウハウを活かした自社サービスの立ち上げ(現時点では未定)にチャレンジしたいと考えています。
今後とも、宜しくお願い致します。
〜Objective-C→Swiftコンバートツールについて〜
■背景
ハンズラボでは、iOSアプリの開発には、Swiftを使うという、じばにゃんからの指示があります。
しかし、今回案件で利用するカードリーダーのSDKの組み込みサンプルは、Objective-Cでの提供しかなく、Objective-Cのコードを目で見て、手動でSwift化するのは、時間的に厳しいと感じました。
そこで、Objective-Cで必要な部分を作ってからコンバートツールを使ってSwift化しました。
今回は、「objc2swift」と云うYahoo!様が開発したツールを使いましたのでそちらをご紹介をします。
■「objc2swift」利用手順
0.前提
事前に以下のモジュールのインストールをしておいてください。
・JDK(ツールはJDKが無いと動きません。)
また、以下の環境の例になります。
Mac OSX(10.11.2)
1.Gradle(SDKMAN!)のインストール
GradleをMacにインストールする際に、Groovy関連のプロダクトのバージョン管理を行うツール(SDKMAN!)を使って Gradleをインストールするのが一般的なやり方みたいです。
最初に、SDKMAN!をインストールします。
curl -s get.sdkman.io | bash
source ~/.sdkman/bin/sdkman-init.sh
sdk help
「sdk help」でhelpが表示されたらSDKMAN!のインストール完了です。
次に、Gradleのインストールをしてみます。
sdk install gradle
gradle -v
「gradle -v」でバージョンが表示されたら「gradle」のインストール完了です。
2.objc2swiftのビルド
#objc2swiftを取得する。
git clone https://github.com/yahoojapan/objc2swift.git
cd objc2swift
#gradleでobjc2swiftをビルドする。
gradle jar
#aliasを作る
alias objc2swift='java -jar /path/to/objc2swift/build/libs/objc2swift-1.0.jar'
#swiftへコンバート
objc2swift src/objc/resources/ViewController.m > src/objc/resources/ViewController.swift
■使ってみた感想
・300Stepくらいのプログラムで50箇所程度、コンバート時にエラーがありました。
・統計を取った訳ではありませんが、オプショナル型に関してのエラーが多かった様に思えます。
・同じ様なエラーが多く、まとめて修正できたので、1〜2時間くらいで疎通確認まで完了しました。
(ちなみに私はSwiftを始めたばかりですので、Swiftに慣れた方ならもっと早いと思います。)
この記事を読んで、Objective-Cの辛みから皆さまが開放されるきっかけになれば幸いです。