

Xamarinを使用して、アプリ開発を始めたところなのですが、
Xamarin.Android/Xamarin.iOS/Xamarin.Forms これらの違いや開発方法に関して
教えて欲しいのですが?
自分で調べたところ
1・Xamarin.Android/Xamarin.iOSは、画面をビジュアル的に作成可能で、それらはネイティブの
仕組みを使用している。
そのためか、双方の画面は共通化できない?
またコードも共通化できない?
2・Xamarin.Formsは、画面をビジュアル的に作成できず(現在のところ)、ネイティブでないが、
双方の画面やコードを共通化できる。
質問① 上述の「?」部分はあっていますか?
またそれ以外の違いは?
質問② 実際の開発では、Android/iOS両方のスマフォをターゲットとしているなら、
Xamarin.Formsで開発することがベターなのでしょうか?
質問③ Xamarin.Formsで、初め、XAMLファイルはコントロールの画面作成に使用、
C#コードファイルはイベントの作成に使用、と使い分けるものだと思っていたのですが、
画面をXAMLで記述しなくとも、C#コード側でも作成が可能であることを知り、ならば
最小限のXAML記述だけで、後はC#でコーディングしたほうが効率が良なそうに思えるのです
が、実際はどうなのでしょうか?
以上、宜しくお願い致します。
No.1ベストアンサー
- 回答日時:
質問①
1. Android、iOSプロジェクト間でのコード共通利用はできません。
プラットフォームに依存しないロジックは、PCL(今では.NET Standardかな?)を使うのが一般的です。
田淵さんのページ貼っときますね。
http://ytabuchi.hatenablog.com/entry/NetStandard …
SharedProjectもあります。
どうしてもプラットフォーム判断が必要で、一部コードを共通にしたい場合はSharedProjectになります。
どちらを選択すべきかは、どこかのページで説明があったはずですが、よく覚えていません。探してください。
SharedProjectは、formsでは必須のカスタムレンダラーなどでも使えます。
2.formsは、ネイティブコンパイルであるからこそ、ビジュアル的に開発できません。
実際に動かすと、プラットフォームごとのボタンなどが描画されることになります。
そのため、描画領域なとが、プラットフォームごとに希望したものとは異なる場合があるというクセもあります。
質問②
ケースバイケース。
Android端末だからこその特徴的な操作、iPhoneだからこその特徴的な操作感があります。
(ページ遷移やタブなど)
それらをそのまま活かしたいと考えるならば、formsではありません。
どの端末でも同じ操作感を統一させたい場合はformsです。
いずれにしてもコードは外出しにすべきでしょう。
全部が全部そうでないでしょうが、UIに関係ないコードや共通化できるコードを外出しにしておいた方が何かと機転が利きます。
質問③
formsに限った話ではなく、WPF(xaml)でも同じですよね。
何でもかんでもコードに書くことは、単純に邪魔なコードを増やすことになるため、個人的にはおすすめしません。
静的記述で済むものはxamlで書くに越したことはないでしょう。
xamlに毛嫌い感があるだけのように聞こえるので、慣れた方が得策かと思います。
formsの場合、UIのデザイナーはありませんが、リアルタイムにプレビューすることができます。
なので、xamlに慣れてしまえば、断然xamlで書いた方が早いことを痛感すると思います。
大変有難う御座いました。
参考になる部分が多々ありました。
「xamlに毛嫌い感があるだけのように聞こえるので、慣れた方が得策かと思います。」・・・・見抜かれましたね。
C#を中心にやっていたため、xmlの記載方法に馴染みがありませんでしたが
段々分かってきました。
有難う御座いました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
1日に1人がこなせるプログラム...
-
access2003 クエリSQL文に...
-
JANコードとPOSコードは同じ?
-
access でエラーを回避するには?
-
COBOLの文法
-
フィルターかけた後、重複を除...
-
UWSCでMOUSEORG関数が上手く処...
-
VBAでファイルオープン後にコー...
-
ホワイトノイズの生成コードに...
-
1、Rstudioで回帰直線を求める...
-
2つのチェックボックスを制御
-
ExcelVBAの転記について
-
PreviewKeyDownイベントが2回...
-
Exel VBA 別ブックから該当デ...
-
差し込み後、元データを変更し...
-
select文のwhere句に配列を入れ...
-
for whichの使い方
-
特定の文字列で列を区切るには?
-
エクセルで最後の文字だけ置き...
-
Access:クエリーにて集計後に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
1、Rstudioで回帰直線を求める...
-
access2021 VBA メソッドまたは...
-
1日に1人がこなせるプログラム...
-
JANコードとPOSコードは同じ?
-
エクセルに見えない文字(JISX0...
-
変数名「cur」について
-
access2003 クエリSQL文に...
-
Excelシート上で右クリックがで...
-
【VB6】実行ファイルとした後、...
-
COBOLの文法
-
Exel VBA 別ブックから該当デ...
-
JavaScriptの定数名が取り消し...
-
C# コードビハインドについて
-
JIPS-Eコードのコード表について
-
Nullの使い方が不正です。
-
PreviewKeyDownイベントが2回...
-
VBAでファイルオープン後にコー...
-
ユーザーフォームに2つのコン...
-
ACCESSユニオンクエリでORDER B...
おすすめ情報