エンジニア

2016.02.16

はじめまして、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の辛みから皆さまが開放されるきっかけになれば幸いです。

一覧に戻る