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で質問しましょう!
似たような質問が見つかりました
- Illustrator(イラストレーター) アイビスペイント、原稿作成について 1 2023/07/14 03:01
- 電子マネー・電子決済 QUICPayの登録ができない。 4 2023/06/10 10:57
- アプリ swiftでスマホアプリを開発した時の動作確認 1 2023/02/14 11:37
- Windows 10 パソコンが使えず困ってます!(Microsoftアカウントでログイン後、PINコードに関するエラー) 2 2023/03/17 19:09
- 画像編集・動画編集・音楽編集 動画をディスク作成すると画像が乱れる。 4 2022/06/24 07:49
- その他(Microsoft Office) エクセルのマクロについて教えてください。 5 2023/01/21 09:39
- システム システムを開発するにあたって 3 2022/08/06 21:30
- docomo(ドコモ) dアカウントの携帯電話番号が登録できない。ワンタイムコードがSMSに届かない。 2 2023/07/09 23:07
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
- その他(芸術・クラフト) フィキサティフの使用方法について、教えて下さい。 3 2022/05/29 12:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
pythonにてseleniumを使うも、...
-
Exel VBA 別ブックから該当デ...
-
chatgptでつくってもらったコー...
-
ExcelのVBAコードについて教え...
-
パイソンプログラム
-
フィルターかけた後、重複を除...
-
1、Rstudioで回帰直線を求める...
-
vb6.0の実行時エラー'3075'につ...
-
Gitのクローンについて
-
特定行の背景色を変えたいのですが
-
Excel VBA素人です。VBAで図形...
-
コンパイルエラー 変数が定義...
-
access2003 クエリSQL文に...
-
楽観的排他処理のためViewState...
-
プレースホルダー
-
CFormViewでの印刷について
-
変数名「cur」について
-
文字コードについて
-
Excel VBAについて
-
SQL
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
access2003 クエリSQL文に...
-
1日に1人がこなせるプログラム...
-
Exel VBA 別ブックから該当デ...
-
pythonにてseleniumを使うも、...
-
ExcelのVBAコードについて教え...
-
ExcelのVBAコードについて教え...
-
chatgptでつくってもらったコー...
-
欠番の抽出について
-
JANコードとPOSコードは同じ?
-
JavaScriptの定数名が取り消し...
-
1、Rstudioで回帰直線を求める...
-
特定行の背景色を変えたいのですが
-
変数名「cur」について
-
PreviewKeyDownイベントが2回...
-
将来AIが進歩してくるにつれて...
-
ACCESSユニオンクエリでORDER B...
-
COBOLの文法
-
VBAでファイルオープン後にコー...
-
Nullの使い方が不正です。
おすすめ情報