27
Plannahの開発環境と DeployGateの紹介 株式会社ミクシィ イノベーションセンター 衣川憲治

Plannahプロジェクトの開発環境とdeploy gateの紹介

Embed Size (px)

Citation preview

Page 1: Plannahプロジェクトの開発環境とdeploy gateの紹介

Plannahの開発環境とDeployGateの紹介

株式会社ミクシィ

イノベーションセンター

衣川憲治

Page 2: Plannahプロジェクトの開発環境とdeploy gateの紹介

自己紹介

• 衣川憲治(k_kinukawa)

• 2010年11月〜

• mixi for iPhone, iPad

• Plannah(3月末でクローズ)

• 4月よりDeployGateチームに所属

Page 3: Plannahプロジェクトの開発環境とdeploy gateの紹介

Plannahとは

• みんなで作る、思い出アルバムアプリ

• 3月末でクローズしました。

Page 4: Plannahプロジェクトの開発環境とdeploy gateの紹介

チーム

• マーケティング、ディレクション(1名)

• デザイン、UI/UX(1名)

• アプリ、サーバー、インフラ、開発全般(衣川)

一人で開発しなければならない!

あなたならどうする?

ローンチまでの期間:3ヶ月

Page 5: Plannahプロジェクトの開発環境とdeploy gateの紹介

一番最初に、CI環境を整えよう

Page 6: Plannahプロジェクトの開発環境とdeploy gateの紹介

継続的インテグレーション(CI)

• ビルド、テストを継続的に実行する。

–短いサイクル

–自動化

• 高速に石橋を叩きながら開発を進める

開発

ビルド

テスト リリース

Page 7: Plannahプロジェクトの開発環境とdeploy gateの紹介

Jenkins

• ビルド、テストの自動化

• アプリ配信の自動化• メトリクスの自動取得

Page 8: Plannahプロジェクトの開発環境とdeploy gateの紹介

Github

• ソースコード管理

• issue管理

• コードレビュー

Page 9: Plannahプロジェクトの開発環境とdeploy gateの紹介

DeployGate

• アプリのリモート配信サービス

• iOS対応しました

Page 10: Plannahプロジェクトの開発環境とdeploy gateの紹介

NOMADO

• 超便利なコマンドラインツール群

• shenzhenで、コマンドラインから一発ipaファイル作成

• あとでデモします。

Page 11: Plannahプロジェクトの開発環境とdeploy gateの紹介

組み合わせると...

ソースコードくれ!

ビルド・テストしろ!

アーカイブ作ってみんなに配れ!

配信!

Github

Xcode

DeployGate

チーム

プッシュ、レビュー、マージ!

Page 12: Plannahプロジェクトの開発環境とdeploy gateの紹介

組み合わせると...

• Githubにpushしたら自動で

–ビルド

–テスト

–自動配信

• メンバーは常に最新のビルドを使い倒す

• 少ない人数でも効率的な検証環境を整えておく。

Page 13: Plannahプロジェクトの開発環境とdeploy gateの紹介

便利なライブラリを有効活用しよう

Page 14: Plannahプロジェクトの開発環境とdeploy gateの紹介

CocoaPods

• ライブラリ管理のための必須ツール

• 導入のための設定も自動で行ってくれる

• 自作ライブラリも使える

Page 15: Plannahプロジェクトの開発環境とdeploy gateの紹介

CocoaPodsで導入したライブラリ

• AFNetworking

• MTStatusBarOverlay

• UICKeyChainStore

• ZXing

• QR-Code-Encoder-for-Objective-C

• EGOTableViewPullRefresh

• Kiwi

• OCMoc

• Nocilla

Page 16: Plannahプロジェクトの開発環境とdeploy gateの紹介

お勧めライブラリ

Page 17: Plannahプロジェクトの開発環境とdeploy gateの紹介

UICKeyChainStore

• NSUserDefaultのように、シンプルにKeyChainのデータを操作できる。

[UICKeyChainStore setData:data forKey:kKeychainKey]; //セーブ

NSData *data = [UICKeyChainStore dataForKey:kKeychainKey]; //ロード

Page 18: Plannahプロジェクトの開発環境とdeploy gateの紹介

ZXing

• QRコードリーダー– 見た目のカスタマイズ可能

– 高速• (ZXingObjCは...)

– Apatch License 2.0• (ZBarはGNU LGPL 2.1)

• QR-Code-Encoder-for-Objective-CでQRコード生成

Page 19: Plannahプロジェクトの開発環境とdeploy gateの紹介

EGOTableViewPullRefresh

• 引っ張り更新ライブラリ

• カスタマイズ可能

–結構遊べる

• カスタマイズしたものをgithubに公開しました

Page 20: Plannahプロジェクトの開発環境とdeploy gateの紹介

Kiwi

• RSpecライクなBDDフレームワーク

• 内部的にOCUnit/XCTest使っている

– cmd+Uが使える

– Xcode5からSPEC単位で実行できる

• 導入も簡単

– http://qiita.com/k_kinukawa/items/710a1e209e1bbb9713f6

Page 21: Plannahプロジェクトの開発環境とdeploy gateの紹介

CRToast

• ステータスバー、ナビゲーションバー上に表示されるトースト通知ライブラリ

• iOS7っぽい

• PlannahではMTStatusBarOverlayを使っていたが、次使うならこっち使いたい

Page 22: Plannahプロジェクトの開発環境とdeploy gateの紹介

GoogleAnalytics

• リアルタイム解析

– Push砲を打つと面白い

• ビューの表示解析

– ViewControllerの親クラスのViewDidLoadに以下の一行を入れておく

[[GAI sharedInstance].defaultTracker trackView:NSStringFromClass([self class])];

Page 23: Plannahプロジェクトの開発環境とdeploy gateの紹介

その他

• CocoaPodsを使って簡単ライブラリ導入

• ManiacDev.comおすすめ

Page 24: Plannahプロジェクトの開発環境とdeploy gateの紹介

mBaaSを有効活用しよう

Page 25: Plannahプロジェクトの開発環境とdeploy gateの紹介

• モバイルアプリのためのバックエンドサービス

–ストレージ

–プッシュ通知

–ユーザー管理

• SNS連携

• Objective-Cの簡単なAPIで使える

• API設計が素敵

• 無料で結構使える

Page 26: Plannahプロジェクトの開発環境とdeploy gateの紹介

• Plannahでは、プッシュ通知だけParse.comを利用

–必要な機能だけ利用できる

• 趣味の開発でも積極的に利用

Page 27: Plannahプロジェクトの開発環境とdeploy gateの紹介

まとめ

• 最初にCI環境を作ってしまおう

• CocoaPodsを使って、便利なライブラリを活用しよう

• mBaaSを有効活用しよう

• DeployGateを使おう