SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

【デブサミ2015】セッションレポート

【デブサミ2015】 19-C-3 レポート
現場で使い倒しているから語れる 「Swift」によるアプリ開発のつまづきどころと対応策

  • X ポスト
  • このエントリーをはてなブックマークに追加

 2014年の発表以来、大勢のエンジニアから興味や関心を集めている米アップルの新プログラミング言語「Swift」。2月19日のデブサミ2015では、開発の現場でSwiftを使い倒しているという、クラスメソッド株式会社 安達勇一氏が「ゲンバのSwift」と題したセッションを行い、Swiftで開発を行う際の「つまづきどころ」とその対応策について解説しました。当レポートではその模様をお伝えします。

  • X ポスト
  • このエントリーをはてなブックマークに追加

UIKitのSelector

 Objective-CではUIKitのSelector名を間違えて指定した場合、コンパイラが警告を出してくれます。しかし、同様の状況でもSwiftではコンパイラが警告を出してくれません。その対応策として安達氏は「Selectorの代わりにBlocksKitを使うようにしている」とのこと。BlocksKitを用いることで、ハンドラの中でメソッドを直に呼び出せるようになり、メソッド名が間違っていた場合、コンパイルエラーにできるからだそうです。

 ただし、循環参照によるメモリリークの問題も発生するため、弱参照を渡す(weakやunownedを使用する)処理も併せて行ったほうがよいとのことです。

BlocksKitを使うことでSwiftでもSelector名の誤りをコンパイラが指摘してくれる
BlocksKitを使うことでSwiftでもSelector名の誤りをコンパイラが指摘してくれる

 

テストでのMockの扱い

 続いて安達氏が紹介したのは、テストに関するノウハウです。「クラスメソッドではテストを書くことが多いが、その主な理由は『設計や実装を手助けする』ため。だから、モデル層を中心にして書いている。一方で、挙動が明らかなもの、例えばイニシャライザなどについてはテストをあまり書かない」(安達氏)。

 テストでは、Objective-CおよびSwift用のBDD(Behavior-Driven Development:振る舞い駆動開発)フレームワーク「Quick」をDSL(Domain Specific Language:ドメイン固有言語)として使い、実際の値と期待する値を比較するマッチャーとして「Nimble」を利用しているそうです。セッションでは、「病院に関わる一連のモデル」を実装したコード(安達氏が作成)が、これらの利用例として説明に使われました。コードは安達氏のGitHubで公開されていますので、興味のある人はご参照ください。

利用例として挙げられた「病院に関わる一連のモデル」を実装したコード
利用例として挙げられた「病院に関わる一連のモデル」を実装したコード

 

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
iOSでのSwift OSS

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
【デブサミ2015】セッションレポート連載記事一覧

もっと読む

この記事の著者

しんや(シンヤ)

2010年末~2013年前半位までの期間で興味のある勉強会に頻繁に参加。参加してきた勉強会のレポートブログとTogetterをひたすらまとめ続け、まとめ職人(自称/他称含む)として暫く過ごしておりました。色々な縁あってDevelopers Summit 2013では『公募レポーター』も務めました。2013年05月『出張ブロガー』を経て2013年08月にクラスメソッド株式会社へ転職。現在は業務(AWS及びその周辺技術を扱う)の...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8554 2015/03/09 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング