Xamarin Native VS Xamarin Forms
2016年11月16日 城東.NET #2
鈴木友宏
自己紹介
鈴木友宏
業務アプリの開発者です。
車とドライブをこよなく愛する逸般人一般人です。
ほそぼそとBlogもやっています。
http://hiro128.hatenablog.jp/
このスライドは下記にアップしてあります。
2
私は現在
Xamarinでアプリを開発中です
ですが、ものすご~く
後悔していることがあります…
3
それは…
Xamarin Native で
開発してしまったことです。
4
今日お話しすること
5
• Xamarin には2つの開発方法があります
• Xamarinで何が時短できるのか?
• Xamarin Native OR Xamarin Forms ?
• Xamarinに表はありますか?
• おまけ
Xamarin には2つの開発方法があります
6
Xamarin Native Xamarin Forms
ロジックのみ共通化
UIはネイティブで個別に作りこむ
ロジックとUIを共通化
UIは各プラットフォームの
同じ役割のUIが自動マッピング
Shared C# App Logic
(PCL)
iOS
C# UI
Android
C# UI
Windows
C# UI
Shared C# App Logic
(PCL)
Shared C# UI Code
(Xamarin.Forms)
Xamarinで何が時短できるのか?①知識の習得を時短!
7
プラットフォーム
個別
Xamarin Native
iOS API Objective-C, Swift Xcode
Android API Java Android Studio
Windows API Visual StudioC#
Xamarin で開発 → iOS, Android のAPIの知識は必須
API 言語 統合開発環境
iOS API Objective-C, Swift Xcode
Android API Java Android Studio
Windows API Visual StudioC#
ほぼ不要と思いたい
iOS API
Android API
Windows API
Xamarin.Forms
Objective-C, Swift Xcode
Java Android Studio
Visual StudioC#Xamarin.Forms
UI toolkit
ほぼ不要と思いたい
Xamarin.Formsでも必要
Xamarinで何が時短できるのか?②開発工数を時短!
8
Xamarin Native Xamarin Forms
ロジックのみ共通化
UIはネイティブで個別に作りこむ
ロジックとUIを共通化
UIは各プラットフォームの
同じ役割のUIが自動マッピング
Shared C# App Logic
(PCL)
iOS
C# UI
Android
C# UI
Windows
C# UI
Shared C# App Logic
(PCL)
Shared C# UI Code
(Xamarin.Forms)
ポイント1
PCLでは、.NETの資産が使える。
async/await, LINQ, HttpClient,
Azure Easy Tables etc.
ポイント3
ポイント2 ロジック部分を共通化できる。App Logic 部分を共通化できる。
• ネイティブ部分も含め全部C#で書ける!
• Visual Studio で開発可能
• ReSharperなどのアドインが使える
Xamarin Native OR Xamarin Forms ?
9
Xamarin Native(ロジックのみ共通化) Xamarin Forms (UIも共通化)
UIの作りこみが”理論的に“可能か
(ドット単位での細かな調整など) ◎ ネイティブと同様に可能 ○ “頑張れば“ネイティブと同様に可能
UIの作りこみに必要な知識 ◎ ネイティブUIの理解 △ ネイティブUIの理解 + Xamarin.Formsのレンダラの理解
プラットフォーム固有機能の利用 ◎
ネイティブと同様に可能。
トラブっても解析は比較的容易 ○
Plugins for Xamarin, Dependency Service等で可
能だが、トラブった場合多少解析が面倒
MVVMフレームワーク ○
MVVM Cross → イマイチ
MVVM Light Toolkit → こちらの方がマシだが… ◎ Prism.Forms最高!!
実戦での開発工数
(超個超人的見解) ○ Xamarin.Formsと大差なし ○ Xamarin Nativeと大差なし
技術的投資価値
(超個超人的見解) △
これ以上革新的な発展の可能性は少ない。
(新APIには追随) ◎
Xamarin.Formsは鋭意進化中
今後更なるブレイクスルーが期待できる。
Shared C# App Logic
(PCL)
iOS
C# UI
Android
C# UI
Windows
C# UI
Shared C# App Logic
(PCL)
Shared C# UI Code
(Xamarin.Forms)
一見Xamarin Native有利に見えますが、
私の結論は…
Xamarin Forms 一択です
1
業務アプリを開発し始めると気がつくこと
11
安心してください!ありますよ!(サードパーティですが…)
お客様「Excelみたいな表が欲しいんだけど…」
開発会社「えーと…(いやー表は無いんだよな~ 汗)」
Syncfusion Essential Studio for Xamarin
12
https://www.syncfusion.com/products/xamarin
Xamarin.iOS
Xamarin.Android
Xamarin.Forms
対応
まとめ
13
Xamarin では各プラットフォームのネイティブ APIの知識が必須
メリット
• Visual Studio とC#で開発できる。ReSharperなどのアドインがそのまま使える。
• Xamarin Native, Xamarin Formsともにロジック部分を共通化できる。
• PCL部分は .NET Framework のサブセットのため、.NETの資産がかなりのレベルで使える。
留意点
• Xamarin.Formsを使ったからといって、 各プラットフォームNativeの知識が不要にはならない、逆に実戦投入するなら細かいレ
ベルでの理解が必要。
• Xamarin.Formsを使ったからといって、 Xamarin Nativeに比べて工数大幅削減は期待できない。むしろ顧客の細かい要望
に応えるためには苦労も多くなる。
• だが、Xamarin.Formsは今後さらに進化していくはずなので、同じ苦労をするなら、Xamarin.Formsに投資する価値は十分
にある。
• MVVMに関してはPrism.Formsが使えるXamarin.Formsが有利。
• 表が使いたければ Syncfusion Essential Studio for Xamarin が便利
ご清聴ありがとうございました。

Xamarin Native vs Xamarin Forms