1時間で分かった気に
なれる Xamarin 概
要
2014/9/30 「Xamarin」って何? Wエバンジェリ
ストによる特濃「Xamarin」勉強会
2016年6月改訂
エクセルソフト株式会社
Business Development Manager
田淵 義人
ytabuchi@xlsoft.com
03-5440-7875 / 080-7015-3586
自己紹介 • 田淵義人
• Xamarin コミュニティエバンジェリスト
• Microsoft MVP Visual Studio and Development
Technologies 受賞♪
• 目指せ!開発もチョットデキル営業
• 執筆
• マイナビニュースで連載中
• Build Insider Xamarin TIPS で連載中
• 本書きました(Xamarin の章)
• コミュニティ
• http://jxug.org 主催
• Twitter: @ytabuchi
• facebook: ytabuchi.xlsoft
• Blog: http://ytabuchi.hatenablog.com/
本セッションのゴール
• Xamarin についてイメージを掴んでいただくこと
• 出来ること出来ないことをご理解いただくこと
• Xamarin に興味を持っていただくこと
はじめに
今までのアプ
リ開発
モバイル向けクロスプラット
フォーム開発環境
“no silver bullet”
何を使えばい
いの?
• ネイティブ (Objective-C/Swift, Java)
• Xcode, Android Studio/eclipse
• HTML5,JS
• Cordova (PhoneGAP, Monaca)
• React Native
• Electron
• C++/Delphi
• RAD Studio
好きなの使えばいいんじゃない
でしょうか。
(※個人の見解です)
Xamarin(ザマリン)
API 100% 移植
“ネイティブ” アプリ
C# / .NET
コード共通化
API 100%
移植
• Xamarin.iOS
• 原則 iOS SDK リリースと同日
• Xamarin.Android
• 1ヶ月~3ヶ月程してリリース
• 2016年6月現在、N Preview 対応済み
“ネイティブ”
アプリ
• C# + .NET ランタイム
• ネイティブ UI
• ネイティブ “パフォーマンス”
C# / Visual
Studio で開
発
• async/await, LINQ, ラムダ式などが使える
• Java, Objective-C, Swift を書く必要がない
• TFS, Resharper などのエコシステム
button.TouchUpInside += (s, e) => {
message.Text = "Hello!";
};
from p in Table<Person> ()
where p.ID == id
select p;
iOS
API
100% 対応
Android
API
100% 対応
DEMO
.NET BCL
(Mono)
• System.IO
• ファイル操作の共通化
• System.NET
• ネットワーク操作の共通化
• System.Linq
• データ操作の簡素化、共通化
• System.XML
• XML 操作の簡素化、共通化
• System.Threading
• 上記全般もですが、非同期処理の恩恵
Xamarin を
使用した開発
共有方法 • PCL
• PCL (Portable Class Library) - Xamarin 3 の
新しいコード共有テクニック : XLsoft エクセルソフト
• Shared Project
• Shared Project - Xamarin 3 の新しいコード共
有テクニック : XLsoft エクセルソフト
Shared
Project
Xamarin.For
ms - 画面の
共通化
UI “コード”の共通化
ビルド時にネイティブ
UI にマップ
XAML で書ける!
(ただし手動)
Pages
Content MasterDetail Navigation Tabbed Carousel
Layouts
Stack Absolute Relative Grid ContentView ScrollView Frame
Controls
ActivityIndicat
or
BoxView Button DatePicker Editor
Entry Image Label ListView Map
OpenGLView Picker ProgressBar SearchBar Slider
Stepper TableView TimePicker WebView EntryCell
ImageCell SwitchCell TextCell ViewCell
Xamarin.For
ms では物足
りない?
• ネイティブの UI を活用する仕組み
• Custom Renderer
• Effects
• ネイティブの API を活用する仕組み
• Xamarin Plugins
• Dependency Service
• Mvvmの機能
• Data Binding
• Message Center
DEMO
できること・できないこと FAQ
FAQ 1 • でも、お高いんでしょう?
• Visual Studio に含まれます!
• 無料の STARTER というのがあると聞きました
• 個人の方は Community Edition を使えば完全フ
リー
• Mac が必須と聞いたんですが…
• iOS アプリをビルドするのに Xcode が必要なんです。
• Visual Studio Express でも大丈夫?
• VS は Community か、Pro 以上が必要です。
• UWP も対応してますか?
• Visual Studio があるじゃない (Mac では無理ゲー)
• Xamarin.Forms は UWP もストアも対応。
FAQ 2 • ネイティブで作ったライブラリは使えるの?
• Binding して Xamarin 用 dll にする。
• ネイティブライブラリを組み込んで P/Invoke や JNI 経由
• iOS Framework を Android で、Android の jar を
iOS では使えません。
• Xamarin で作ったライブラリはネイティブで使えるの?
• 使えません。
• NuGet は使えるの?
• 使えます。Xamarin 専用の ComponentStore もあり
ます。
• WinForm や WPF 用のライブラリは使えるの?
• View のライブラリは基本的に使えません。
• Prism (Pattern & Practice 製の Mvvm フレームワー
ク) は PCL 化されているので Xamarin でも使えますし、
Preview 版ながら Xamarin.Forms も対応
FAQ 3 • ソース一回書けばいいと思ってた
• ネイティブの知識も必要ですぜ… 旦那…?
• どれくらい共通化できるの?
• 30%~60% くらいだそうです。
• Xamarin.Forms は 80% くらい共通化できます。
• OS 毎に開発するのは?
• UI を定義する部分
• OS 固有の機能を実装する部分
• 共通化できるのは?
• ロジック (データベースへのアクセス、通信処理など) 部
分
• 定義した UI に対してデータのやり取りをする部分
• Xamarin.Forms を使用するとベーシックな UI は共
通化できます。
FAQ 4 • Xamarin.Forms の XAML は
手書き?
• はい。2016年6月現在、
Xamarin Studio Alpha
Chanel にのみ
Xamarin.Forms Previewer が
ありますが、手書きです。
• 共有化はどうやってやるの?
• Universal App (Shared
Project)
• PCL (Portable Class Library)
• Profile は 7 または 111 をお勧め
• リンク参照
• MvvmCross などのフレームワーク
FAQ 5 • 日本語の資料ってあるの?
• http://jxug.org/links.html にブログエントリーを
まとめてあります。
• サンプルが欲しいんですが?
• Xamarin が山のように (ry なお、Apache 2.0 ラ
イセンスなのでそのまま使っても大丈夫!
• 書籍が欲しいんですが?
• http://www.amazon.co.jp/exec/obidos/AS
IN/4822298345/
ダウンロード
https://www.xamarin.com/
download
参考資料
サンプル・ブロ
グなど
• Xamarin.iOS サンプル
• Xamarin.Android サンプル
• Xamarin.Forms サンプル
• Japan Xamarin User Group
• ブログ纏め
• 田淵ブログ Xamarin 日本語情報
• Qiita Xamarin タグ
開発OS 対象 OS IDE 必要なシステム
Windows
iOS
Visual
Studio
Windows
• Windows 7 以上
• Visual Studio 2012/2013/2015 Community または Professional 以上(Express 未対応)
• Xamarin.iOS (Visual Studio インストーラーに同梱)
Mac OS X
• OS X Yosemite 10.10 以上
• Xcode 7.2 以上
Android
Visual
Studio
• Windows 7 以上
• Visual Studio 2012/2013/2015 Community または Professional 以上(Express 未対応)
• J2SDK 1.7 32bit (Visual Studio 統合インストーラーに同梱)
• Android SDK, NDK (Visual Studio 統合インストーラーに同梱)
• Xamarin.Android (Visual Studio 統合インストーラーに同梱)
Mac
iOS
Xamarin
Studio
• OS X Yosemite 10.10 以上
• Xcode 7.2 以上
• Xamarin.iOS (Xamarin 統合インストーラーに同梱)
Android
Xamarin
Studio
• OS X Yosemite 10.10 以上
• J2SDK 1.7
• Android SDK, NDK (Xamarin 統合インストーラーに同梱)
• Xamarin.Android (Xamarin 統合インストーラーに同梱)
まとめ
Xamarin(ザマリン)
API 100% 移植
“ネイティブ” アプリ
C# / .NET
コード共通化
“ネイティブ”
アプリ
• C# + .NET ランタイム
• ネイティブ UI
• ネイティブ “パフォーマンス”
iOS
API
100% 対応
Android
API
100% 対応
Xamarin を
使用した開発
Xamarin.For
ms - 画面の
共通化
UI “コード”の共通化
ビルド時にネイティブ
UI にマップ
XAML で書ける!
(ただし手動)
ご清聴
ありがとうございます
ご質問がありましたら、田淵までお気軽にどうぞ
ytabuchi@xlsoft.com
080-7015-3586 / 03-5440-7875
Twitter: @ytabuchi
facebook: ytabuchi.xlsoft
Blog: Xamarin 日本語情報

Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2

  • 1.
    1時間で分かった気に なれる Xamarin 概 要 2014/9/30「Xamarin」って何? Wエバンジェリ ストによる特濃「Xamarin」勉強会 2016年6月改訂 エクセルソフト株式会社 Business Development Manager 田淵 義人 ytabuchi@xlsoft.com 03-5440-7875 / 080-7015-3586
  • 2.
    自己紹介 • 田淵義人 •Xamarin コミュニティエバンジェリスト • Microsoft MVP Visual Studio and Development Technologies 受賞♪ • 目指せ!開発もチョットデキル営業 • 執筆 • マイナビニュースで連載中 • Build Insider Xamarin TIPS で連載中 • 本書きました(Xamarin の章) • コミュニティ • http://jxug.org 主催 • Twitter: @ytabuchi • facebook: ytabuchi.xlsoft • Blog: http://ytabuchi.hatenablog.com/
  • 3.
    本セッションのゴール • Xamarin についてイメージを掴んでいただくこと •出来ること出来ないことをご理解いただくこと • Xamarin に興味を持っていただくこと
  • 4.
  • 5.
  • 6.
  • 7.
    何を使えばい いの? • ネイティブ (Objective-C/Swift,Java) • Xcode, Android Studio/eclipse • HTML5,JS • Cordova (PhoneGAP, Monaca) • React Native • Electron • C++/Delphi • RAD Studio
  • 8.
  • 9.
  • 10.
    API 100% 移植 • Xamarin.iOS •原則 iOS SDK リリースと同日 • Xamarin.Android • 1ヶ月~3ヶ月程してリリース • 2016年6月現在、N Preview 対応済み
  • 11.
    “ネイティブ” アプリ • C# +.NET ランタイム • ネイティブ UI • ネイティブ “パフォーマンス”
  • 12.
    C# / Visual Studioで開 発 • async/await, LINQ, ラムダ式などが使える • Java, Objective-C, Swift を書く必要がない • TFS, Resharper などのエコシステム button.TouchUpInside += (s, e) => { message.Text = "Hello!"; }; from p in Table<Person> () where p.ID == id select p;
  • 13.
  • 14.
  • 15.
  • 16.
    .NET BCL (Mono) • System.IO •ファイル操作の共通化 • System.NET • ネットワーク操作の共通化 • System.Linq • データ操作の簡素化、共通化 • System.XML • XML 操作の簡素化、共通化 • System.Threading • 上記全般もですが、非同期処理の恩恵
  • 17.
  • 18.
    共有方法 • PCL •PCL (Portable Class Library) - Xamarin 3 の 新しいコード共有テクニック : XLsoft エクセルソフト • Shared Project • Shared Project - Xamarin 3 の新しいコード共 有テクニック : XLsoft エクセルソフト
  • 19.
  • 20.
    Xamarin.For ms - 画面の 共通化 UI“コード”の共通化 ビルド時にネイティブ UI にマップ XAML で書ける! (ただし手動)
  • 21.
  • 22.
    Layouts Stack Absolute RelativeGrid ContentView ScrollView Frame
  • 23.
    Controls ActivityIndicat or BoxView Button DatePickerEditor Entry Image Label ListView Map OpenGLView Picker ProgressBar SearchBar Slider Stepper TableView TimePicker WebView EntryCell ImageCell SwitchCell TextCell ViewCell
  • 24.
    Xamarin.For ms では物足 りない? • ネイティブのUI を活用する仕組み • Custom Renderer • Effects • ネイティブの API を活用する仕組み • Xamarin Plugins • Dependency Service • Mvvmの機能 • Data Binding • Message Center
  • 25.
  • 26.
  • 27.
    FAQ 1 •でも、お高いんでしょう? • Visual Studio に含まれます! • 無料の STARTER というのがあると聞きました • 個人の方は Community Edition を使えば完全フ リー • Mac が必須と聞いたんですが… • iOS アプリをビルドするのに Xcode が必要なんです。 • Visual Studio Express でも大丈夫? • VS は Community か、Pro 以上が必要です。 • UWP も対応してますか? • Visual Studio があるじゃない (Mac では無理ゲー) • Xamarin.Forms は UWP もストアも対応。
  • 28.
    FAQ 2 •ネイティブで作ったライブラリは使えるの? • Binding して Xamarin 用 dll にする。 • ネイティブライブラリを組み込んで P/Invoke や JNI 経由 • iOS Framework を Android で、Android の jar を iOS では使えません。 • Xamarin で作ったライブラリはネイティブで使えるの? • 使えません。 • NuGet は使えるの? • 使えます。Xamarin 専用の ComponentStore もあり ます。 • WinForm や WPF 用のライブラリは使えるの? • View のライブラリは基本的に使えません。 • Prism (Pattern & Practice 製の Mvvm フレームワー ク) は PCL 化されているので Xamarin でも使えますし、 Preview 版ながら Xamarin.Forms も対応
  • 29.
    FAQ 3 •ソース一回書けばいいと思ってた • ネイティブの知識も必要ですぜ… 旦那…? • どれくらい共通化できるの? • 30%~60% くらいだそうです。 • Xamarin.Forms は 80% くらい共通化できます。 • OS 毎に開発するのは? • UI を定義する部分 • OS 固有の機能を実装する部分 • 共通化できるのは? • ロジック (データベースへのアクセス、通信処理など) 部 分 • 定義した UI に対してデータのやり取りをする部分 • Xamarin.Forms を使用するとベーシックな UI は共 通化できます。
  • 30.
    FAQ 4 •Xamarin.Forms の XAML は 手書き? • はい。2016年6月現在、 Xamarin Studio Alpha Chanel にのみ Xamarin.Forms Previewer が ありますが、手書きです。 • 共有化はどうやってやるの? • Universal App (Shared Project) • PCL (Portable Class Library) • Profile は 7 または 111 をお勧め • リンク参照 • MvvmCross などのフレームワーク
  • 31.
    FAQ 5 •日本語の資料ってあるの? • http://jxug.org/links.html にブログエントリーを まとめてあります。 • サンプルが欲しいんですが? • Xamarin が山のように (ry なお、Apache 2.0 ラ イセンスなのでそのまま使っても大丈夫! • 書籍が欲しいんですが? • http://www.amazon.co.jp/exec/obidos/AS IN/4822298345/
  • 32.
  • 33.
  • 34.
    サンプル・ブロ グなど • Xamarin.iOS サンプル •Xamarin.Android サンプル • Xamarin.Forms サンプル • Japan Xamarin User Group • ブログ纏め • 田淵ブログ Xamarin 日本語情報 • Qiita Xamarin タグ
  • 35.
    開発OS 対象 OSIDE 必要なシステム Windows iOS Visual Studio Windows • Windows 7 以上 • Visual Studio 2012/2013/2015 Community または Professional 以上(Express 未対応) • Xamarin.iOS (Visual Studio インストーラーに同梱) Mac OS X • OS X Yosemite 10.10 以上 • Xcode 7.2 以上 Android Visual Studio • Windows 7 以上 • Visual Studio 2012/2013/2015 Community または Professional 以上(Express 未対応) • J2SDK 1.7 32bit (Visual Studio 統合インストーラーに同梱) • Android SDK, NDK (Visual Studio 統合インストーラーに同梱) • Xamarin.Android (Visual Studio 統合インストーラーに同梱) Mac iOS Xamarin Studio • OS X Yosemite 10.10 以上 • Xcode 7.2 以上 • Xamarin.iOS (Xamarin 統合インストーラーに同梱) Android Xamarin Studio • OS X Yosemite 10.10 以上 • J2SDK 1.7 • Android SDK, NDK (Xamarin 統合インストーラーに同梱) • Xamarin.Android (Xamarin 統合インストーラーに同梱)
  • 36.
  • 37.
  • 38.
    “ネイティブ” アプリ • C# +.NET ランタイム • ネイティブ UI • ネイティブ “パフォーマンス”
  • 39.
  • 40.
  • 41.
  • 42.
    Xamarin.For ms - 画面の 共通化 UI“コード”の共通化 ビルド時にネイティブ UI にマップ XAML で書ける! (ただし手動)
  • 43.