EDIT MODE

モバイルアプリ開発に関することを書いています

# Android Casual Talks #1 に参加してきた

概要など

イベントページは、ここ。 イベントの概要としては、募集ページから抜粋すると

"Androidのチーム体制や開発プロセス、アプリやパッケージの設計、モダンAPIやライブラリ、テストと品質、ビルド環境とCI、ログ解析や効果測定など、Androidアプリ開発に関することを深く浅く、広く狭く話しましょうという趣旨の会です。"

とのこと。当日のツイートは、ここにまとめられている。
とても勉強になった1日だったので、忘れないよう記事に残す。(備忘録的な目的なので、メモ程度の内容です。)

クックパッドの開発環境について

発表者:@rejasupotaro

  • コーディング規約をGitHub Enterpriseで管理
  • サーバーサイドでそうしてたから
  • 7月からAndroidStudio+Gradle環境に移行した
  • 社内にNexusサーバでmavenリポジトリ立ててライブラリ管理
  • サーバサイドでは新しい技術を取り入れる流れがあった
  • Androidでも
  • Debug -> Beta -> Release
  • Beta -> DeployGateでテスト配信
  • Release -> crashlyticsレポート収集
  • PAPA -> ユーザー意見を収集

品質を保つための組織的な取り組みと人に依存しないテスト

発表者:@mhidaka

  • メーカーの開発品質って視点
    • マインド:組織の目標を統一する
    • 反復:小さな目標に分割する
    • 計測と評価:メトリクス超大事
  • Android2.2, iOS6.0以上全部
  • 開発プロセスの決定
    • 目標をチーム内で共有
  • 反復(イテレーション
  • 単体テストの自動化:途中からやると難しいので必ず最初から
  • テスト設計
    • 必要最小限のものを
  • 開発環境の最適化
    • Redmine、ビルド環境、単相者への権限移譲
  • テストの重要性を理解する
    • テストをスキップする誘惑

グリーにJenkinsを導入して2年半で起こったこと

発表者:@watermint
公開資料:http://www.slideshare.net/okazaki/2013-0829-jenkins-for-cookpad-android

  • Jenkins使ってる人多い
  • Hudsonの時から使ってた
  • INND -> Jenkins -> iPhoneアプリにしたり
  • @ITに記事を書いた
  • 変えないことは大きなリスク
  • 技術負債の増大
  • 導入のポイント
  • ツールではなく、ワークフローをカエル
  • じっくり慎重に:無理強いしない
  • 許容する:拡張や改善の余地を残す
  • みまもる:ゆっくり成熟をまつ
  • 導入前の問題点
    • 作業の属人化
    • 成果物の管理
    • 残課題の管理
  • ツールの導入で解決 < 仕組みの改善で解決
  • 指標とリリース基準が結びつかないと無視される
  • 確認のために指標を利用する
  • 徐々にワークフローに組み入れる
  • 仕事の方向がそろうと多いな力になる(職種をまたいで)

Injectionの基礎(android編)

発表者:@WillOnWheels
公開資料:http://prezi.com/ehfdkvl9ps-1/inject-presentation/

  • Dependency Injection
  • Inversion of control - MartinFowler
  • ユーザーが信号を制御する
  • それを逆にする
  • 例:あるデータを取得する処理を複数箇所で行う場合、あちこちで処理をするより、クラスで持たせる。
  • 1.クエリ発行
  • 2.インスタンス
  • 3.Factoryパターン
  • 4.injector
//injector setting
//Lister<Person> を NetPersonLister で実装する

//injector usage
@Inject Lister<Person> contactLister;
  • maps interface to implementation
  • construct and inject objects
  • construct and inject parameters
  • メリット:only change injector setting!
  • Method injection
  • Member injection
  • まとめ
  • clarify dependencies
  • easy refactor
  • perfect for testing
  • Injection frameworks
    • Pico:minimal, efficient
    • Guice:fulll-featured, runtime
    • Spring
    • Roboguice:based on guice, Android specific features
    • Proton:small footprint
    • Dagger:Android, static injection
  • Androidでの注意点
  • Systemがつくるインスタンスがある -> Activity, Context…
  • RoboguiceではRoboActivityで解決してる

意外と役立つ?Android Open Source Projectすすめ

発表者:橋本 泰

  • OHAの話し
  • ブラウザのデフォルトでの起動設定を取得したいが難しかった
  • イルカのブラウザは撮れてる
  • OHAのコードリーディングした
  • 事前準備として言語設定を英語にしてターゲットのキーワードを確認した
  • OpenGrokでコード検索

アプリのリニューアルとその効果測定について

発表者;@consomme72

  • 終電のため聞けず(資料だけでも見たかった…)