COCOAにコントリビューターとして貢献しよう！～実践編～

**この記事の内容は、政府IT室CIO補佐官からの了承を得て投稿しております。**

前回の内容は、GitHubでの貢献方法でしたが、今回は仮想デバイス上にてCOCOAをデプロイする方法について書きます。(Android中心となります)


コードを書くに当たっては、Xamarinの知識があることが望ましいです。

## 環境
Windows 10 Enterprise 21H1
(Home・PROでも下記の方法で実行できます)
Visual Studio Community 2019 v16.11.1
Build Tools for Visual Studio 2019 v16.11.1
Android SDK 29
USB デバッグで利用した端末→Galaxy S10
(不足があれば追記します)

## Visual Studio 関連のインストール
まずは、Xamarin等を利用できるようにするためにBuild Toolsをインストールします。
[ここ](https://visualstudio.microsoft.com/ja/downloads/)から下の方にある[Visual Studio 2019 のツール]→[Build Tools for Visual Studio 2019]をダウンロードします。
実行すると下記のような画面になるので、BuildToolsでは何もインストールせずそのままインストールします。
![20210820_143500.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527236/7d57a108-c8bd-7a0a-db5d-4311ca15d94e.png)

インストールできたらVisual Studio Communityをインストールします。
インストーラーの画面から[使用可能]→[Visual Stuido Community 2019]をインストールします。
![20210820_144344.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527236/744a22ee-5069-d1b4-6836-6e7f8acb9cda.png)
今回は、下記の二つをインストールします。
- .NETデスクトップ開発
- .NETによるモバイル開発
![20210820_145231.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527236/87cb5ac1-27a0-742c-7aa5-9e23893e9ca8.png)
![20210820_145238.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527236/10632716-7b04-e238-190e-9dbb4e280204.png)
10GB程度のダウンロードとなります。気長に待ちましょう。
インストールが完了するとMicrosoftアカウントへのサインインが求められますがログインしなくてもどちらでも構いません。
## COCOAのセットアップ
セットアップをすると下記の画面になるのでCOCOAのリポジトリデータをダウンロードします。開始する→[リポジトリのクローン]を選択します。
![20210820_152449.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527236/2997085a-4ad4-44ea-12d7-12af5532b2ca.png)
リポジトリの場所にリポジトリのURLを入力します。URLは、cocoa-mhlw(本家)からクローンしたリポジトリのURLを入力するのが一般的です。クローンの方法は、前回の記事を参照してください。
今回は、テスト用として実行するのでcocoa-mhlwのURLを入力します。
![20210820_155553.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527236/387635cb-10ef-b415-04aa-817f7f01903c.png)
クローンを押してクローンします。
![20210820_161923.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527236/87088744-fa10-3372-4936-9c2860ade59d.png)
続いてソリューションファイルを開きます。右上にある[ファイル]→[開く]→[プロジェクト/ソリューションを開く]（Ctrl+Shift+O）
![20210820_163442.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527236/e7665547-85f9-08e7-46f4-2ad57a8eaefa.png)
[cocoa]→[Covid19Rader.sln]を選択します。
![20210823_080439.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527236/4198dd8b-a8d8-02ec-e495-2870baefc1bb.png)

brokerについてのファイアウォール設定が出てくるのでご自身の環境にあったものを設定してください[。](https://stackoverflow.com/questions/60964948/xamarin-messaging-broker-wants-firewall-access)
![20210820_163529.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527236/ae9c2741-911a-a547-3e1b-8c3514c43300.png)
SDKのライセンス関連も同意します。
![20210820_163604.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527236/70f6fccb-774c-75fe-e17f-4908b6a83dce.png)
続いてAndroid SDK Platform 29をPCにインストールします。上のバーから[ツール]→[Android]→[Android SDK マネージャー]を選択します。
![20210823_092348.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527236/142b27fa-d68c-29b0-da34-7d84f0eea89a.png)
Android 10.0 - Q のAndroid SDK Platform 29を選択してインストールします。
![20210823_092416.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527236/2e0ff8ce-19b2-5d21-8ac1-9ad2e29efe5e.png)
インストールしたら、仮想デバイスを作成します。
上のバーから[ツール]→[Android]→[Android デバイス マネージャー]を選択します。
![20210823_093424.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527236/3290ebed-a180-4c2e-28d6-0b3a3e9c5d78.png)
新規作成を選択して、バージョン→Android-Qを利用してAndroidデバイスをPC上にてデプロイしてください。
最後にエミュレータを利用してCOCOAを起動します。
Debug_Mock→Any CPU→Covid19Rader.Android→先程作成した仮想デバイスを選択します。
![20210823_093858.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527236/e7cf6421-45d0-79da-0eb7-2d306b6f59f3.png)
仮想デバイスのところに表示されている再生ボタンを押すとエミュレータが起動してCOCOAが起動します。こうなれば完了です。
![20210823_094408.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527236/34557d21-f63a-141b-de28-26be2e964c2e.png)
## 自身の端末にインストールする(Android)
続いて手元のAndroid端末にPCで編集したCOCOAをインストールしてみます。
まず、[開発者向けオプション]→[USB デバッグ]をONにします。ONにしたのちにPCとスマートフォンを接続します。接続すると接続の許可の確認が出るので承認します。（端末ごとに設定が異なるので細かいことはGoogle先生に聞いてみてください）

承認した後に、上のバーにある一番右に出ている仮想デバイス一覧を展開するとUSB デバッグで接続している端末が出てきます。接続している端末を選択して再生ボタンを押してデプロイします。COCOAの起動画面が出てきたら完了です。

## 通常用と開発用の見分けをつける
開発用のCOCOAは、アイコンやアプリ名に通常のものと差がありません。見分けがつけやすいように開発用のCOCOAのアプリ名を変更します。
注：PRをcocoa-mhlwへ提出する際には、この内容の変更をコミットしてしまわないように注意してください

Android版・日本語環境のみ今回変更します。

ソリューションエクスプローラーから[Covid19Rader.Android]→[values-ja]→[Settings.xml]を選択します。日本語のアプリ名が書いてあるのでわかりやすいものに変更します。

![20210823_100425.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527236/f8253bea-8ad0-0d6c-cd39-deb4f65e7537.png)

再度デプロイさせると
![Screenshot_20210823-100817_Settings.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/527236/fb2be952-34ba-ba0f-68c0-63ea6692518f.jpeg)
このように見分けがつきやすくなります。

## 最後に
アプリ内におけるバグ等を発見した際は、
[COCOA GitHub リポジトリ](https://github.com/cocoa-mhlw/cocoa)
のIssueに投稿して下さい。