さんログスマートフォン用の表示で見るぴーさんログだいたいXamarin.Formsのブログこの広告は、90日以上更新していないブログに表示しています。StudioでXamarinを利用できるようになり、アプリのみならずクロスプラットフォームなライブラリ開発も行いやすくなりました。XamarinのテンプレートからNuGetパッケージを作るまでの流れを解説します。固有機能を共通のインターフェースで利用できるようにデザインされたライブラリ群です。代表的なものにバッテリー、ストレージ、位置情報などを利用するためのプラグインがあります。Insiderで田淵さん(@ytabuchi)連載している記事を参照してください。StudioとXamarinをインストールしてiOSやAndroidアプリがビルドできる環境を整えてください。Xamarinのリポジトリを開きます。Started」以下のリンクからプロジェクトテンプレートを入手してください。(一応こちらにもリンクを張っておきます。)プロジェクトを作ろう!準備が整ったら新規プロジェクトを作成しましょう。Xamarin」です。続いて生成されたプロジェクトを眺めてみましょう。プロジェクトが沢山あってびっくりしますが、以下の3種類があると押さえておけば問題ありません。(PCL)インターフェースやenumを定義します。(PCL)PCLプロジェクト用のダミー実装を定義します。「なんのこっちゃ?」と思うかもしれませんが、実はこれが無いとPCLプロジェクトでPluginを参照するときに困ります。各プラットフォーム用の実装を定義します。プラグインを実装しよう!この記事ではサンプルとして、アプリケーションのバージョンを取得するプラグインを実装します。プロジェクトPlugin.機能名.AbstractionsプロジェクトにはInterfaceやenum、Event等を定義します。プロジェクトPlugin.機能名プロジェクトにはPCLプロジェクトから参照するためのダミー実装となります。生成されており、プラグインをsingletonなAPIラッパーとする限りコードを変更する必要はありません。Currentプロパティにアクセスした際にプラットフォーム実装が無ければ例外となります。リンク参照しています。プロジェクト今回はAndroid版にだけ機能を実装することにします。ファイルが生成されているので、ここにコードを追加します。}}NuGetパッケージを作ろう!ソリューションを右クリックから新規項目を追加。NuSpec」を追加、名前はソリューションと同じく機能名にします。("nuspec"でフィルタリングすると楽)今回は動作確認のため、NuGet.orgに公開しないローカルなNuGetパッケージとして作成します。nuspecやNuGetパッケージの作り方に関しては、動作確認に必要な最低限の解説に留めます。(私にとってnugetは複雑で難しいので)nuspecファイルを編集します。<projectUrl/>必須項目なので架空のUrlで埋めておきます。以外はコメントアウトします。準備が整ったら、各プロジェクトをビルドしてパッケージマネージャコンソールで次のコマンドを実行します。pack成功するとソリューションフォルダの直下にNuGetパッケージファイル(nupkg)が出力されます。Buildに依存してる)があったりするのでWindowsで行った方が何かと便利でしょう。NuGetパッケージを使おう!それでは出来上がったNuGetパッケージをローカルとして動作確認してみましょう。任意のフォルダにnupkgファイルを配置します。Portable)」)を新規作成します。ソース」に新しいパッケージソースを追加修正します。nupkgファイルを配置したフォルダPCLプロジェクトとAndroidプロジェクトにNuGetパッケージを追加します。この際、パッケージソースを先ほど作ったローカルフォルダに変更してください。PCLプロジェクトのAppクラスを動作確認用に修正します。page;}早速Androidを実行してみます。Android固有の実装が動いています!それでは固有実装を用意していないUWP版を実行するとどうなるでしょう?エラー無くビルドできましたが、ボタンをクリックするとNotImplementedExceptionが発生しました。これはPCLプロジェクトからダミー実装のdllを引き継いだためですね。Switchさて、PCLプロジェクトの出力であるdll(ここではApp3.dll)はAndroid、UWPの両方に全く同じものが同梱されています。PluginのdllはAndroidとUWPでそれぞれ違うものが同梱されています。(Android:固有実装、UWP:ダミー実装)これの何が凄いかというと、PCLプロジェクトが「ビルド時に参照していたdll」と「実行時に参照するdll」をすり替えたにもかかわらず、メソッド呼び出しができている点です。Switch」と呼ばれるトリックです。Xamarinの真骨頂であると言えます。Xamarinがどんなものか何となく理解していただければ幸いです。ともクールなプラグインを作ってNuGet公開にチャレンジしてください。2.2.0.45)がリリース済みです。VSDT(2017/3~2018/6)@ticktackmobileさんのツイートはてなブログをはじめよう!ticktack623さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。