これは Xamarintans(ざまりたんず) が執筆した 「Essential Xamarin Yang (陽)」 という技術同人誌の、 第1章「Xamarin.Android で始めるクロスプラットモバイルアプリ開発」 − 1.8節「Xamarinによる「クロスプラットフォーム」MVVM+Rxアプリケーション」 で登場する「GPSアプリケーション」を Android ネイティブと Xamarin(Xamarin.Forms) で実装したソースコードです。
書籍での解説の通り、Rx(RxJava や RxSwift) と MVVM、データバインディングを利用して開発されたモバイルアプリが、Xamarin(Xamarin.Forms) でどのように共通化できるかを示したリポジトリです。
- 端末のGPSから取得した位置情報を表示し続ける
- 緯度経度の表記を「度(34.5°)」と「度分秒(34度30分00秒)」で切り替える
- RECORDボタンを押した時点の緯度経度を記録する
- 記録した緯度経度群で最も位置精度の高いものを表示する
- 記録した緯度経度群を一覧で表示する
Android ネイティブ(Java)で実装したプロジェクトです。Android Studio 2.2.3 で開発しています。
- Data Binding - Android Data Binding
- Rx - RxJava 2.0
- ViewModel - RxProperty
- Dependency Injection - Dagger2
- Others - Lightweight-Stream-API, RetroLambda
Xamarin.Forms(C#)で実装したプロジェクトです。Visual Studio for Mac Preview 5 で開発しています。対応プラットフォームは Android と iOS です。
- Data Binding - Xamarin.Forms Data Binding
- Rx - Reactive Extensions
- ViewModel - ReactiveProperty, Prism for Xamarin.Forms
- Dependency Injection - Unity(Prism.Unity)
master ブランチは、最新のソースコードを示しています。 書籍に対応するソースコードは、次のように書籍の版に応じた tag を付与しています。
- 2017年4月9日発行(Edition v1.0.0) - v20170409
このリポジトリのライセンスは LICENSE に従います。