SlideShare a Scribd company logo
Copyright © DeNA Co.,Ltd. All Rights Reserved.
iOS Creators' Meetup vol.2
2016/10/14(Fri)
平田敏之@DeNA
iOSアプリにおけるリリースフロー
とCI環境
Copyright © DeNA Co.,Ltd. All Rights Reserved.
自己紹介
 平田 敏之@DeNA
⁃ 経歴
• GWの開発 → ホムペサービスの開発、iOSアプリの開発 → SWET
⁃ SWET(Software Engineer in Test)
• 事業サポートチーム / テスト基盤チーム
• ミッション
⁃ DeNAサービス全般の品質向上
⁃ DeNAエンジニアの開発生産性向上
⁃ 私がやっていること(の一部)
• クライアントアプリ周りのテスト戦略、自動テストの開発
• CI/CD環境整備
• テスト基盤環境の開発
• iOS Test Night 主催
⁃ http://testnight.connpass.com/event/41323/
Copyright © DeNA Co.,Ltd. All Rights Reserved.
はじめに
 リリースフローの1サイクルに時間がかかっていませんか?
⁃ (例えば)開発・検証のサイクルに時間がかかっていませんか?
• このサイクル内でコミュニケーションの発生が多くありませんか?
• 色々と手動でやっていませんか?
 CI環境をどこまで導入できていますか?
⁃ 手動で色々やっている箇所がありませんか?
⁃ 開発のメンバーだけが利用していませんか?
⁃ Xcode、Jenkins、BTS、Slackなどを何度も行き来していませんか?
• コンテキストスイッチが発生しまくっていませんか?
Copyright © DeNA Co.,Ltd. All Rights Reserved.
iOSアプリにおけるリリースフロー(例)
特に(2)のサイクルをいかに「簡単」に「すばやく」まわせるかが大事
 企画
↓
 (デザイン)
 開発
 検証
 iTunes ConnectへのバイナリUpload
↓
 Appleへ審査提出
⁃ 各種データの更新
 Appleの審査
 AppStoreへリリース
 リリース後検証
(1)
(2)
(3)
※これ以外にServerのDeployもあるのが一般的です。
Copyright © DeNA Co.,Ltd. All Rights Reserved.
CI環境がない世界
開発 検証
iTunes Connect
Archive → Upload to AppStore
(1) 機能実装・修正
(2) Xcodeを使ってアプリを端末にインストール
(3) 検証 / バグがあれば(1)へ
(4) Xcodeを使ってProduct -> Archive
(5) XcodeのOrganizerを使ってUpload to App Store
Copyright © DeNA Co.,Ltd. All Rights Reserved.
CI環境がある世界
開発 検証 iTunes Connect
upload
deploy
DeployGate / Fabric etc
auto test
SwiftLint
etc
bot
Remote Access API
BTS
mention
mention
Copyright © DeNA Co.,Ltd. All Rights Reserved.
ざっくりとした流れ
 開発
⁃ 実装
• (1) 静的解析
• (2) アプリのビルド
• (3) アプリの自動テスト
• (4) コードレビュー(第三者が関わる)
⁃ (1)〜(3)までを終えてから
 検証
⁃ (1) 検証対象となるアプリのインストール
• JenkinsやDeployGateなどからインストール
⁃ (2) バグ報告
• BTSに起票
 iTunes Connectへのupload
⁃ 検証で問題なければリリース候補としてupload
Copyright © DeNA Co.,Ltd. All Rights Reserved.
CI環境がある場合のリリースフロー (1/2)
 開発
⁃ 静的解析(SwiftLint etc)
• ここらへんをコードレビューで指摘するのは時間の無駄
⁃ アプリのビルド(fastlane gym)
• ※マシンパワーを良くしてビルド時間を短くする※
• ビルドできないようなものをレビューに出さない
⁃ アプリの自動テスト(XCUITest / EarlGrey / Appium)
• ※並列化などで実行時間を短くする※
• テストが通らないものをレビューに出さない
⁃ アプリのデプロイ(fastlane deploygate etc)
• 容量問題がなければ毎ビルド毎にデプロイしてしまうのが良い
⁃ コードレビュー
• ※一番ヒューマンコストが高いので無駄なことは避ける※
• 設計周りについて相談があれば早めにPull Requestを出す
Copyright © DeNA Co.,Ltd. All Rights Reserved.
CI環境がある場合のリリースフロー (2/2)
 検証
⁃ 検証対象のアプリのインストール(DeployGate etc)
• 検証担当者自身でインストール
⁃ バグがあれば指摘(JIRA etc)
• BTSに起票するとSlackで担当者宛にmentionが来る
 検証終了(fastlane deliver)
⁃ リリース候補版としてiTunes Connectにupload
• bot(またはJenkins)を用いてupload
⁃ 場合によっては、1サイクルの間にいくつもuploadされる
Copyright © DeNA Co.,Ltd. All Rights Reserved.
CI環境があることによるメリット(の一部)
 集中するべきものに集中できる。
⁃ コンテキストスイッチは極力少なめに。
 常に動くアプリが存在する。
⁃ 久しぶりにアプリをビルドしたらできなかったとかは無い。
⁃ アプリを見たい人にすぐ渡すことが出来る。
 常にある程度の品質を担保した状態になっている。
⁃ ある程度=何をおこなっているか次第
Copyright © DeNA Co.,Ltd. All Rights Reserved.
まとめ
 リリースフローをいかに「簡単」に「すばやく」まわせるかが大事
⁃ そのためにはCI環境は必須
 CI環境はプロダクトに関わる全ての人にとって必要な環境
⁃ 誰もが利用できるようにするのが良い
 CI環境をしっかりと用意してリリースを楽にしましょう
⁃ CI環境の導入による苦労話(運用コストや属人化)はまた別の話
• これもある程度は軽減できます

More Related Content

PPTX
iOSアプリ開発のCI環境 - Jenkins編 -
Toshiyuki Hirata
 
PPTX
Xcodeの管理を楽に - Jenkins編 -
Toshiyuki Hirata
 
PPTX
バージョンアップの対応を軽減するためのサービスの構築
Toshiyuki Hirata
 
PPTX
マスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービス
Toshiyuki Hirata
 
PPTX
スマホアプリディレクターが考えていること
Kazuaki KURIU
 
PPTX
Bluepillを使ったiOS自動テストの並列化
Toshiyuki Hirata
 
PPTX
UIテストの実行時間の短縮の方法
Toshiyuki Hirata
 
PPTX
iOSアプリの自動テストをはじめよう
Toshiyuki Hirata
 
iOSアプリ開発のCI環境 - Jenkins編 -
Toshiyuki Hirata
 
Xcodeの管理を楽に - Jenkins編 -
Toshiyuki Hirata
 
バージョンアップの対応を軽減するためのサービスの構築
Toshiyuki Hirata
 
マスティフ (for Xcode beta) - バージョンアップ対応を軽減するためのサービス
Toshiyuki Hirata
 
スマホアプリディレクターが考えていること
Kazuaki KURIU
 
Bluepillを使ったiOS自動テストの並列化
Toshiyuki Hirata
 
UIテストの実行時間の短縮の方法
Toshiyuki Hirata
 
iOSアプリの自動テストをはじめよう
Toshiyuki Hirata
 

What's hot (20)

PPTX
バージョンアップ対応を軽減するサービス:マスティフ
Toshiyuki Hirata
 
PPTX
2017年のiOSアプリ開発におけるCI事情
Toshiyuki Hirata
 
PPTX
DroidKaigi_devicefarm
Shunsuke Maeda
 
PPTX
fastlane x iOSアプリのCI
Toshiyuki Hirata
 
PPTX
Xcode10での テスト周りの進化をふりかえる
Toshiyuki Hirata
 
PDF
iOSで利用できるデバイスファームのメリット・デメリットの紹介
Shunsuke Maeda
 
PPTX
Pull request時の画面差分取得の自動化
Shunsuke Maeda
 
PPTX
fastlane snapshotの並列実行についてまとめてみた
Toshiyuki Hirata
 
PPTX
DeNAにおけるSWETの役割
Toshiyuki Hirata
 
PPTX
Dangerでpull requestレビューの指摘事項を減らす
Shunsuke Maeda
 
PDF
iOSにおけるコードレビューを一歩先へ進める
Shunsuke Maeda
 
PPTX
Androidアプリ開発のテスト環境
Toshiyuki Hirata
 
PPTX
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
Toshiyuki Hirata
 
PPTX
コードレビューをより良くする Danger x Android
Toshiyuki Hirata
 
PPTX
Android e2e testing at mercari
Vishal Banthia
 
PPTX
STFとAppiumをもちいたAndroidアプリの自動テスト
Toshiyuki Hirata
 
PPTX
JaSST'16 Tokyo モバイルセッション
mirer
 
PPTX
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
gree_tech
 
PDF
OpenSTFを ECSに乗せてみた話
司 知花
 
PDF
Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬
Masanori Satoh
 
バージョンアップ対応を軽減するサービス:マスティフ
Toshiyuki Hirata
 
2017年のiOSアプリ開発におけるCI事情
Toshiyuki Hirata
 
DroidKaigi_devicefarm
Shunsuke Maeda
 
fastlane x iOSアプリのCI
Toshiyuki Hirata
 
Xcode10での テスト周りの進化をふりかえる
Toshiyuki Hirata
 
iOSで利用できるデバイスファームのメリット・デメリットの紹介
Shunsuke Maeda
 
Pull request時の画面差分取得の自動化
Shunsuke Maeda
 
fastlane snapshotの並列実行についてまとめてみた
Toshiyuki Hirata
 
DeNAにおけるSWETの役割
Toshiyuki Hirata
 
Dangerでpull requestレビューの指摘事項を減らす
Shunsuke Maeda
 
iOSにおけるコードレビューを一歩先へ進める
Shunsuke Maeda
 
Androidアプリ開発のテスト環境
Toshiyuki Hirata
 
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
Toshiyuki Hirata
 
コードレビューをより良くする Danger x Android
Toshiyuki Hirata
 
Android e2e testing at mercari
Vishal Banthia
 
STFとAppiumをもちいたAndroidアプリの自動テスト
Toshiyuki Hirata
 
JaSST'16 Tokyo モバイルセッション
mirer
 
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
gree_tech
 
OpenSTFを ECSに乗せてみた話
司 知花
 
Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬
Masanori Satoh
 
Ad

Similar to iOSアプリにおけるリリースフローとCI環境 (20)

PPTX
Open STF Plugin 作ってみた
justice_sm
 
PDF
Mobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechcon
DeNA
 
PDF
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
Yuki Ando
 
PDF
2014-04-22 Ques #4 Automation Testing of Mobage Platform
Masaki Nakagawa
 
PPTX
DeNAが取り組む Software Engineer in Test
Masaki Nakagawa
 
PPTX
5minQues - SWET近況報告
Masaki Nakagawa
 
PPTX
devsami kansai 2012 #c2
Yushi_Takagi
 
PDF
ここが良かったDatadog
tyamane
 
PDF
Ossを使ったazureでのdev ops
裕貴 荒井
 
PPTX
Unityネイティブプラグインマニアクス #denatechcon
DeNA
 
PDF
Windows 8 Developers カンファレンス
Kaoru NAKAMURA
 
PDF
20221017_QiitaNight_ver2.pdf
yuyayamaguchi6
 
PDF
【QCon】 Get Clean, Stay Clean 価値を向上し続けるための秘訣 #QConTokyo
智治 長沢
 
PDF
Introduction to Visual Studio App Center
Takeshi Fujimoto
 
PDF
チラシルiOSでの広告枠開発
Satoshi Takano
 
PPTX
FINAL FANTASY Record Keeperのマスターデータを支える技術
dena_study
 
PDF
【Agile Conference tokyo 2011】 継続的フィードバック
智治 長沢
 
PPTX
ソニーでElectronアプリをリリースしてみた
Yasuharu Seki
 
PDF
Dockerコミュニティ近況
Akihiro Suda
 
PDF
【#VSUG DAY】Team Foundation Server を乗りこなすコツ教えます
智治 長沢
 
Open STF Plugin 作ってみた
justice_sm
 
Mobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechcon
DeNA
 
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
Yuki Ando
 
2014-04-22 Ques #4 Automation Testing of Mobage Platform
Masaki Nakagawa
 
DeNAが取り組む Software Engineer in Test
Masaki Nakagawa
 
5minQues - SWET近況報告
Masaki Nakagawa
 
devsami kansai 2012 #c2
Yushi_Takagi
 
ここが良かったDatadog
tyamane
 
Ossを使ったazureでのdev ops
裕貴 荒井
 
Unityネイティブプラグインマニアクス #denatechcon
DeNA
 
Windows 8 Developers カンファレンス
Kaoru NAKAMURA
 
20221017_QiitaNight_ver2.pdf
yuyayamaguchi6
 
【QCon】 Get Clean, Stay Clean 価値を向上し続けるための秘訣 #QConTokyo
智治 長沢
 
Introduction to Visual Studio App Center
Takeshi Fujimoto
 
チラシルiOSでの広告枠開発
Satoshi Takano
 
FINAL FANTASY Record Keeperのマスターデータを支える技術
dena_study
 
【Agile Conference tokyo 2011】 継続的フィードバック
智治 長沢
 
ソニーでElectronアプリをリリースしてみた
Yasuharu Seki
 
Dockerコミュニティ近況
Akihiro Suda
 
【#VSUG DAY】Team Foundation Server を乗りこなすコツ教えます
智治 長沢
 
Ad

More from Toshiyuki Hirata (7)

PDF
iOSにおけるパフォーマンス計測
Toshiyuki Hirata
 
PDF
iOSにおけるパフォーマンス計測
Toshiyuki Hirata
 
PDF
iOSにおける自動テストの並列化
Toshiyuki Hirata
 
PDF
UIテスト(Espresso)の高速化をさらにすすめる
Toshiyuki Hirata
 
PDF
UIテストの実行時間を短縮させる方法
Toshiyuki Hirata
 
PDF
我が家のLINEを中心とした情報共有
Toshiyuki Hirata
 
PDF
レビューのコストを削減するための施策
Toshiyuki Hirata
 
iOSにおけるパフォーマンス計測
Toshiyuki Hirata
 
iOSにおけるパフォーマンス計測
Toshiyuki Hirata
 
iOSにおける自動テストの並列化
Toshiyuki Hirata
 
UIテスト(Espresso)の高速化をさらにすすめる
Toshiyuki Hirata
 
UIテストの実行時間を短縮させる方法
Toshiyuki Hirata
 
我が家のLINEを中心とした情報共有
Toshiyuki Hirata
 
レビューのコストを削減するための施策
Toshiyuki Hirata
 

Recently uploaded (9)

PPTX
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
PDF
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
PPTX
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
PDF
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
 
PDF
20250729_Devin-for-Enterprise
Masaki Yamakawa
 
PDF
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
PDF
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
PDF
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
PDF
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
 
20250729_Devin-for-Enterprise
Masaki Yamakawa
 
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 

iOSアプリにおけるリリースフローとCI環境

  • 1. Copyright © DeNA Co.,Ltd. All Rights Reserved. iOS Creators' Meetup vol.2 2016/10/14(Fri) 平田敏之@DeNA iOSアプリにおけるリリースフロー とCI環境
  • 2. Copyright © DeNA Co.,Ltd. All Rights Reserved. 自己紹介  平田 敏之@DeNA ⁃ 経歴 • GWの開発 → ホムペサービスの開発、iOSアプリの開発 → SWET ⁃ SWET(Software Engineer in Test) • 事業サポートチーム / テスト基盤チーム • ミッション ⁃ DeNAサービス全般の品質向上 ⁃ DeNAエンジニアの開発生産性向上 ⁃ 私がやっていること(の一部) • クライアントアプリ周りのテスト戦略、自動テストの開発 • CI/CD環境整備 • テスト基盤環境の開発 • iOS Test Night 主催 ⁃ http://testnight.connpass.com/event/41323/
  • 3. Copyright © DeNA Co.,Ltd. All Rights Reserved. はじめに  リリースフローの1サイクルに時間がかかっていませんか? ⁃ (例えば)開発・検証のサイクルに時間がかかっていませんか? • このサイクル内でコミュニケーションの発生が多くありませんか? • 色々と手動でやっていませんか?  CI環境をどこまで導入できていますか? ⁃ 手動で色々やっている箇所がありませんか? ⁃ 開発のメンバーだけが利用していませんか? ⁃ Xcode、Jenkins、BTS、Slackなどを何度も行き来していませんか? • コンテキストスイッチが発生しまくっていませんか?
  • 4. Copyright © DeNA Co.,Ltd. All Rights Reserved. iOSアプリにおけるリリースフロー(例) 特に(2)のサイクルをいかに「簡単」に「すばやく」まわせるかが大事  企画 ↓  (デザイン)  開発  検証  iTunes ConnectへのバイナリUpload ↓  Appleへ審査提出 ⁃ 各種データの更新  Appleの審査  AppStoreへリリース  リリース後検証 (1) (2) (3) ※これ以外にServerのDeployもあるのが一般的です。
  • 5. Copyright © DeNA Co.,Ltd. All Rights Reserved. CI環境がない世界 開発 検証 iTunes Connect Archive → Upload to AppStore (1) 機能実装・修正 (2) Xcodeを使ってアプリを端末にインストール (3) 検証 / バグがあれば(1)へ (4) Xcodeを使ってProduct -> Archive (5) XcodeのOrganizerを使ってUpload to App Store
  • 6. Copyright © DeNA Co.,Ltd. All Rights Reserved. CI環境がある世界 開発 検証 iTunes Connect upload deploy DeployGate / Fabric etc auto test SwiftLint etc bot Remote Access API BTS mention mention
  • 7. Copyright © DeNA Co.,Ltd. All Rights Reserved. ざっくりとした流れ  開発 ⁃ 実装 • (1) 静的解析 • (2) アプリのビルド • (3) アプリの自動テスト • (4) コードレビュー(第三者が関わる) ⁃ (1)〜(3)までを終えてから  検証 ⁃ (1) 検証対象となるアプリのインストール • JenkinsやDeployGateなどからインストール ⁃ (2) バグ報告 • BTSに起票  iTunes Connectへのupload ⁃ 検証で問題なければリリース候補としてupload
  • 8. Copyright © DeNA Co.,Ltd. All Rights Reserved. CI環境がある場合のリリースフロー (1/2)  開発 ⁃ 静的解析(SwiftLint etc) • ここらへんをコードレビューで指摘するのは時間の無駄 ⁃ アプリのビルド(fastlane gym) • ※マシンパワーを良くしてビルド時間を短くする※ • ビルドできないようなものをレビューに出さない ⁃ アプリの自動テスト(XCUITest / EarlGrey / Appium) • ※並列化などで実行時間を短くする※ • テストが通らないものをレビューに出さない ⁃ アプリのデプロイ(fastlane deploygate etc) • 容量問題がなければ毎ビルド毎にデプロイしてしまうのが良い ⁃ コードレビュー • ※一番ヒューマンコストが高いので無駄なことは避ける※ • 設計周りについて相談があれば早めにPull Requestを出す
  • 9. Copyright © DeNA Co.,Ltd. All Rights Reserved. CI環境がある場合のリリースフロー (2/2)  検証 ⁃ 検証対象のアプリのインストール(DeployGate etc) • 検証担当者自身でインストール ⁃ バグがあれば指摘(JIRA etc) • BTSに起票するとSlackで担当者宛にmentionが来る  検証終了(fastlane deliver) ⁃ リリース候補版としてiTunes Connectにupload • bot(またはJenkins)を用いてupload ⁃ 場合によっては、1サイクルの間にいくつもuploadされる
  • 10. Copyright © DeNA Co.,Ltd. All Rights Reserved. CI環境があることによるメリット(の一部)  集中するべきものに集中できる。 ⁃ コンテキストスイッチは極力少なめに。  常に動くアプリが存在する。 ⁃ 久しぶりにアプリをビルドしたらできなかったとかは無い。 ⁃ アプリを見たい人にすぐ渡すことが出来る。  常にある程度の品質を担保した状態になっている。 ⁃ ある程度=何をおこなっているか次第
  • 11. Copyright © DeNA Co.,Ltd. All Rights Reserved. まとめ  リリースフローをいかに「簡単」に「すばやく」まわせるかが大事 ⁃ そのためにはCI環境は必須  CI環境はプロダクトに関わる全ての人にとって必要な環境 ⁃ 誰もが利用できるようにするのが良い  CI環境をしっかりと用意してリリースを楽にしましょう ⁃ CI環境の導入による苦労話(運用コストや属人化)はまた別の話 • これもある程度は軽減できます