iOSアプリケーションの継続的デリバリー

118
iOSアプリケーションの 継続的デリバリー 〜エンタープライズ品質のiOSアプリケーションを目指して〜 梅原 直樹 Naoki UMEHARA 14/2/2014 Developers Summit 2014 [14-D-5]

description

2014/2/14に目黒雅叙園で行われたデブサミ2014の資料です 【14-D-5】 iOSアプリケーションの継続的デリバリー ~エンタープライズ品質のiOSアプリケーションを目指して~ http://event.shoeisha.jp/devsumi/20140213/session/430/

Transcript of iOSアプリケーションの継続的デリバリー

Page 1: iOSアプリケーションの継続的デリバリー

iOSアプリケーションの継続的デリバリー

〜エンタープライズ品質のiOSアプリケーションを目指して〜

梅原 直樹Naoki UMEHARA 14/2/2014

Developers Summit 2014 [14-D-5]

Page 2: iOSアプリケーションの継続的デリバリー

僕たちは価値のあるソフトウェアを早く継続的にデリバリーしお客様を満足させなくては

ならない

Page 3: iOSアプリケーションの継続的デリバリー

梅原 直樹うめはら なおき

Twitter:@numehahttp://numeha.hatenablog.com/

#devsumiD

Page 4: iOSアプリケーションの継続的デリバリー

http://www.slideshare.net/numeha/ricoh-ucs-for-ipad

Developers Summit 2013

Page 5: iOSアプリケーションの継続的デリバリー
Page 6: iOSアプリケーションの継続的デリバリー

ACTION!

Page 7: iOSアプリケーションの継続的デリバリー

一年間ネタを探しながら一生懸命働く

http://www.flickr.com/photos/davefayram/5909547615

Page 8: iOSアプリケーションの継続的デリバリー
Page 10: iOSアプリケーションの継続的デリバリー

ß

http://event.shoeisha.jp/devsumi

Page 11: iOSアプリケーションの継続的デリバリー

株式会社 リコー

Page 12: iOSアプリケーションの継続的デリバリー

新規事業を生み出すために

クラウド関連とiOS関連の

ソフトウェア開発をしています

Page 13: iOSアプリケーションの継続的デリバリー

よろしくお願いします

Page 14: iOSアプリケーションの継続的デリバリー

STORY!

Page 15: iOSアプリケーションの継続的デリバリー

2012年6月とあるiOS開発プロジェクトL

に立候補

俺に任せろ

Page 16: iOSアプリケーションの継続的デリバリー

http://free-pictograms.com/14-life/261-life.html

iOSの開発経験がない(利用経験もない。むしろAndroid派)

そもそもチームがいない

仕様もない

なぜかそこに納期だけがあった

Page 17: iOSアプリケーションの継続的デリバリー

プレイングマネージャとして活動した約1年半

http://free-pictograms.com/14-life/261-life.html

何からどうやれば

Page 18: iOSアプリケーションの継続的デリバリー

STORY!1. Background UCS & iOS & Enterprise

2. Practice 価値のあるソフトウェアを作るチーム形成 継続的デリバリーの取り組み 実機を利用した自動テストのテクニック

Page 19: iOSアプリケーションの継続的デリバリー

RICOH UCS(Unified Communication System)

2011年8月22日ビデオ会議市場に新規参入

Page 20: iOSアプリケーションの継続的デリバリー

簡単さ・使いやすさを追求した

少人数(約5名)向けの

ポータブル型のビデオ会議システム

P3000

http://www.ricoh.co.jp/ucs

Page 21: iOSアプリケーションの継続的デリバリー

各拠点間

新たなビジネス・コミュニケーションを提供するiOSプロジェクト

Page 22: iOSアプリケーションの継続的デリバリー

⚠当日はムービーを流しました

Page 23: iOSアプリケーションの継続的デリバリー

iPad版

http://www.apple.com/ipad-mini/overview/

iPad版(2013/1/31 Release)

iPhone版(2013/9/10 Release)

Page 24: iOSアプリケーションの継続的デリバリー

クラウド

iOSアプリにとってクラウドはなくてはならない存在

♥ クラウドをどう作る/使うのかどこにビジネス価値を与えるのか

Page 25: iOSアプリケーションの継続的デリバリー

(M)BaaS等によりクラウド利用が身近に

http://www.kinvey.com/backend-as-a-service

Page 26: iOSアプリケーションの継続的デリバリー

クラウド♥ビジネスに直結したコミュニケーション手段

お客様のビジネスを止めるようなことはあってはならない

品質を追求することによるビジネス価値

Page 27: iOSアプリケーションの継続的デリバリー

それはお客様のビジネスに

なくてはならないものになっているか

このような状態に早く出来るのか。そしてその状態を維持できるのか

Page 28: iOSアプリケーションの継続的デリバリー

iOSアプリケーションの継続的デリバリー

〜エンタープライズ品質のiOSアプリケーションを目指して〜

Page 29: iOSアプリケーションの継続的デリバリー

僕たちは価値のあるソフトウェアを早く継続的にデリバリーしお客様を満足させなくては

ならない

Page 30: iOSアプリケーションの継続的デリバリー

僕たちは

価値のあるソフトウェアを早く継続的にデリバリーしお客様を満足させなくては

ならない

Page 31: iOSアプリケーションの継続的デリバリー

http://www.flickr.com/photos/seanhobson/4272482225

ソフトウェアは、価値がある限り開発し続けなければならない

Page 32: iOSアプリケーションの継続的デリバリー

価値のあるソフトウェアは人間しか作れない/わからない

Page 33: iOSアプリケーションの継続的デリバリー

価値を生み出せるチーム(ワーク)が価値である

Page 34: iOSアプリケーションの継続的デリバリー

DeveloperTest Engineer

Leader

Team

Test EngineerとDeveloperは別の職業製品の品質について責任を持つ コードの品質について責任を持つ

製品価値の高いものから開発する製品価値を考えながら、 受け入れテストを自動化する

Page 35: iOSアプリケーションの継続的デリバリー

Developer

Test Engineer

協力する

役割は違うけれども向いているゴールは同じ

価値のあるソフトウェア

Page 36: iOSアプリケーションの継続的デリバリー

Feature概要

Featureシナリオ/ステップ

受け入れテスト

Developer

Test Engineer

設計 実装開発者テスト

価値のあるソフトウェアを開発するパイプライン

Page 37: iOSアプリケーションの継続的デリバリー

Feature概要

Featureシナリオ/ステップ

受け入れテスト

Developer

Test Engineer

設計 実装開発者テスト

価値のあるソフトウェアを考える

Page 38: iOSアプリケーションの継続的デリバリー

僕たちは

最小限の機能で市場価値を生み出せるのか

いまやるべきなのか後でもいいのかを意識する

Page 39: iOSアプリケーションの継続的デリバリー

MMFMinimum Marketable Feature

Page 40: iOSアプリケーションの継続的デリバリー

Feature1

Feature2

Feature3

Feature4

Feature5

Feature6

Feature7

Feature8

これが

MMF

お客様に提供する価値の優先度

これだけで市場価値を生むことが出来るのか

Page 41: iOSアプリケーションの継続的デリバリー

RICOH UCS for iOSのMMFモバイルユーザとして、

開催中のP3000 の会議に途中参加して映像と音声で相手とコミュニケーションしたい、

それは会議の開催場所でなくても参加したいからだ最初に書いたラフスケッチ

Page 42: iOSアプリケーションの継続的デリバリー

お客様に聞いて価値を確かめる

Page 43: iOSアプリケーションの継続的デリバリー

ここでダメならそこで終了

Feature1

Feature2

Feature3

Feature4

Feature5

Feature6

Feature7

Feature8

> 実装の優先度

どこで1st release

するかはビジネス判断

お客様に提供する価値の優先度

Page 44: iOSアプリケーションの継続的デリバリー

小さく設計して小さく実装することで手戻りを最小化する

Page 45: iOSアプリケーションの継続的デリバリー

大きく育てる大きく育てる

Page 46: iOSアプリケーションの継続的デリバリー

Feature概要

Featureシナリオ/ステップ

受け入れテスト

Developer

Test Engineer

設計 実装開発者テスト

Page 47: iOSアプリケーションの継続的デリバリー

Feature概要

Featureシナリオ/ステップ

受け入れテスト

Developer

Test Engineer

設計 実装開発者テスト

お客様に価値を与えるシナリオを自然言語で作る

実機で動くテストコードを書く

テストをしながら仕様を決める

Page 48: iOSアプリケーションの継続的デリバリー

Feature概要

Featureシナリオ/ステップ

受け入れテスト

Developer

Test Engineer

設計 実装開発者テスト

1つのFeatureを実現する実装をする

受け入れテストでは実現できない内部ロジックのテスト

Featureを確認しながら実装する

Page 49: iOSアプリケーションの継続的デリバリー

Background: Given the following contacts exist: | device | another_device | subscription | ask | | ios1 | ios2 | both | | And "ios1" go to contactlist view And "ios2" go to contactlist view

Scenario: "ios1" can join conference Given "ios3" go to contactlist view And the following accounts start conference: | device | | ios2 | | ios3 | Then "ios1" should see the presence of "meeting" within row of "ios2" When "ios1" touch the row of "ios2" Then "ios1" should be on video view And "ios1" should see 3 participants And "ios1" should not see the private meeting image

iOS1とiOS2の2台のデバイスが

コンタクトリスト画面にいる

iOS3のデバイスがコンタクトリスト画面

にいてiOS2とiOS3が会議を

始める

iOS1からiOS2は会議中にみえ

iOS1がiOS2をタッチすると会議に参加する

Featureシナリオ/ステップ

お客様への価値を自然言語で確認でき自動で動くコードにもなる

Page 50: iOSアプリケーションの継続的デリバリー

⚠当日はムービーを流しました

Page 51: iOSアプリケーションの継続的デリバリー

Feature概要

Featureシナリオ/ステップ

受け入れテスト

Developer

Test Engineer

設計 実装開発者テスト

仕様/テスト/実装を平行して行うことで正しい製品・コードに近づく

Page 52: iOSアプリケーションの継続的デリバリー

1つのFeature開発が終わった時にリリース可能な状態になる

Page 53: iOSアプリケーションの継続的デリバリー

僕たちは価値のあるソフトウェアを早く継続的にデリバリーしお客様を満足させなくては

ならない

Page 54: iOSアプリケーションの継続的デリバリー

僕たちは価値のあるソフトウェアを

早く継続的にデリバリーしお客様を満足させなくては

ならない

Page 55: iOSアプリケーションの継続的デリバリー

http://www.flickr.com/photos/seanhobson/4272482225

ソフトウェアは、価値がある限り開発し続けなければならない

Page 56: iOSアプリケーションの継続的デリバリー

継続的改善で1secでも早く

Page 57: iOSアプリケーションの継続的デリバリー

iOSアプリはどのくらいのスピードでリリース可能なのか

Page 58: iOSアプリケーションの継続的デリバリー

XCodeor

Application LoaderiTunes Connect App Store

App Review

Ave:7daysPackageSubmit

iOS 最高でも

1ヶ月で約4回リリース

Cloud 無限大にリリース可能

クラウド

Install

Page 59: iOSアプリケーションの継続的デリバリー

(App Reviewのボトルネックはあるが)

クラウドと同様に継続的にデリバリーが可能な

仕組みを作らなければならない

Page 60: iOSアプリケーションの継続的デリバリー

★1.0.0

2013年 1 2 3 4 5 6 7 8 9 10 11 12

★1.0.1

★1.1.0

★1.1.1

★1.2.0

★1.3.0

★1.5.0

★2.0.0

★2.0.1

★2.1.0

★2.2.0

★2.3.0

RICOH UCS for iOSのリリース

(機能UP&不具合修正で)

1年間で12回のリリース

Page 61: iOSアプリケーションの継続的デリバリー

これが多いか少ないかは置いておいて

http://www.flickr.com/photos/odolphie/2397582359

リリースのリズムを作る

Page 63: iOSアプリケーションの継続的デリバリー

ビジネスの主導権を得るために

http://www.allaboutagile.com/7-reasons-why-continuous-delivery-needs-to-be-a-business-initiative/

Page 64: iOSアプリケーションの継続的デリバリー

http://www.flickr.com/photos/56155476@N08/6660135637

ユーザを早期に獲得し競争力あるプロダクトを早く実現する

Page 65: iOSアプリケーションの継続的デリバリー

ビルド デプロイ テスト リリース

小さく繰り返す

リリースまでのパイプラインコードのコミットをしてからミスなく自動的に早くリリースしたい

お客様に価値を継続的にデリバリーする唯一の方法

自動化

Page 66: iOSアプリケーションの継続的デリバリー

徹底的に自動化する(⚠App申請だけは手動)

http://cdn.morguefile.com/imageData/public/files/m/mconnors/preview/fldr_2003_06_18/file0002046882848.jpg

Page 67: iOSアプリケーションの継続的デリバリー

受け入れビルド

デプロイon

iPhone/iPad

受け入れテスト

リリースビルド

デプロイon

Simulator

単体/結合テスト

リリースコード品質のパイプライン

製品品質のパイプライン

継続的デリバリーするパイプライン繰り返しやることは全て自動化する

Page 68: iOSアプリケーションの継続的デリバリー

受け入れビルド

デプロイon

iPhone/iPad

受け入れテスト

リリースビルド

デプロイon

Simulator

単体/結合テスト

リリースコード品質のパイプラインコードの内部状態を徹底的に可視化する

製品品質のパイプライン

Page 69: iOSアプリケーションの継続的デリバリー

受け入れビルド

デプロイon

iPhone/iPad

受け入れテスト

リリースビルド

デプロイon

Simulator

単体/結合テスト

リリース

製品品質のパイプライン

Installed Jenkins Plugins1. コード取得 -> Git2. ビルド -> Xcode3. コード行数 -> SLOCCount4. 重複コード -> DRY5. 警告 -> Warnings

ビルドを壊していないか。コードは健全なのか

Page 70: iOSアプリケーションの継続的デリバリー

受け入れビルド

デプロイon

iPhone/iPad

受け入れテスト

リリースビルド

デプロイon

Simulator

単体/結合テスト

リリース

製品品質のパイプライン

1. テスト実行 (GHUnit) > ios-sim launch xxx.app --family {$DEVICE}

2. カバレッジ > gcovr {$BUILD_DIR}

cobertura plugin

3. テスト集計

書いたコードが正しくテストされているか

Page 71: iOSアプリケーションの継続的デリバリー

受け入れビルド

デプロイon

iPhone/iPad

受け入れテスト

リリースビルド

デプロイon

Simulator

単体/結合テスト

リリース製品品質のパイプライン実機を利用した自動テストを重視する/徹底的に行う

Page 72: iOSアプリケーションの継続的デリバリー

iOSアプリケーションの受け入れ自動テストの

テクニック

Page 73: iOSアプリケーションの継続的デリバリー

受け入れビルド

デプロイon

iPhone/iPad

受け入れテスト

リリースビルド

デプロイon

Simulator

単体/結合テスト

リリースApplication

Test Frameworkhttp

操作

テストフレームワークを同梱してビルド

Page 74: iOSアプリケーションの継続的デリバリー

受け入れビルド

デプロイon

iPhone/iPad

受け入れテスト

リリースビルド

デプロイon

Simulator

単体/結合テスト

リリース

自動でipaファイル作成複数のデバイスに自動でインストール

fruitstrapor

instruments

ビルドサーバ

Page 75: iOSアプリケーションの継続的デリバリー

受け入れビルド

デプロイon

iPhone/iPad

受け入れテスト

リリースビルド

デプロイon

Simulator

単体/結合テスト

リリース実に奥が深い...

Page 76: iOSアプリケーションの継続的デリバリー

Application

Frank

Application

Frank

Application

Frank

HTTPで外部から複数台のiOS端末を操作

Page 77: iOSアプリケーションの継続的デリバリー

Application

Frank

Application

Frank

Application

Frank

しかしiOS7からTouch等の操作API禁止

Page 78: iOSアプリケーションの継続的デリバリー

Application

Test FrameworkCalabash

iOSFrank

iOS7はinstruments経由

で操作iOS6はHTTP経由

⚠ビルドマシン一台につきiOS一台しか操作できない...

Page 79: iOSアプリケーションの継続的デリバリー

Application

Test FrameworkCalabash

iOSFrank

Application

Test FrameworkCalabash

iOSFrank

Application

Test FrameworkCalabash

iOSFrank

VM1

VM2

VMを複数動かしVM間でアプリ操作コマンドのやりとりを独自実装

Page 80: iOSアプリケーションの継続的デリバリー

Application

Frank

Application Application

CalabashiOS

Test Framework

FrankCalabashiOS

Test Framework

FrankCalabashiOS

Test Framework

iOS6でもiOS7でも複数台のiOS端末の操作を実現!!

Page 81: iOSアプリケーションの継続的デリバリー

受け入れビルド

デプロイon

iPhone/iPad

受け入れテスト

リリースビルド

デプロイon

Simulator

単体/結合テスト

リリース

異なるiOSデバイス、異なるOS、

異なるネットワーク環境で受け入れテストを常に実行

Page 82: iOSアプリケーションの継続的デリバリー

×

iPad, iPhone, iPod Touch

×iOS6, iOS7

Proxy, Low Bandwidth, etc※ お客様の様々なネットワーク環境を想定する

24時間365日、テストは走り続ける〜ここまでやってエンタープライズ品質〜

デバイス

OS

ネットワーク環境

Page 83: iOSアプリケーションの継続的デリバリー

ビルドサーバ

iPhone

iPod Touch

iPad

iOS6 & 7

Page 84: iOSアプリケーションの継続的デリバリー

⚠当日はムービーを流しました

Page 85: iOSアプリケーションの継続的デリバリー

 しかし、テストはFeatureが増えるに

つれて必ず遅くなる

Page 86: iOSアプリケーションの継続的デリバリー

空き端末を探して、テストを並列実行させる仕組みで高速化

増え続けるFeature

テスト振り分けProxy

Page 87: iOSアプリケーションの継続的デリバリー

Calabash-iOS

0.9.162 -> 0.9.163October 27, 2013 January 7, 2014

Fantastic Speedup!!!

Page 88: iOSアプリケーションの継続的デリバリー

継続的改善で1secでも早く

Page 89: iOSアプリケーションの継続的デリバリー

僕たちは価値のあるソフトウェアを早く継続的にデリバリーしお客様を満足させなくては

ならない

Page 90: iOSアプリケーションの継続的デリバリー

Feature概要

Featureシナリオ/ステップ

受け入れテスト

Developer

Test Engineer

設計 実装開発者テスト

価値のあるソフトウェアを開発するパイプライン

Page 91: iOSアプリケーションの継続的デリバリー

受け入れビルド

デプロイon

iPhone/iPad

受け入れテスト

リリースビルド

デプロイon

Simulator

単体/結合テスト

リリースコード品質のパイプライン

製品品質のパイプライン

継続的デリバリーするパイプライン繰り返しやることは全て自動化する

Page 92: iOSアプリケーションの継続的デリバリー

受け入れビルド

デプロイon

iPhone/

受け入れテスト

リリースビルド

デプロイon

Simulator

単体/結合テスト

リリース

Feature概要

Featureシナリオ/ステップ

受け入れテスト

Developer

Test Engineer

設計 実装開発者テスト

価値のあるソフトウェアを

早く継続的にデリバリー

Page 93: iOSアプリケーションの継続的デリバリー

http://www.flickr.com/photos/49547334@N02/4725090871

僕たちははじめにリリースまでのパイプラインを作った

Page 94: iOSアプリケーションの継続的デリバリー

●プロジェクト

開始

★1.0.0

2012 2013 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12

★1.0.1

★1.1.0

★1.1.1

★1.2.0

★1.3.0

★1.5.0

★2.0.0

★2.0.1

★2.1.0

★2.2.0

★2.3.0

プロジェクト開始時にものがなくても仕組みを作る

1stリリースまでパイプラインのテストがされ

アップデートのリズムができる

Page 95: iOSアプリケーションの継続的デリバリー

受け入れビルド

デプロイon

iPhone/

受け入れテスト

リリースビルド

デプロイon

Simulator

単体/結合テスト

リリース

Feature概要

Featureシナリオ/ステップ

受け入れテスト

Developer

Test Engineer

設計 実装開発者テスト

価値のあるソフトウェアを

早く継続的にデリバリー

これを繰り返す

Page 96: iOSアプリケーションの継続的デリバリー

0.1リリース

0.2リリース

0.3リリース

0.4リリース

Page 97: iOSアプリケーションの継続的デリバリー

http://www.flickr.com/photos/seanhobson/4272482225

そのリズムが継続的なデリバリーを可能にする

Page 98: iOSアプリケーションの継続的デリバリー

iOSアプリケーションの継続的デリバリー

は一日にしてならず

Page 99: iOSアプリケーションの継続的デリバリー

まとめ

Page 100: iOSアプリケーションの継続的デリバリー

僕たちは価値のあるソフトウェアを早く継続的にデリバリーしお客様を満足させなくては

ならない

Page 101: iOSアプリケーションの継続的デリバリー

http://www.flickr.com/photos/seanhobson/4272482225

ソフトウェアは、価値がある限り開発し続けなければならない

Page 102: iOSアプリケーションの継続的デリバリー

DeveloperTest Engineer

Leader

Team

Test EngineerとDeveloperは別の職業

製品の品質について責任を持つ製品価値を考えながら、 受け入れテストを自動化する

コードの品質について責任を持つ

製品価値の高いものから開発する

Page 103: iOSアプリケーションの継続的デリバリー

Developer

Test Engineer

協力する

役割は違うけれども向いているゴールは同じ

価値のあるソフトウェア

Page 104: iOSアプリケーションの継続的デリバリー

MMFMinimum Marketable Feature

Page 105: iOSアプリケーションの継続的デリバリー

Feature概要

Featureシナリオ/ステップ

受け入れテスト

Developer

Test Engineer

設計 実装開発者テスト

仕様/テスト/実装を平行して行うことで正しい製品・コードに近づく

Page 106: iOSアプリケーションの継続的デリバリー

(App Reviewのボトルネックはあるが)

クラウドと同様に継続的にデリバリーが可能な

仕組みを作らなければならない

Page 107: iOSアプリケーションの継続的デリバリー

http://www.flickr.com/photos/odolphie/2397582359

リリースのリズムを作る

Page 108: iOSアプリケーションの継続的デリバリー

徹底的に自動化する(⚠App申請だけは手動)

http://cdn.morguefile.com/imageData/public/files/m/mconnors/preview/fldr_2003_06_18/file0002046882848.jpg

Page 109: iOSアプリケーションの継続的デリバリー

受け入れビルド

デプロイon

iPhone/iPad

受け入れテスト

リリースビルド

デプロイon

Simulator

単体/結合テスト

リリースコード品質のパイプライン

製品品質のパイプライン

継続的デリバリーするパイプライン繰り返しやることは全て自動化する

Page 110: iOSアプリケーションの継続的デリバリー

Application

Frank

Application Application

CalabashiOS

Test Framework

FrankCalabashiOS

Test Framework

FrankCalabashiOS

Test Framework

iOS6でもiOS7でも複数台のiOS端末の操作を実現!!

Page 111: iOSアプリケーションの継続的デリバリー

ビルドサーバ

iPhone

iPod Touch

iPad

iOS6 & 7

Page 112: iOSアプリケーションの継続的デリバリー

×

iPad, iPhone, iPod Touch

×iOS6, iOS7

Proxy, Low Bandwidth, etc※ お客様の様々なネットワーク環境を想定する

24時間365日、テストは走り続ける〜ここまでやってエンタープライズ品質〜

デバイス

OS

ネットワーク環境

Page 113: iOSアプリケーションの継続的デリバリー

継続的改善で1secでも早く

Page 114: iOSアプリケーションの継続的デリバリー

受け入れビルド

デプロイon

iPhone/

受け入れテスト

リリースビルド

デプロイon

Simulator

単体/結合テスト

リリース

Feature概要

Featureシナリオ/ステップ

受け入れテスト

Developer

Test Engineer

設計 実装開発者テスト

価値のあるソフトウェアを

早く継続的にデリバリー

Page 115: iOSアプリケーションの継続的デリバリー

http://www.flickr.com/photos/49547334@N02/4725090871

僕たちははじめにリリースまでのパイプラインを作った

Page 116: iOSアプリケーションの継続的デリバリー

受け入れビルド

デプロイon

iPhone/

受け入れテスト

リリースビルド

デプロイon

Simulator

単体/結合テスト

リリース

Feature概要

Featureシナリオ/ステップ

受け入れテスト

Developer

Test Engineer

設計 実装開発者テスト

価値のあるソフトウェアを

早く継続的にデリバリー

これを繰り返す

Page 117: iOSアプリケーションの継続的デリバリー

http://www.flickr.com/photos/seanhobson/4272482225

そのリズムが継続的なデリバリーを可能にする

Page 118: iOSアプリケーションの継続的デリバリー

iOSアプリケーションの継続的デリバリー

〜エンタープライズ品質のiOSアプリケーションを目指して〜

梅原 直樹Naoki UMEHARA 14/2/2014

Developers Summit 2014 [14-D-5]

ご 清 聴あ り が と う ご ざ い ま し た