こんにちは。HOME’SのiOSアプリ開発チームの高橋です。
WWDC2014でSwiftが発表されてから2年が経とうとしております。 Swiftは昨年末にオープンソース化され、ネイティブアプリだけでなく、サーバサイド用のフレームワークも登場するなど、動きがますます活発になってきています。
昨年度、私たちのチームではメンバーのSwift力を向上させるために、半年に渡ってチーム内勉強会を行いました。今回はその内容をご紹介したいと思います。
Swiftに対するHOME'Sアプリチームの課題
私たちの課題は、メンバーごとにSwiftの開発経験に差があることでした。 Swiftに触れる機会がないメンバーもいれば、個人でバリバリSwiftアプリを開発したメンバーもいます。
このような状況ではあるものの、メンテナンス性や今後のトレンドも考慮すると、やはり今後はなるべくSwiftを使っていきたい。どうやったら効率良く、チームのSwift力を向上できるかを考えた結果、
- 座学ではなく実際に手を動かして学ぶ。
- 実アプリへの導入イメージがつかめるようにする。
といった点から、「住まい探しアプリ開発勉強会」を開催してみることにしました。
アプリ開発勉強会の内容
やったこと
まずチームをグループ分けし、Swift経験がある人をリーダーにしました。そしてグループごとに自由な「住まい探しアプリ」を考えてもらいました(どこかで見たようなUIだったり、斬新な検索方法だったり)。
仕様が決まったら、そのグループで実装を行います。期間は半年間で週1回、1〜2時間程度行いました。
またこの機会に、実際に使いそうなライブラリも試してみたかったので、APIへのアクセスにはAlamofireかAPIKitのどちらかを使ってもらいました。 使用感については後の発表会で共有しました。
リーダーとして考えたこと
私もグループのリーダーを担当しましたが、工夫としてメンバーにSwiftに関連するちょっとした課題を出してみました。
例えば、「家賃の合計値をreduceを使って計算してください。」とか「HOME'SのAPI用にAlamofireをProtocol Extensionで拡張してください。」と言った具合です。
コードを書くだけなら従来のObjective-C的に書けてしまうので、課題を設定することでSwiftを意識してもらいました。
レビュー
設計・実装をみんなでレビューしました。
実装時には気づかなかった意見が挙がり、有意義なレビュー会ができました。特にプロトコルやジェネリクスの使い所などは、他人のコードを読まないとイメージが湧かないところもあるため、とても勉強になりました。また、SwiftはObjective-Cよりも短くコードが書けることが多いため、「こうしたらもっと短くできる」「ここも短くできる」といった議論になって楽しかったです。
結果と反省
後日メンバーの感想を聞いたところ、
- Swiftらしい書き方がわかってよかった。
- 業務で質問しにくいことを聞けてよかった。
- Swift導入に対する心理的な障害が減った。
といった良い感想を得ることができました。チームとしてSwiftに対する知識はかなり向上できたと思っています。
一方で、
- メンバー全員が均等にコードに触れられるよう、調整するのが難しかった。
- アプリの開発には仕様決めや設計など多くの作業が必要で、作りながらSwiftを学ぶのは難しかった。
といった意見も出ました。アプリ自体の開発に時間が取られすぎないよう、仕様や大枠の設計はあらかじめ決めてしまうといいかもしれませんね。
CocoapodsやGitなど、プログラミング以前につまづくことも多かったです。勉強会前には必ず開発準備を整えてから望むようにしたいところです。
終わりに
今回、弊社で行ったチームのSwift力向上のための取り組みについてご紹介しました。
もし詳しい内容が知りたい方は、弊社では毎月もくもく会を行っておりますので、ぜひご参加ください!お待ちしております!