ディーバ Blog

大阪発 C#の会社、株式会社ディーバの Blog です。

「Xamarinネイティブによるモバイルアプリ開発 C#によるAndroid/iOS UI 制御の基礎」アップデート情報・正誤表・エラッタ

最終更新日: 2017/12/12

株式会社ディーバ 代表取締役 青柳臣一が執筆した、2017年9月15日発売 Xamarinネイティブによるモバイルアプリ開発 CによるAndroid/iOS UI制御の基礎 (翔泳社)のアップデート情報・正誤表を勝手に記します(適宜この記事を更新します)。

購入者が実際に試した「 テスターが #Xamarin でキッチンタイマーを作ってみた! - Togetter」も参考になります(一部参考にしてここでも記載します)

Chapter 3: Visual Studio で iOS キッチンタイマーを作ろう

リスト 3.24 (p.156) ShowRemainingTime メソッド

private void ShowRemainingTime()
{
    RemainingTimeLabel.Text = string.Format("{0:f0}:{1:d2}",
        _remainingTime.TotalMinutes,
        _remainingTime.Seconds);
}

正(修正例)

private void ShowRemainingTime()
{
    RemainingTimeLabel.Text = string.Format("{0:f0}:{1:d2}",
        Math.Floor(_remainingTime.TotalMinutes),
       _remainingTime.Seconds);
}

Chapter 4: Xamarin でアプリを実装する

ポータブル クラス ライブラリ (PCL) p.182

ポータブル クラス ライブラリ クラス ライブラリ(レガシ ポータブル)

Visual Studio 2017 Ver. 15.3 頃から ポータブル クラス ライブラリ は、レガシ ポータブルと表記されています。

Chapter 5: MVVMCross について学ぼう

MVVMCross MvvmCross

MVVMCross、MVVM Cross でもなく MvvmCross が公式表記です。ただし、最新のロゴは MVVMCROSS と大文字表記です。

Chapter 8: MVVMCross を使いこなそう

ビューモデルのライフサイクル (p.330, 331)

Start メソッドは MvvmCross 3.x/4.x 系のライフライクル で使われるメソッドのため非推奨です。

MvvmCross 5.6 の ライフライクル は次のように変更されています。

メソッド名
コンストラクタ―
void Prepare(TParameterModel parameter)
async Task Initialize()
void ViewCreated()
void ViewAppearing()
void ViewAppeared()
void ViewDisappearing()
void ViewDisappeared()
void ViewDestroy(bool viewFinishing)

Tips: 注意: Initialize メソッドが呼ばれないケース (p.333)

「今後の MVVMCross では修正されるかもしれませんが」とありますが、Navigation Service を使う場合 Core プロジェクトの App class (App.cs) の下記メソッドを変更します。

RegisterAppStart<ViewModels.MainViewModel>();

RegisterNavigationServiceAppStart<ViewModels.MainViewModel>();