a{display:inline!important;padding:0!important;margin:0!important}主にIT、プログラミングについて学んだことのアウトプットの場として記録していきます。共通処理の追加GameViewModelはじめに以下を経緯としてMVVMを使用してtic-toc-toeゲームを作成します。ModelからはViewが見えないアプリケーションの作成Model今回の場合、Modelで定義するのは以下の要素です。共通で使用する処理を書いておきます。引数の文字列がnullまたは空のときにtrueを返す関数です。utilities/StringUtility.javaを作成します。model/Player.javaを作成します。このセルはプロパティとして、Playerクラスのインスンタスを持ちます。model/Cell.javaを作成します。二人のPlayerクラス、9つのCellクラスを持つ。以下のときにゲームが終了したと判断するボード上の水平、垂直、斜めに3つ同じマークが並んだとき全てのマスが埋まったときそれに伴って各メソッドを定義していきます。ViewViewModelではViewのインスタンスを持たない。ViewModelとViewはどのように通信するのか。これには以下の方法がある。eventBusRxAndroidObserverパターンLiveDataここではLiveDataを使用します。Aのデータが変更されると、Bにそれが通知され、変更後の値が送信される。これをMVVMにあてはめると、MVVMでLiveDataインスタンスを持っていて、それをViewから観測していることになる。MVVMがViewを知らなくてよい。具体的には、MVVMではゲーム終了時にViewにそれを通知する。これによりViewはUIを更新することができる。データバインディングの有効化build.gradleに以下を追記します。getWinner()は、Viewから観測されているメソッド、ゲーム終了と勝者を通知する。APIの廃止により使用できなくなりました。SERVERを使用しています。Wordpressの管理画面等での動作が少し遅いところが気になり、改善する方法を調査していました。