Lab 2 の作業を終えることで、クラウド上でアプリケーションのビルド、テストチームなどへの自動配布ができるようになりました。 Lab 3 では、Visual Studio App Center の解析・診断を行うために、アプリケーションの解析・診断用のコードを追加し、ビルド、アプリケーションの自動配布、テスト、解析・診断を行います。
具体的には、以下のことを学習します。
- App Center SDK を利用して、アプリケーションにモニタリングの機能を実装する方法
- App Center 上でアプリケーションのモニタリングを行う
-
ソリューションエクスプローラーで、Xamarin.Forms のプロジェクト(ハンズオンの例では、SampleApp プロジェクト)を右クリックし、"NuGet パッケージの管理" をクリックします
-
"参照" タブを選択し、テキストボックスで "AppCenter" と入力し、"Microsoft.AppCenter.Analytics" と "Microsoft.AppCenter.Crashes" をインストールします
App.xaml.cs
に以下のコードを記述します。
-
using ステートメントを追加します
using Microsoft.AppCenter; using Microsoft.AppCenter.Analytics; using Microsoft.AppCenter.Crashes;
-
OnStart() メソッドに初期化コードを追加します
AppCenter.Start("uwp={Key}", typeof(Analytics), typeof(Crashes));
ここで、
{key}
の値は、App Center の "Overview" ページに記載されている値です。
参考のために、以下にコード全体を示しておきます。
using System;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
using SampleApp.Services;
using SampleApp.Views;
// 追加されたコード(ここから)
using Microsoft.AppCenter;
using Microsoft.AppCenter.Analytics;
using Microsoft.AppCenter.Crashes;
// 追加されたコード(ここまで)
namespace SampleApp
{
public partial class App : Application
{
public App()
{
InitializeComponent();
DependencyService.Register<MockDataStore>();
MainPage = new MainPage();
}
protected override void OnStart()
{
// Handle when your app starts
AppCenter.Start("uwp={Key}", typeof(Analytics), typeof(Crashes)); // 追加されたコード
}
protected override void OnSleep()
{
// Handle when your app sleeps
}
protected override void OnResume()
{
// Handle when your app resumes
}
}
}
ここでは、TODO のアイテムが保存さたときに、保存したアイテムの Text と Description をトラッキングするコードを記述します。
NewItemPage.xaml.cs
ファイルの Save_Clicked
メソッドを編集します。
-
using ステートメントの追加
using Microsoft.AppCenter.Analytics;
-
変更前
async void Save_Clicked(object sender, EventArgs e) { MessagingCenter.Send(this, "AddItem", Item); await Navigation.PopModalAsync(); }
-
変更後
async void Save_Clicked(object sender, EventArgs e) { // 追加されたコード(ここから) Analytics.TrackEvent( $"{nameof(NewItemPage.Save_Clicked)}", new Dictionary<string, string>() { {$"{nameof(Item.Text)}", Item.Text }, {$"{nameof(Item.Description)}", Item.Description } }); // 追加されたコード(ここまで) MessagingCenter.Send(this, "AddItem", Item); await Navigation.PopModalAsync(); }
ここでは、簡単のために "About" ページを開いたときに、アプリケーションをクラッシュさせるコードを記述します。AboutPage.xaml.cs
ファイルを以下のように編集します。
using System;
using System.ComponentModel;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
namespace SampleApp.Views
{
// Learn more about making custom code visible in the Xamarin.Forms previewer
// by visiting https://aka.ms/xamarinforms-previewer
[DesignTimeVisible(true)]
public partial class AboutPage : ContentPage
{
public AboutPage()
{
InitializeComponent();
throw new ApplicationException("This is a sample exception"); // 追加されたコード
}
}
}
コードの編集が終わったら、コードを Azure DevOps に Push し、Azure DevOps 上でビルドを行ってください。
Lab2 の手順を参考にして、ビルドしたアプリケーションをインストールして、動作させてください。
-
アプリケーションの右上の "…" をクリックして、"Add" ボタンを押します
-
"Text" と "Description" を入力して、"Save" ボタンをクリックして、TODO アイテムを保存します
App Center の Analytics を見ると、作成したアプリケーションのアクティブユーザー数などが確認できます。
また、トラッキングしたイベントデータも確認することができます。
以上で、Lab 3 は終了です。