:
a)は一般的には、あなたがそのプラットフォーム間で何かを共有することができますプラットフォーム固有ではありません。
インターフェイスで定義されたビューへの参照を保持するプレゼンターまたはメディエータを使用する傾向があります。たとえば、私がログインビューを持っていたら、私は自分のiOS UIViewControllerと私のAndroidアクティビティの両方にILoginViewインターフェイスを実装します。このインタフェースは、次のように定義しているでしょう:ユーザー名とパスワードのための
- ゲッター
- LoginSubmitted
- 二ShowLoginFailed方法とGoNextScreen
プレゼンター/メディエータはを聴くための責任を負うことになるというイベントログインはサブミットされ、ユーザー名とパスワードが取得され、サービスコールやコマンドに渡されます。調停者がコマンド/サービスの結果を受け取ると、ShowLoginFailedまたはGoNextScreenのいずれかを起動する責任があります。
また、SQLite Manager(https://github.com/praeclarum/sqlite-net/tree/master/src)を定義するためのインターフェイス、または実際のWeb APIサービスコールの作成を担当する代理人も使用しました。私はSQLiteマネージャとRestSharpのためにプラットフォーム固有のコンパイルが必要であるため、これを行う必要があることがわかりました。
短いストーリーは、特にあなたが何らかのDependency Injectionシステムにそれらを結合するとき、インターフェイスがあなたの友人です。
b)デバイスがスリープモードに入っているとき、または別のアプリに入っているときにアラームを要求されるようにするには、Android用のAlarmManagerとiOS用のLocalNotificationを使用します。
c)Xamarin.AndroidとXamarin.iOSでPCLを使用できます。問題は、PCLが100%サポートされていないことです。 >「アップデートの確認 - 「Xamarinメーカー」:
Xamarin Studioのベータ版やアルファチャンネルに
スイッチ:しかし、あなたが望むうまくいけば、あなたを取得する必要がありますあなたのdevの環境にあなたが作ることができるいくつかの微調整があります" - >ダイアログボックスの左上にあるコンボボックスのチャンネルを変更します - >"アップデートの再起動とインストール "を選択します。これにより、AndroidとiOSの両方のプロジェクトで、同じソリューション内の同じPCLにリンクできるようになります。 PCLが適切にコンパイルして、あなたのモノを変更するには、この記事で説明しXS、近くにXSを更新し、フォローした後
インストール:
MonoDevelop: is it possible to switch PCL's compiler?
があなたのPCLプロジェクト内のよりよいプレーするコードヒントを取得するには、必要がありますMonoからmscorlib.dllを取得し、プロジェクトディレクトリのDLLsフォルダに配置し、PCLプロジェクトに参照を追加します。あなたはここにDLLを見つけることができます。/Library/Frameworks/Mono.framework/Versions/3.0.10/lib/mono/4.0
あなたはそれのすべてをやった後、あなたが取得し、かなり良い形にする必要がありますあなたのPCLは動作します。私は、XSでユニットテストプロジェクトを作成してPCLにリンクし、IDE内からテストを実行できるという点で、これが余計な作業に値することがわかった。さらに、私はMoqのようなライブラリを使って私の意見を嘲笑し、統合テストを行うことができます。
Xamarinは、完全なPCLサポートが「すぐに」提供されることを約束しており、これらのハッキングを気にする必要はありません。
探しを作成するので、今日これをやりたいと思っ誰もが間違いなく真のクロスプラットフォームコントロールのセットで、今年初めに出てきたXamarin.Formsをご覧くださいXamarinへ - 私はあなたの考え方が好きです。非常に役立ちます。 – YnotDraw
素晴らしい情報投稿していただきありがとうございます。 – Stonetip
すべてのプラットフォームで動作するアプリケーションを作成したい場合は、zamarinのみを選択します。 iOS、Android、Firefox OS – user3491862