tomoima525's blog

Androidとか技術とかその他気になったことを書いているブログ。世界の秘密はカレーの中にある!サンフランシスコから発信中。

AndroidオールスターズでClean Architectureについて発表してきた&参考リンク集

f:id:tomoima525:20150808130602j:plain:w350

先日dots.さんが主催するAndroidオールスターズという勉強会で、"Android Clean Architectureことはじめ"と題して発表してきました。

資料はこちらになります。

www.slideshare.net

また資料でお見せしたサンプルコードは https://github.com/tomoima525/CleanArchitectureSample になります。プリミティブな形でサンプルをお見せしたかったため、ほぼデファクトスタンダートとなっているRetrofitとButter Knife以外のライブラリは利用せずに書いています。
最低限の実装なので色々荒くなってるし、テストガーとか言ってたくせにテストも書けてないので、後ほどもう少しブラッシュアップしてテストも書きます。気になる方はwatchしていただければと思います。

設計とは(良いコードを書きたいっていう)意志であり、フレームワークなんて関係ねぇ

上記はUncle Bobさんの"Architecture is about Intent, not Frameworks"という言葉の意訳です。発表の最後でも話したのですが、結局のところ、設計はこの言葉につきるかと思います。

自分も、Androidの設計について色々調べ始めたきっかけは、1000行を超えるActivityやMVCと銘打ちながらもAndroid Frameworkが絡んでこんがらがってしまったコードをなんとかしたい、と考えたからでした。

今回は"The Clean Architecture"というUncle Bobが提案した設計思想をベースにした設計をご紹介しました。これ以外にも、MVVMやFacebookFluxなど、様々な設計手法があります。一体何がいいのか迷ってしまいますが、これらのうちから一つ選んでまるっと採用する必要はなく、良いとこどりして出来る範囲で、コストに見合う形で、自分のサービスに取り込んで行けばよいのではないかな〜と思います。なので、資料でも、どこから手を付ければよいかの指針を書いています。

またチームで開発している場合、メンバーの意志を合わせていくことも重要になります。新しい手法を試す場合はチーム勉強会を開く、レビューで気をつけるなど、全員が同じ方向を向くように頑張らないと、設計が崩壊してしまいます。やっぱり意志が大事なんですね。

個人であれチームであれ、良い設計を通じて最終的には楽しく(ここ大事)迷わずサービスにフォーカスして作れることが一番だと思う次第であります。

Android Clean Architectureに関するリンク集

自分がAndroid Clean Architectureを学ぶにあたって参考にしたリンクをまとめておきます。もうちょっと学んでみたいと思ったら参考にしてください。

MVP

The Clean Architecture

Android Clean Architecture

最後に:Androidオールスターズについて

その他の方の資料はこちらにまとめがありました。当日の感想ツイートなんかもまとまってます。他の登壇者の方たちの発表はレベル高くてめっちゃ勉強になりましたし、改めてほんと精進しないと、って思いました。 会場を提供いただいたshibuya dots.さんは8月に出来たスペースとのことで、今までの会場にない、家のような落ち着いた雰囲気の場所でした。写真はテンパってて撮り忘れたのですが、Webサイトをみていただくとわかるかと思います。運営の皆様、ありがとうございました!