2014年の発表以来、大勢のエンジニアから興味や関心を集めている米アップルの新プログラミング言語「Swift」。2月19日のデブサミ2015では、開発の現場でSwiftを使い倒しているという、クラスメソッド株式会社 安達勇一氏が「ゲンバのSwift」と題したセッションを行い、Swiftで開発を行う際の「つまづきどころ」とその対応策について解説しました。当レポートではその模様をお伝えします。
UIKitのSelector
Objective-CではUIKitのSelector名を間違えて指定した場合、コンパイラが警告を出してくれます。しかし、同様の状況でもSwiftではコンパイラが警告を出してくれません。その対応策として安達氏は「Selectorの代わりにBlocksKitを使うようにしている」とのこと。BlocksKitを用いることで、ハンドラの中でメソッドを直に呼び出せるようになり、メソッド名が間違っていた場合、コンパイルエラーにできるからだそうです。
ただし、循環参照によるメモリリークの問題も発生するため、弱参照を渡す(weakやunownedを使用する)処理も併せて行ったほうがよいとのことです。
テストでのMockの扱い
続いて安達氏が紹介したのは、テストに関するノウハウです。「クラスメソッドではテストを書くことが多いが、その主な理由は『設計や実装を手助けする』ため。だから、モデル層を中心にして書いている。一方で、挙動が明らかなもの、例えばイニシャライザなどについてはテストをあまり書かない」(安達氏)。
テストでは、Objective-CおよびSwift用のBDD(Behavior-Driven Development:振る舞い駆動開発)フレームワーク「Quick」をDSL(Domain Specific Language:ドメイン固有言語)として使い、実際の値と期待する値を比較するマッチャーとして「Nimble」を利用しているそうです。セッションでは、「病院に関わる一連のモデル」を実装したコード(安達氏が作成)が、これらの利用例として説明に使われました。コードは安達氏のGitHubで公開されていますので、興味のある人はご参照ください。
会員登録無料すると、続きをお読みいただけます
-
- Page 1
-
- Page 2
この記事は参考になりましたか?
- この記事の著者
-
しんや(シンヤ)
2010年末~2013年前半位までの期間で興味のある勉強会に頻繁に参加。参加してきた勉強会のレポートブログとTogetterをひたすらまとめ続け、まとめ職人(自称/他称含む)として暫く過ごしておりました。色々な縁あってDevelopers Summit 2013では『公募レポーター』も務めました。2013年05月『出張ブロガー』を経て2013年08月にクラスメソッド株式会社へ転職。現在は業務(AWS及びその周辺技術を扱う)の...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
