You are on page 1of 14

Xamarin Native VS Xamarin Forms

2016 年 11 月 16 日 城東 .NET #2


鈴木友宏
自己紹介

鈴木友宏
 業務アプリの開発者です。
 車とドライブをこよなく愛する逸般人一般人です。

ほそぼそと Blog もやっています。


http://hiro128.hatenablog.jp/

このスライドは下記にアップしてあります。

2
私は現在
Xamarin でアプリを開発中です
ですが、ものすご ~ く
後悔していることがあります…

3
それは…
Xamarin Native で
開発してしまったことです。

4
今日お話しすること

• Xamarin には 2 つの開発方法があります
• Xamarin で何が時短できるのか?
• Xamarin Native OR Xamarin Forms ?
• Xamarin に表はありますか?
• おまけ

5
Xamarin には 2 つの開発方法があります

Xamarin   Native Xamarin   Forms


ロジックと UI を共通化
ロジックのみ共通化
UI は各プラットフォームの
UI はネイティブで個別に作りこむ
同じ役割の UI が自動マッピング

iOS Android Windows


Shared C# UI Code
C# UI C# UI C# UI
(Xamarin.Forms)

Shared C# App Logic Shared C# App Logic


(PCL) (PCL)

6
Xamarin で何が時短できるのか?①知識の習得を時短!
API UI toolkit 言語 統合開発環境
iOS   API Objective-C, Swift Xcode
プラットフォーム
個別 Android   API Java Android Studio

Windows   API C# Visual Studio

iOS   API Objective-C, Swift Xcode

Xamarin Native Android   API ほぼ不要


Java と思いたい
Android Studio

Windows   API C# Visual Studio

Objective-C, Swift Xcode


ほぼ不要
iOS   API

Android   API Java と思いたい


Android Studio
Xamarin.Forms
Windows   API Xamarin.Forms C# Visual Studio

Xamarin.Forms でも必要
Xamarin で開発 →  iOS, Android の API の知識は必須
7
Xamarin で何が時短できるのか?②開発工数を時短!
Xamarin   Native Xamarin   Forms
ロジックと UI を共通化
ロジックのみ共通化
UI は各プラットフォームの
UI はネイティブで個別に作りこむ
ポイント 1 同じ役割の UI が自動マッピング

• ネイティブ部分も含め全部 C# で書ける! iOS Android Windows


• Visual Studio で開発可能 C# UI C# UI C# UI
Shared C# UI Code
• ReSharper などのアドインが使える (Xamarin.Forms)

Shared C# App Logic Shared C# App Logic


ポイント 3 (PCL) (PCL)

PCL では、 .NET の資産が使える。


async/await, LINQ, HttpClient,
Azure Easy Tables etc.
ポイント 2 ロジック部分を共通化できる。
App Logic 部分を共通化できる。

8
Xamarin Native OR Xamarin Forms ?
Xamarin Native (ロジックのみ共通化) Xamarin Forms ( UI も共通化)

iOS Android Windows Shared C# UI Code


C# UI C# UI C# UI (Xamarin.Forms)

Shared C# App Logic Shared C# App Logic


(PCL) (PCL)

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 は鋭意進化中
今後更なるブレイクスルーが期待できる。

9
一見 Xamarin Native 有利に見えますが、

私の結論は…

Xamarin Forms 一択です

1
業務アプリを開発し始めると気がつくこと

お客様「 Excel みたいな表が欲しいんだけど…」


開発会社「えーと…(いやー表は無いんだよな~ 汗)」

安心してください!ありますよ!(サードパーティですが…)

11
Syncfusion Essential Studio for Xamarin
https://www.syncfusion.com/products/xamarin

Xamarin.iOS
Xamarin.Android
Xamarin.Forms
対応

12
まとめ
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 が便利

13
ご清聴ありがとうございました。

You might also like