MvvmCrossのプラグインを作ってプラットフォーム依存コードを再利用する
Xamarin Advent Calendar 2014の4日目です。
MvvmCrossガチ勢としては書かざるを得ないと思っていたけど忙しくてかけていなかったMvvmCrossのプラグインの作り方をこの機会を借りて紹介したいと思います。
そもそもMvvmCrossプラグインとは
MvvmCrossプラグインは、MvvmCrossで作っているプロジェクトにカメラやバイブレーションといったプラットフォーム依存コードを再利用できる形で提供します。プラグインを組み込むと、IoCコンテナにプラグインが提供しているクラスが登録されます。
公式でも多くのパッケージが公開されており、NuGetでMvvmCross Pluginで検索すると大量に出てきます。NuGetで公開されているものはプラグインを追加するとすぐに使い始めることができます。
また、プラグインは簡単に作ることができるので、自分たちでもよく使う機能はプラグイン化しておくことで再利用することができます。
プラグインの作り方
今回は簡易的なTextToSpeechの機能を作るという想定のもと、プラグインを作成してみようと思います。
続きを読むMvvmCross で Xamarin.Android の Fragment を使う方法と問題点について
Android 3.0 では、画面に表示される項目として、Activity の下に Fragment という要素を使うようになり、タブレット対応やタブの使用などでは必須レベルで使用するようになっています。
MvvmCross には、この機能に対して Fragging モジュールと、FullFragging モジュールという 2 種類の Fragment サポートがあります。 Fragging モジュールは Android 2.x でも使えるようにバックポートされた Support Library の Fragment を使用するもの、FullFragging モジュールは Android 3.0 以降に搭載される標準の Fragment を使用するものとなっています。
Fragging/FullFragging モジュールでは MvxFragment という View クラスが提供されますが、このクラスに関する使用方法がドキュメント上にありません。また、アプリが停止状態になる際の処理等が現状サポートされておらず、そのままの状態で使用するとメモリが少ない機種等で問題になってきます。
この記事では、MvxFragment クラスの使い方と、MvxFragment クラス上で停止機能が使えるように拡張する方法を紹介します。
続きを読むXamarin.iOS のネイティブバインディングを活用して既存の Objective-C 資産を流用する
Xamarin.iOS では、ネイティブバインディングを使用して Objective-C で書かれたライブラリを利用することができます。
つまり、既存のObjective-Cで書かれたアプリをXamarinに移行する際、特定の機能はネイティブライブラリにすることでObjective-Cのまま利用することができます。
ここでは、Objective-Cで書かれたアプリをUIViewControllerごとネイティブライブラリにし、Xamarin.iOSにネイティブバインディングで持ってくる方法をご紹介します。
続きを読む