Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

160,880 views

Published on

SanSan さんの 2014/9/30 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会で発表した資料です。
2016年6月に現在の情報に合わせて改訂しました。

Published in: Technology

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

  1. 1. 1時間で分かった気に なれる Xamarin 概 要 2014/9/30 「Xamarin」って何? Wエバンジェリ ストによる特濃「Xamarin」勉強会 2016年6月改訂 エクセルソフト株式会社 Business Development Manager 田淵 義人 ytabuchi@xlsoft.com 03-5440-7875 / 080-7015-3586
  2. 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. 3. 本セッションのゴール • Xamarin についてイメージを掴んでいただくこと • 出来ること出来ないことをご理解いただくこと • Xamarin に興味を持っていただくこと
  4. 4. はじめに
  5. 5. 今までのアプ リ開発
  6. 6. モバイル向けクロスプラット フォーム開発環境 “no silver bullet”
  7. 7. 何を使えばい いの? • ネイティブ (Objective-C/Swift, Java) • Xcode, Android Studio/eclipse • HTML5,JS • Cordova (PhoneGAP, Monaca) • React Native • Electron • C++/Delphi • RAD Studio
  8. 8. 好きなの使えばいいんじゃない でしょうか。 (※個人の見解です)
  9. 9. Xamarin(ザマリン) API 100% 移植 “ネイティブ” アプリ C# / .NET コード共通化
  10. 10. API 100% 移植 • Xamarin.iOS • 原則 iOS SDK リリースと同日 • Xamarin.Android • 1ヶ月~3ヶ月程してリリース • 2016年6月現在、N Preview 対応済み
  11. 11. “ネイティブ” アプリ • C# + .NET ランタイム • ネイティブ UI • ネイティブ “パフォーマンス”
  12. 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. 13. iOS API 100% 対応
  14. 14. Android API 100% 対応
  15. 15. DEMO
  16. 16. .NET BCL (Mono) • System.IO • ファイル操作の共通化 • System.NET • ネットワーク操作の共通化 • System.Linq • データ操作の簡素化、共通化 • System.XML • XML 操作の簡素化、共通化 • System.Threading • 上記全般もですが、非同期処理の恩恵
  17. 17. Xamarin を 使用した開発
  18. 18. 共有方法 • PCL • PCL (Portable Class Library) - Xamarin 3 の 新しいコード共有テクニック : XLsoft エクセルソフト • Shared Project • Shared Project - Xamarin 3 の新しいコード共 有テクニック : XLsoft エクセルソフト
  19. 19. Shared Project
  20. 20. Xamarin.For ms - 画面の 共通化 UI “コード”の共通化 ビルド時にネイティブ UI にマップ XAML で書ける! (ただし手動)
  21. 21. Pages Content MasterDetail Navigation Tabbed Carousel
  22. 22. Layouts Stack Absolute Relative Grid ContentView ScrollView Frame
  23. 23. 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
  24. 24. Xamarin.For ms では物足 りない? • ネイティブの UI を活用する仕組み • Custom Renderer • Effects • ネイティブの API を活用する仕組み • Xamarin Plugins • Dependency Service • Mvvmの機能 • Data Binding • Message Center
  25. 25. DEMO
  26. 26. できること・できないこと FAQ
  27. 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. 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. 29. FAQ 3 • ソース一回書けばいいと思ってた • ネイティブの知識も必要ですぜ… 旦那…? • どれくらい共通化できるの? • 30%~60% くらいだそうです。 • Xamarin.Forms は 80% くらい共通化できます。 • OS 毎に開発するのは? • UI を定義する部分 • OS 固有の機能を実装する部分 • 共通化できるのは? • ロジック (データベースへのアクセス、通信処理など) 部 分 • 定義した UI に対してデータのやり取りをする部分 • Xamarin.Forms を使用するとベーシックな UI は共 通化できます。
  30. 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. 31. FAQ 5 • 日本語の資料ってあるの? • http://jxug.org/links.html にブログエントリーを まとめてあります。 • サンプルが欲しいんですが? • Xamarin が山のように (ry なお、Apache 2.0 ラ イセンスなのでそのまま使っても大丈夫! • 書籍が欲しいんですが? • http://www.amazon.co.jp/exec/obidos/AS IN/4822298345/
  32. 32. ダウンロード https://www.xamarin.com/ download
  33. 33. 参考資料
  34. 34. サンプル・ブロ グなど • Xamarin.iOS サンプル • Xamarin.Android サンプル • Xamarin.Forms サンプル • Japan Xamarin User Group • ブログ纏め • 田淵ブログ Xamarin 日本語情報 • Qiita Xamarin タグ
  35. 35. 開発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 統合インストーラーに同梱)
  36. 36. まとめ
  37. 37. Xamarin(ザマリン) API 100% 移植 “ネイティブ” アプリ C# / .NET コード共通化
  38. 38. “ネイティブ” アプリ • C# + .NET ランタイム • ネイティブ UI • ネイティブ “パフォーマンス”
  39. 39. iOS API 100% 対応
  40. 40. Android API 100% 対応
  41. 41. Xamarin を 使用した開発
  42. 42. Xamarin.For ms - 画面の 共通化 UI “コード”の共通化 ビルド時にネイティブ UI にマップ XAML で書ける! (ただし手動)
  43. 43. ご清聴 ありがとうございます ご質問がありましたら、田淵までお気軽にどうぞ ytabuchi@xlsoft.com 080-7015-3586 / 03-5440-7875 Twitter: @ytabuchi facebook: ytabuchi.xlsoft Blog: Xamarin 日本語情報

×