- gfxさんの発言がきっかけでこのイベントをやった
- deploygate勉強会をやりたい!やろう!
- deploygateを作る前
- mixiの公式アプリを作ってた
- 一人で開発してて色々めんどくさかった
- jenkinsとか使ってもっと簡単にしてた
- Webより高速に回せない…つらい…
- そこらへんをアプリでも改善したい
- それを解決する為にdeploygateを作った!
- いつでも最新のアプリを試せる!
- まだまだ解決出来ていないところがたくさん
- もっといいサービスにして行きたい
- コミュニティを作りたい
- どういうように開発をしているのかを交流したい
- 色々イベントやっていくよ
- オンラインでも話せる場所を作った
- gitterでやってる
- https://gitter.im/DeployGate/community/ja
- エンジニアとQAさんその他の摩擦を無くしたい!!!!
- @saku2saku
- iOSエンジニア
- 個人でも色々アプリを開発したりWebサービスを作ってる
- 有料ランキング1位を獲得したことも!
- 信頼出来る人がお店を紹介してくれる
- 最近プレスリリースが出た
- WebViewで表示しているところが結構ある
- ネイティブだとiOSエンジニアしか作れない…
- htmlやcssなどなら書ける人は結構居るから
- ネイティブとWebViewを組み合わせて作っている
- htmlなどが書ける人と分担して書いている
- リモートのWebViewとローカルのWebViewを組み合わせている
- なぜhtmlをローカルに入れるの?
- 表示速度が遅いから…
- 白い画面が出てしまう(リモートだと)
- ローカルだと早い!
- Custom URL Schemeを使っている
- jsからネイティブのコードを呼ぶなどをしている
- こんな感じに書けば画面遷移が出来るみたいにすれば、htmlだけの人でも書ける
- サーバーの環境
- AWSを使っている
- AWSすごい!
- 社内にはサーバーは1台だけ(mac mini)
- AWSを使っている
- AWS
- 本番,ステージング,開発環境の3つをEC2で用意している
- 本番とステージングは同じドメインで管理している
- 社内のwifiでDNSの設定を切り替えている
- 社外に居るときはVPNでやる
- 1人つき1台(EC2)の開発環境を用意している
- jenkins + testflightを使っている(iOS)
- Androidではdeploygateを使っているよ!
- testflightとdeploygateを使い分けるのめんどくさいから以降するかも
- 5分に1回deployを行っている
- サーバーのバージョンを可視化
- どのサーバーにどの差分を入れているかが見れる(git)
- AWSのサービスを使っている
- AWS使っていれば簡単にipアドレスの切り替え出来るし簡単にdeployが出来るよ!
- Rettyでは色々開発の工夫をしている
- iOSでのWebViewなど
- deployを簡単に早く安全に出来るように工夫もしている
- mixi platform DeployGate
- perl, Ruby
- Bookplateってアプリを作ってるよ!!!!
- アプリをWebみたいに簡単に配布出来る
- deploygate for iOSを作ったよ!!!
- 5月にiOS SDKをリリースした
- アプリの更新通知をアプリ内で出来る
- ログをdeploygateに送れるようになった
- cocoapodsでダウンロード出来る!便利すぎ!!
- 組み込み方はdeploygateのドキュメントに書いてあるよ
- クラッシュレポート便利
- XCodeからビルドするのめんどい
- コマンドでやりたいよ!!
- Shenzhenはdeploygateに対応してるよ!!
- 対応した人神だな…
- deploygateをサポートしてくれているツールがどんどん増えている!嬉しい!
- deploygateでiOSアプリの開発をしてね!!!
- Androidだけじゃないからね!!!!
- 火星に移住する予定
- Mars Oneで選考に進んでいる
- ネタじゃないぞ!!!!
- mixiのスマートフォンアプリの開発
- プロダクトオーナー1,プランナー1,エンジニア8,などなど…
- スプリント計画
- プロダクトバックログの選択
- スプリントバックログの作成
- デザイン/開発
- 開発に先攻してデザインは動く
- 手戻りを防ぐため
- デザインが出来て開発を開始する
- デザインはエンジニアと相談しながら作るtukurus
- ただデザイナーさんはiPhoneユーザーなのでAndroidのUI/UXは分からない…
- 開発に先攻してデザインは動く
- テスト
- githubのhookでjenkinsのテストを走らせる
- pull-reqのあそこに出るやつ
- テスト落ちたら怖い…
- コードレビュー
- githubのissueなどで行われる
- LGTM画像最高!!!!
- QA
- QAに関するガイドラインがあるよ!
- deploygateを使ってテストを行っている
- スプリントレビュー
- 朝会で毎日行っている
- こんなん出来たよ、みたいな
- リリース予定のバイナリは常にdeploygateで配信している
- ドッグフーディング/リリース
- deploygateでアプリを使ってもらう(社内)
- Crashlytics
- クラッシュのログとか監視する
- スプリントの振り返り
- スプリントバックログをどこまで消費できたか
- 次はどこまでやるか?
- KPTZ
- 導入前
- 企画
- jira + excel + パワポ
- うわああああああああああ
- 企画
- 導入後
- 企画
- GHEのissueで
- 全部GHEでやってるよ!!最高!!!!
- 企画
- まだまだ改善の余地あるよね
- @gfx
- iOS/Android
- モバイルアプリの開発効率を上げる
- githubのアクティビティ率で世界100位台
- iOS/Androidでアプリを出している
- iOS/AndroidでUIは微妙に違っている
- 全部ネイティブアプリ
- その他
- ダイエットアプリ
- 検索に特化したアプリ
- 他にも色々出したい
- ユーザーファーストな開発
- なぜ開発を高速化するのか?
- ユーザーに対してよりいいものを提供したい
- なぜ開発を高速化するのか?
- 開発体制
- iOS: 3人
- Android: 4~6人
- その他: 基本1人
- モバイルファースト室: コアチーム数人
- Android
- AndroidStudio + Gradle
- iOS
- XCode
- AppCode
- 結構便利
- cookpadのwebは1日に数回やっている
- 頻繁にデプロイして問題があったらロールバック
- モバイルアプリはそうはいかないよね
- 慎重にやってる
- リリースごとの開発期間は2~3週間
- QA期間は3日間
- プルリクベースの開発
- GHE使っている
- masterに入れるコードはプルリクでレビュー必須
- UIに関わる変更はデザイナーによるレビューが必須
- モバイルアプリもWebと同様にgithub flowで運用してた
- QA期間がなかったが、やはり設けた
- コードフリーズ
- git-flowみたいな感じで運用してる
- developブランチはなしの、少し簡易な形で運用している
- 課題
- iOS/Androidチーム外の協調が難しい
- jenkinsで自動化している
- iOSはtestflight
- AutoFlightnによる自動配布を行っている
- githubからのhook通知でAutoFlightProxyが受け取る
- AutoFlightがjenkinsをキック
- jenkinsがブルドしててtestflightにアップロード
- Androidはdeploygate
- masterにコミットがあったらjenkinsをキック
- ビルド&テスト
- masterにコミットがあったらjenkinsをキック
- iOS/Android共通
- masterにあるコミットを自動配布
- 開発版にはアイコンを変えている
- 開発版も本番サーバーを向いている
- 日常的に社員も使える用に
- iOSはtestflight
- ドッグフーディングはむずかしい
- 開発版を最新に保つのはめんどくさい
- 開発版固有の問題がどうしても存在する
- 1日に何回も更新されても…
- (deploygateの中の人の反論)deploygateのAndroid版には配布ページ機能があるよ!!!!!!!!!!!
- 1日に何回も更新されても…
- 使ってもらってフィードバックは難しい
- スクリーンキャプチャを社内チャットなどに簡単にアップロードする仕組みとかほしいかも?
- 実験的機能をユーザーに使ってもらいたい
- Playのβ機能とか?
- Chrome Canaryみたいに別アプリにする?
- deploygateでここら辺サポート出来たらいいのに…