アプリ版:「スタンプのみでお礼する」機能のリリースについて

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#でコーディングしたほうが効率が良なそうに思えるのです
    が、実際はどうなのでしょうか?

以上、宜しくお願い致します。

A 回答 (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で書いた方が早いことを痛感すると思います。
    • good
    • 0
この回答へのお礼

大変有難う御座いました。
参考になる部分が多々ありました。

「xamlに毛嫌い感があるだけのように聞こえるので、慣れた方が得策かと思います。」・・・・見抜かれましたね。
C#を中心にやっていたため、xmlの記載方法に馴染みがありませんでしたが
段々分かってきました。
有難う御座いました。

お礼日時:2018/05/29 16:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!