SlideShare a Scribd company logo
Visual Studio App Center
で始めるCI/CD
2018/07/26
shinjuku.aar #3
中島進也
Profile
• 名前:なかしょ(中島 進也)
• Twitter:@nakasho_dev
• ブログ:なかしょの技術日誌
http://nakasho-dev.hatenablog.jp/
• 最近の興味
TDD、アジャイル開発、Xamarin、Chatbot、Tizen
• 主な参加コミュニティ
JXUG、.NETラボ、Cogbot、Teratail、TestNight
※本資料は私個人の意見であり、所属企業・部門見解を代表するもの
ではありません。
2
なぜ、CI/CD環境が必要か(1/4)
• 対象機種の全OS、画面サイズのパターンをデベロッパーのマ
シンでテストしていたら実装にかける時間が失われる。
3
・2.3.3
・4.0
・4.0.3
・4.1
・4.2
・4.3
・4.4
・5.0
・5.1
・6.0
・7.0
・7.1
・8.0
・8.1
・2.45インチ
・4.6インチ
・5.2インチ
・6.0インチ
×
なぜ、CI/CD環境が必要か(2/4)
• 対象機種の全OS、画面サイズのパターンのテストをCI/CD
サーバに任せることで、実装に専念できる。
4
CI/CD
サーバ
単体テストが一つの
環境で全てパスした
らPush
α版、β版、プロ
ダクト版に応じて
リリース
なぜ、CI/CD環境が必要か(3/4)
• 取得したソースが同じでもビルド環境が異なればビルドが失
敗することや実機で正しく動作しないことがある
5
デベロッパー1環境
・ライブラリA 1.0.2
・ライブラリB 2.2.5
デベロッパー2環境
・ライブラリA 1.2.2
・ライブラリB 2.1.5
ビルド環境
のスノー
フレーク化
なぜ、CI/CD環境が必要か(4/4)
• 各デベロッパーの環境ではなく、CI/CDサーバでのテスト成
功を確認して、対象機能の実装完了とする。
6
デベロッパー1環境
デベロッパー2環境
CI/CD
サーバ
リポジトリが更新さ
れたらソースを取得
必要なテストを全て
パスしたらαリリー
ス
常に同じ環境でビル
ド・テスト
CI/CD環境の構築例(オンプレミス)
7
Git
リポジトリ
Ubuntu サーバ
TeamCity Server
Build Agent2
Build Agent3
Mac mini
TeamCity
Build Agent1
iPhone
Android
検証サーバ
商用サーバ
CIモニタ
CI/CD環境をオンプレミスで構築すると
• CI/CD環境の
ハードウェア費用
ソフトウェア費用
監視費用
維持メンテ費用
テスト端末費用
8
CI/CDの運用方法によっては、オ
ンプレミスよりもクラウドサービ
スを利用したほうがコストも安く、
開発者にも負担がかからない環境
が作れるのではないか。
9
Visual Studio App Center
主な機能
10
自動ビルド・単体テスト
実機デバイスでUIテストを自動化
テスターやストアへのアプリ配布
クラッシュログの収集
使用状況の分析
プッシュ通知
対応プラットフォーム
11
Android
Java/Kotlin
ReactNative
Cordova(Preview)
Xamarin
iOS
Objective-C/Swift
ReactNative
Cordova(Preview)
Xamarin
Windows
UWP
macOS(Preview)
Objective-C/Swift
まずはログイン
• 以下のアカウントが使用可能
GitHub
Microsoft
Facebook
Google
12https://appcenter.ms/create-account
Getting Started
• 新規アプリを登録
• Add New ⇒ Add New App
• OSはAndroidを選択
• PlatformはJavaを選択
• 作成後ポータル画面に遷移
13https://docs.microsoft.com/en-us/appcenter/quickstarts/android/getting-started
ポータル画面では最初
にやるべきことが書い
てある
SDKの組み込み
14https://docs.microsoft.com/ja-jp/appcenter/sdk/
dependencies {
def appCenterSdkVersion = '1.5.1’
compile "com.microsoft.appcenter:appcenter-analytics:${appCenterSdkVersion}“
compile "com.microsoft.appcenter:appcenter-crashes:${appCenterSdkVersion}“
compile "com.microsoft.appcenter:appcenter-push:${appCenterSdkVersion}"
}
app/build.gradle
import com.microsoft.appcenter.AppCenter;
import com.microsoft.appcenter.analytics.Analytics;
import com.microsoft.appcenter.crashes.Crashes;
import com.microsoft.appcenter.push.Push;
・・・・・・・・・・中略・・・・・・・・・・・・・・
AppCenter.start(getApplication(), " xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ",
Analytics.class, Crashes.class , Push.class);
起動時のActivityのonCreate
VSAppCenterのプロジェクト
作成時に払い出されたAPI-KEY
を使用する。
Pushを送信するにはFirebase
のSender IDを管理画面から登
録する。
対応リポジトリ
15
Build – ビルド設定- Android(1/2)
• Android Module
• Build Variant
• Build Script
 固定名のファイルを含めることで有効と
なる
• Build frequency
 Pushごとにビルドするか否か
• Automatically increment build number
 ビルドごとにビルド番号を増加させるか否か
• Run unit tests
 ビルド時に単体テストをおこなうか否か
• Lint source code
 コードの静的解析(Lint)をおこなうか否か
16https://docs.microsoft.com/ja-jp/appcenter/build/android/first-build
Build – ビルド設定 - Android(2/2)
• Environment variables
 環境変数を設定しビルドに反映できる
 リポジトリに含められないものはここ
で管理すべき
• Sign builds
 ビルド時に署名を付与するか否か
• Test on a real device
 実機テストを実施するか否か
• Distribute builds
 ビルドを配信するか否か
• Advanced
 ビルドステータスバッジの有無
17https://docs.microsoft.com/ja-jp/appcenter/build/android/first-build
Build – ビルド状態表示
18https://docs.microsoft.com/ja-jp/appcenter/build/windows/uwp/first-build
ビルド状態画面
から配信やビル
ドファイルのダ
ウンロード等が
可能
Test – 端末の選択
• 機種×OSで数千台の
実機デバイスが用意さ
れている。
• いわゆるガラパゴスス
マフォは用意されてい
ない。
19https://docs.microsoft.com/ja-jp/appcenter/test-cloud/core-concepts
Test – 設定
• Test Framework
 Appium
 Calabash
 Espresso
 Xamarin.UITest
20https://docs.microsoft.com/ja-jp/appcenter/test-cloud/supported-frameworks
Diagnostics – クラッシュ情報取得
21https://docs.microsoft.com/ja-jp/appcenter/crashes/ios
スタックトレース
を閲覧可能
レポートを取得可能
クラッシュ情報が
AppCenterに送信される
のはアプリ再起動後
Bug Tracker Integration
• 以下のTrackerと連携し、Crash時に自動でTicketを起票
Visual Studio Team Services
GitHub
Jira
22https://docs.microsoft.com/ja-jp/appcenter/dashboard/bugtracker/
Analytics - Overview
• Active Users
Monthly、Weekly、Daily
• Engagement
• Devices and OS
• Countries and Languages
• Active Users per Version
23https://docs.microsoft.com/ja-jp/appcenter/analytics/overview
Analytics – Custom Events
• Event Page
Count、Trend、Users、User change、Per user
• Detail event view
Users、Count、Count per user、Count per session
24https://docs.microsoft.com/ja-jp/appcenter/analytics/event-metrics
Analytics – Export
• Azure の以下の機能にExport可能
Blob Storage
Application Insights
25https://docs.microsoft.com/ja-jp/appcenter/analytics/export
参考サイト
• Visual Studio App Center Docs
https://docs.microsoft.com/ja-jp/appcenter/
• Visual Studio App Center Blog
https://blogs.msdn.microsoft.com/vsappcenter/
• Advice and Answers App Center
https://intercom.help/appcenter/
• JXUGC #24 春の App Center 祭り
https://jxug.connpass.com/event/72491/
• 最新ツールとVisual Studioサブスクリプションで変わ
る開発環境
http://www.itmedia.co.jp/pcuser/articles/1801/17/news00
1.html
26
ご清聴ありがとうございました。
なかしょ(中島 進也)
@nakasho_dev
27

More Related Content

PPTX
Visual Studio App Centerでアプリ開発を加速しよう
Shinya Nakajima
 
PPTX
Azure DevOpsとVisual Studio App CenterをモバイルアプリのCI/CDに活用しよう
Shinya Nakajima
 
PDF
Visual Studio Live Shareでリモートペアプログラミング
Shinya Nakajima
 
PPTX
2画面折り畳みデバイスのアプリ開発について
Shinya Nakajima
 
PPTX
複数言語に触れてIoTの表現の幅を広げよう
Core Concept Technologies
 
PPTX
Adaptive Cardsを使ってみた
Shinya Nakajima
 
PPTX
ペアプロするならgit-duetを使おう
Shinya Nakajima
 
PPTX
ペアワークで持続的に成長するチームになろう!
Shinya Nakajima
 
Visual Studio App Centerでアプリ開発を加速しよう
Shinya Nakajima
 
Azure DevOpsとVisual Studio App CenterをモバイルアプリのCI/CDに活用しよう
Shinya Nakajima
 
Visual Studio Live Shareでリモートペアプログラミング
Shinya Nakajima
 
2画面折り畳みデバイスのアプリ開発について
Shinya Nakajima
 
複数言語に触れてIoTの表現の幅を広げよう
Core Concept Technologies
 
Adaptive Cardsを使ってみた
Shinya Nakajima
 
ペアプロするならgit-duetを使おう
Shinya Nakajima
 
ペアワークで持続的に成長するチームになろう!
Shinya Nakajima
 

What's hot (20)

PDF
アジャイル開発のストーリーをGherkin記法で作成
Shinya Nakajima
 
PPTX
大規模ゲーム開発における build 高速化と安定化
DeNA
 
PPTX
Visual Studio App CenterにmBaaS機能が増えてきた
Shinya Nakajima
 
PDF
Microsoft MVP x Passion for community
Rie Moriguchi
 
PPTX
イケてない開発チームがイケてる開発を始めようとする軌跡
NTT Communications Technology Development
 
PDF
10分で(だいたい)わかるMicrosoft MVP アワードプログラム
Rie Moriguchi
 
PDF
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
 
PDF
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
Developers Summit
 
PDF
Enterpriseでもモバイル開発
Mitch Okamoto
 
PDF
Microsoft Buildのすべて
Shohei Oda
 
PDF
脆弱性の探し方 ~発見と対応のノウハウ in NTTDATA~
apkiban
 
PPTX
.Netlab202107
TomomitsuKusaba
 
PDF
これでできる! Microsoft Teams アプリ開発のポイント徹底解説
Osamu Monoe
 
PPTX
A use case of aws in de na automotive
DeNA
 
PDF
東京工業大学「ロボット技術・ロボットミドルウェア」
NoriakiAndo
 
PPTX
【デブサミ2010】アジリティを向上させる開発ツールの進化
智治 長沢
 
PPTX
Azure PipelinesをサーバサイドのCI/CDに活用
Shinya Nakajima
 
PDF
.NET Micro Framework (プラレールと電子工作)
Akira Hatsune
 
PPTX
エンジニアが引っ張るDeNAの"モノづくり"
DeNA
 
PPTX
夏サミ2013 基調講演 「DevOpsは開発現場とビジネスの間に何を生むか?」(新野淳一氏)
Developers Summit
 
アジャイル開発のストーリーをGherkin記法で作成
Shinya Nakajima
 
大規模ゲーム開発における build 高速化と安定化
DeNA
 
Visual Studio App CenterにmBaaS機能が増えてきた
Shinya Nakajima
 
Microsoft MVP x Passion for community
Rie Moriguchi
 
イケてない開発チームがイケてる開発を始めようとする軌跡
NTT Communications Technology Development
 
10分で(だいたい)わかるMicrosoft MVP アワードプログラム
Rie Moriguchi
 
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
 
【16-E-4】残業ゼロで開発スピードが10倍に!もう元の開発体制には戻れないデンソー流のアジャイル開発
Developers Summit
 
Enterpriseでもモバイル開発
Mitch Okamoto
 
Microsoft Buildのすべて
Shohei Oda
 
脆弱性の探し方 ~発見と対応のノウハウ in NTTDATA~
apkiban
 
.Netlab202107
TomomitsuKusaba
 
これでできる! Microsoft Teams アプリ開発のポイント徹底解説
Osamu Monoe
 
A use case of aws in de na automotive
DeNA
 
東京工業大学「ロボット技術・ロボットミドルウェア」
NoriakiAndo
 
【デブサミ2010】アジリティを向上させる開発ツールの進化
智治 長沢
 
Azure PipelinesをサーバサイドのCI/CDに活用
Shinya Nakajima
 
.NET Micro Framework (プラレールと電子工作)
Akira Hatsune
 
エンジニアが引っ張るDeNAの"モノづくり"
DeNA
 
夏サミ2013 基調講演 「DevOpsは開発現場とビジネスの間に何を生むか?」(新野淳一氏)
Developers Summit
 
Ad

Similar to Visual Studio App Centerで始めるCI/CD (20)

PPTX
Visual Studio App Centerで始めるCI/CD(Android)
Shinya Nakajima
 
PPTX
Visual Studio App Centerで始めるCI/CD(iOS)
Shinya Nakajima
 
PDF
ビットバンクでのネイティブアプリケーション開発におけるCI_CD環境
bitbank, Inc. Tokyo, Japan
 
PPTX
Visual Studio App CenterでAndroid開発にCI/CDを導入しよう
Shinya Nakajima
 
PDF
分かったうえではじめるCI/CD
Yuta Matsumura
 
PPTX
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
Shinya Nakajima
 
PPTX
2017年のiOSアプリ開発におけるCI事情
Toshiyuki Hirata
 
PPTX
iOSアプリ開発のCI環境 - Jenkins編 -
Toshiyuki Hirata
 
PDF
.NET アプリを改善して実践する継続的インテグレーション
Yuta Matsumura
 
PPTX
システム開発における基盤環境のCI/CDについて#2
シイエヌエス
 
PDF
オープンセミナー2013@広島
Masahiko Tani
 
PPTX
fastlane x iOSアプリのCI
Toshiyuki Hirata
 
PDF
DX時代に目指すべき品質向上とテスト - @IT ソフトウェア品質向上セミナー 2019夏
Yusuke Suzuki
 
PDF
iPhoneとAndroidのアプリ開発最新潮流
Rakuten Group, Inc.
 
PPTX
When i thought of using ci / cd in unity development
Take Mizo
 
PPTX
Visual studioonlineとwebサイトで始めるci/cdの第一歩
Kazunori Hamamoto
 
PPTX
Xamarin 101 ~環境構築からビルド・テストまで~
Masaki Takeda
 
PDF
Developer Summit 2014, 13-C-4 セッション
Jun Hosokawa
 
PPTX
C#の書き方
信之 岩永
 
PPTX
C#の書き方
信之 岩永
 
Visual Studio App Centerで始めるCI/CD(Android)
Shinya Nakajima
 
Visual Studio App Centerで始めるCI/CD(iOS)
Shinya Nakajima
 
ビットバンクでのネイティブアプリケーション開発におけるCI_CD環境
bitbank, Inc. Tokyo, Japan
 
Visual Studio App CenterでAndroid開発にCI/CDを導入しよう
Shinya Nakajima
 
分かったうえではじめるCI/CD
Yuta Matsumura
 
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
Shinya Nakajima
 
2017年のiOSアプリ開発におけるCI事情
Toshiyuki Hirata
 
iOSアプリ開発のCI環境 - Jenkins編 -
Toshiyuki Hirata
 
.NET アプリを改善して実践する継続的インテグレーション
Yuta Matsumura
 
システム開発における基盤環境のCI/CDについて#2
シイエヌエス
 
オープンセミナー2013@広島
Masahiko Tani
 
fastlane x iOSアプリのCI
Toshiyuki Hirata
 
DX時代に目指すべき品質向上とテスト - @IT ソフトウェア品質向上セミナー 2019夏
Yusuke Suzuki
 
iPhoneとAndroidのアプリ開発最新潮流
Rakuten Group, Inc.
 
When i thought of using ci / cd in unity development
Take Mizo
 
Visual studioonlineとwebサイトで始めるci/cdの第一歩
Kazunori Hamamoto
 
Xamarin 101 ~環境構築からビルド・テストまで~
Masaki Takeda
 
Developer Summit 2014, 13-C-4 セッション
Jun Hosokawa
 
C#の書き方
信之 岩永
 
C#の書き方
信之 岩永
 
Ad

More from Shinya Nakajima (18)

PPTX
すごろくゲームでPlayFabの活用を検討
Shinya Nakajima
 
PPTX
PlayFabとCognitiveを 連携させて健全なゲーム運営を
Shinya Nakajima
 
PPTX
PlayFabとAppCenterのユーザ情報を連携してAppCenterの機能を活用しよう
Shinya Nakajima
 
PPTX
GitHub ActionsでiOSのCIを実現しよう
Shinya Nakajima
 
PPTX
Visual Studio App Center Authの導入方法について
Shinya Nakajima
 
PPTX
AzureDevOpsで始めるAndroidのCI/CD
Shinya Nakajima
 
PPTX
社内の遊休PCをAzurePipelinesでCICDに活用しよう
Shinya Nakajima
 
PPTX
CI/CD専用モニタと心理的安全性
Shinya Nakajima
 
PPTX
Visual Studio App CenterでGitHubのIssue発行を自動化しよう
Shinya Nakajima
 
PPTX
Visual Studio App CenterでGitHubのPull Requestを効率よく対応しよう
Shinya Nakajima
 
PDF
アジャイル開発を円滑に進めるVisual Studio App Center
Shinya Nakajima
 
PPTX
Visual Studio App Centerの始め方
Shinya Nakajima
 
PDF
docomo Developer Supportを活用しよう
Shinya Nakajima
 
PDF
Xamarinで地図を使おう
Shinya Nakajima
 
PDF
いつか言いたい『こんなこともあろうかと』
Shinya Nakajima
 
PDF
今こそ Microsft Bot Framework を学ぼう
Shinya Nakajima
 
PDF
Tizenの.NET対応について
Shinya Nakajima
 
PDF
リーンアジャイルで開発を加速しよう
Shinya Nakajima
 
すごろくゲームでPlayFabの活用を検討
Shinya Nakajima
 
PlayFabとCognitiveを 連携させて健全なゲーム運営を
Shinya Nakajima
 
PlayFabとAppCenterのユーザ情報を連携してAppCenterの機能を活用しよう
Shinya Nakajima
 
GitHub ActionsでiOSのCIを実現しよう
Shinya Nakajima
 
Visual Studio App Center Authの導入方法について
Shinya Nakajima
 
AzureDevOpsで始めるAndroidのCI/CD
Shinya Nakajima
 
社内の遊休PCをAzurePipelinesでCICDに活用しよう
Shinya Nakajima
 
CI/CD専用モニタと心理的安全性
Shinya Nakajima
 
Visual Studio App CenterでGitHubのIssue発行を自動化しよう
Shinya Nakajima
 
Visual Studio App CenterでGitHubのPull Requestを効率よく対応しよう
Shinya Nakajima
 
アジャイル開発を円滑に進めるVisual Studio App Center
Shinya Nakajima
 
Visual Studio App Centerの始め方
Shinya Nakajima
 
docomo Developer Supportを活用しよう
Shinya Nakajima
 
Xamarinで地図を使おう
Shinya Nakajima
 
いつか言いたい『こんなこともあろうかと』
Shinya Nakajima
 
今こそ Microsft Bot Framework を学ぼう
Shinya Nakajima
 
Tizenの.NET対応について
Shinya Nakajima
 
リーンアジャイルで開発を加速しよう
Shinya Nakajima
 

Recently uploaded (11)

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

Visual Studio App Centerで始めるCI/CD