dnackのブログ

コード書く仕事の間にコード書いてる知命目前のおっさんです。

Prism/XamarinでAndroidアプリの作成(1):Prism&ReactiveProverty でいこう

Prism Blank Appの作成(Prism Template pack)

久しぶりにPrismを触るので、備忘のために手順を残しておこうと思う。

環境は21/9/1時点の最新

Visual Studioは2019 Community 16.11.2
主なライブラリのバージョンは
NETStandard.Library 2.0.3
ReactiveProperty 7.12.0
Xamarin.Forms 5.0.0.2083
Xamarin.Essentials.Interfaces 1.7.0
Prism.DryIoc.Forms8.1.97

Visual Studioを起動して「新しいプロジェクト作成」画面が出たら、検索窓にPrismと入れてみる。ここでBlank Appとかが出てこなければ、Prism Template packが入っていないので、ひとつ前の画面に戻って「コードなしで実行」でプロジェクトなしでIDEを起動し、拡張機能タブからPrism Template Packを探してインストールする。

select project template screen

Prism Black App(Xamarin.Forms)を選択して、プロジェクト名・ソリューション名・作成するパスを選択したら下の画面のようなプロジェクトウィザードのダイアログが表示される。

prism project wizard screen

上段の3つはチェックを付けたプラットフォーム用のプロジェクトが作成される。Containerは、DIコンテナフレームワークの選択はいつも使っていたDryIocを採用。

これでCREATE PROJECボタンを押すとプロジェクトはできた。なんかワーニングが出てる。

warning

とりあえず、VisualStudioのツールバーからツール→Nugetパッケージマネージャ→ソリューションのNugetパッケージの管理から、更新プログラムタブに出てるパッケージをすべて更新してみる。

warning updated

UWPのほうのワーニングはは残っちゃってる、Android向け以外のプロジェクトはアンロード予定だから放置。

これでソリューションエクスプローラーを見るとこんな感じ。

solution explorer

ここで実機つないで動作確認。無事に画面に下のテキストが出る。

f:id:dnack:20210902134130p:plain

ReactivePropertyの追加とProjectファイルの変更

触り始める前にもう少し準備が必要。

Androidアプリのみを作るつもりなので、アンドロイド仕向けのプロジェクトSamplePrismApp.Androidをスタートアッププロジェクトにして、iOSとUWPはアンロードしておく。(最初のウィザードでAndroid以外のチェック外しておいたらこれは不要)

さらに、Nugetパッケージ管理からReactivePropertyをインストールしておく。

f:id:dnack:20210901235917p:plain

プロジェクトのプロパティのAndroidマニフェストは手元の実機がAndroid11のPixel5なので、これに合わせて11.0(APIレベル30)に設定。ターゲットフレームワークも同じバージョンに修正。最小バージョンも何かあったら面倒なので8.1くらいまで上げてしまってもいいかも。今回は自分のマシンで動けばいいのでこの辺は広くとったりしない。(もしみんなに使ってもらうサービスを作るのならちゃんと考えようね。)

アクセス許可は、色々つけないといけないけど、ひたすら面倒なので後回し。

この辺りはどこまできいてくんのかわからんのだけど

.csprojファイルの

<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

のToolsVersionは"Current"に変更して、細心のビルドツールセットを使えるようにしておく。

また、C#のバージョンを8.0にしたいので、

    <LangVersion>8.0</LangVersion>

の1行追加する。

 

こうすると、SampleApp.Android.csprojの先頭がこんな感じ。

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <LangVersion>8.0</LangVersion>

この状態でビルド→動作確認して、次からいよいよコードを書いていく。