xamarin 概要 @ 「xamarin」って何?...
Post on 29-Nov-2014
579 Views
Preview:
DESCRIPTION
TRANSCRIPT
1時間で分かった気になれる Xamarin 概要2014/9/30 「Xamarin」って何?Wエバンジェリストによる特濃「Xamarin」勉強会
エクセルソフト株式会社
Business Development Manager
田淵 義人
ytabuchi@xlsoft.com
03-5440-7875 / 080-7015-3586
自己紹介 •田淵義人• エクセルソフトの Xamarin 担当。非開発者。
• Xamarin でググれ
• Twitter, SNS, Web, HTML5/CSS/JS, モバイル/ガジェット, Web マーケティングなどが好き
• Twitter: @ytabuchi
• Blog: http://ytabuchi.hatenablog.com/
自己紹介 •田淵義人• エクセルソフトの Xamarin 担当。非開発者。
• Xamarin でググれ (と言ってみたいw)
• Twitter, SNS, Web, HTML5/CSS/JS, モバイル/ガジェット, Web マーケティングなどが好き
• Twitter: @ytabuchi
• Blog: http://ytabuchi.hatenablog.com/
本セッションのゴール• Xamarin についてイメージを掴んでいただくこと
• 出来ること出来ないことをご理解いただくこと
• Xamarin に興味を持っていただくこと
はじめに
省略
今までのアプリ開発
省略
モバイル向けクロスプラットフォーム開発環境“no silver bullet”
何を使えばいいの?
• ネイティブ (Objective-C/Swift, Java)• Xcode, Android Studio/eclipse
• HTML5,JS• Cordova (PhoneGAP, Monaca)
• Sencha Touch
• C++/Delphi• RAD Studio XE/Appmethod
• JS• Titanium
• ActionScript• Flash/AIR
Xamarin(ザマリン)API 100% 移植“ネイティブ” アプリC# / .NETコード共通化
API 100% 移植
• Xamarin.iOS• iOS SDK リリースと同日• iOS 8 SDK Beta (Xcode 6 Beta) と Xamarin.iOS
Alpha で iOS 8 対応アプリを開発可能• Xcode 6 Beta は Mac OS X 10.9.3 または 10.10が必要
• Introduction to iOS 8 | Xamarin• http://developer.xamarin.com/guides/ios/platfor
m_features/introduction_to_ios8/
• Xamarin.Android• 1ヶ月~3ヶ月程してリリース• Android L, Android wear は対応済み• Introduction to Android L | Xamarin
• http://developer.xamarin.com/guides/android/platform_features/android_l/introduction_to_android_l/
“ネイティブ”アプリ
• 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 == idselect p;
iOSAPI
100% 対応
AndroidAPI
100% 対応
DEMO
.NET BCL (Mono)
• System.IO• ファイル操作の共通化
• System.NET• ネットワーク操作の共通化
• System.Linq• データ操作の簡素化、共通化
• System.XML• XML 操作の簡素化、共通化
• System.Threading• 上記全般もですが、非同期処理の恩恵
Xamarin を使用した開発
共有方法 • PCL• Visual Studio 2012 / Xamarin Studio 4.2
(w/ 追加ライブラリ)
• PCL (Portable Class Library) - Xamarin 3 の新しいコード共有テクニック : XLsoft エクセルソフト• http://www.xlsoft.com/jp/products/xamarin/p
ortable_class_libraries.html
• Shared Project• Visual Studio 2013 Update 2 / Xamarin
Studio 5.0
• Shared Project - Xamarin 3 の新しいコード共有テクニック : XLsoft エクセルソフト• http://www.xlsoft.com/jp/products/xamarin/sh
ared_projects.html
Shared Project
Xamarin.Forms - 画面の共通化
UI “コード”の共通化
ビルド時にネイティブUI にマップ
XAML で書ける!(ただし手動)
Phone
Pages
Content MasterDetail Navigation Tabbed Carousel
Layouts
Stack Absolute Relative Grid ContentView ScrollView Frame
Controls
ActivityIndicator
BoxView Button DatePicker Editor
Entry Image Label ListView Map
OpenGLView Picker ProgressBar SearchBar Slider
Stepper TableView TimePicker WebView EntryCell
ImageCell SwitchCell TextCell ViewCell
Xamarin.Forms では物足りない?
• ExportRenderer を活用して機能追加• http://www.slideshare.net/amay077/xama
rinforms が超参考になると思います。サンプルコード付き!あめいさんありがとうございます。
• Mvvm 的なふるまい• あめいさんの資料参照
DEMO
Tasky • PCL• https://github.com/xamarin/mobile-
samples/tree/master/TaskyPortable
• Shared Project• https://github.com/xamarin/mobile-
samples/tree/master/Tasky
• Xamarin.Forms• https://github.com/xamarin/xamarin-
forms-samples/tree/master/Todo
できること・できないこと FAQ
FAQ 0 • C# T シャツかっこいい!• http://xamarin.com/prebuilt/sharp-shirt からサンプルプロジェクトをダウンロードしてビルドしてください。船便で Tシャツが届きます!
FAQ 1 • でも、お高いんでしょう?• はいw
•無料の STARTER というのがあると聞きました• http://xamarin.com/starter
• ただし・・・
• Mac が必須と聞いたんですが…• iOS アプリをビルドするのに Xcode が必要なんです。
• Visual Studio Express でも大丈夫?• VS は Pro 以上が必要です。
• Windows ストアアプリも対応してますか?• Visual Studio があるじゃない (Mac では無理ゲー)
FAQ 2 • ネイティブで作ったライブラリは使えるの?• Binding して Xamarin 用 dll にする。• ネイティブライブラリを組み込んで P/Invoke や JNI 経由• iOS Framework を Android で、Android の jar を
iOS では使えません。
• Xamarin で作ったライブラリはネイティブで使えるの?• 使えません。
• NuGet は使えるの?• 使えます。Xamarin 専用の ComponentStore もあります。
• WinForm や WPF 用のライブラリは使えるの?• 基本的には使えないと思います。• Prism (Pattern & Practice 製の Mvvm フレームワーク) は PCL 化されているので Xamarin でも使えます。
FAQ 3 • ソース一回書けばいいと思ってた• ネイティブの知識も必要ですぜ… 旦那…?
• どれくらい共通化できるの?• 30%~60% くらいかと思います。
• OS 毎に開発するのは?• UI を定義する部分• OS 固有の機能を実装する部分
•共通化できるのは?• ロジック (データベースへのアクセス、通信処理など) 部分
• 定義した UI に対してデータのやり取りをする部分• Xamarin.Forms を使用するとベーシックな UI は共通化できます。
FAQ 4 •共有化はどうやってやるの?• Universal App (Shared
Project)
• PCL (Portable Class Library)• Profile に注意
• リンク参照
• MvvmCross などのフレームワーク
FAQ 5 •日本語の資料ってあるの?• ・・・
• 鋭意努力します! ><
• 英語ドキュメントは Xamarin が山のように用意していますので、ぜひご覧ください。
• サンプルが欲しいんですが?• Xamarin が山のように (ry なお、Apache 2.0 ライセンスなのでそのまま使っても大丈夫!
•書籍が欲しいんですが?• http://www.amazon.co.jp/exec/obidos/AS
IN/4822298345/
評価版
http://xamarin.com/download
参考資料
デモで使用したサンプル
• iOS• SingleWordKeyboard
• http://developer.xamarin.com/samples/SingleWordKeyboard/
• Android• Android L Sample
• https://github.com/xamarin/monodroid-samples/tree/android-l/Android-L
• XMLReading• PCL 版
• http://jp.xlsoft.com/demo2/xamarin/XMLReading.zip
• Xamarin.Forms 版• http://jp.xlsoft.com/demo2/xamarin/Universal
XMLReading.zip
サンプル・ブログなど
• Xamarin.iOS サンプル• https://github.com/xamarin/monotouch-
samples
• Xamarin.Android サンプル• https://github.com/xamarin/monodroid-
samples
• Japan Xamarin User Group• http://j.mp/xm-jxug
• 田淵ブログ• http://ytabuchi.hatenablog.com/entry/toc
• Xamarin ブロググループ• http://j.mp/xm-htngrp
• Qiita Xamarin タグ• http://qiita.com/tags/xamarin
Xamarin.Forms について
• Xamarin.Forms 概要• http://www.slideshare.net/amay077/xamarinforms
• Build Insider インサイドXamarin(14) - Xamarin.Formsの基本構想と仕組み• http://www.buildinsider.net/mobile/insidexamarin/14
• Build Insider Xamarin逆引きTips 連載• http://www.buildinsider.net/mobile/xamarintips
• Xamarin.Forms ドキュメント(英語)• http://developer.xamarin.com/guides/cross-
platform/xamarin-forms/
• API ドキュメント(英語)• http://iosapi.xamarin.com/?link=N%3aXamarin.Forms
• Xamarin.Forms サンプル (C#)• https://github.com/xamarin/xamarin-forms-
samples/tree/master/FormsGallery
• Xamarin.Forms サンプル (XAML)• https://github.com/xamarin/xamarin-forms-
samples/tree/master/XAMLSamples
開発OS 対象 OS IDE 必要なシステム
Windows
iOSVisual Studio
Windows• Windows 7 以上• Visual Studio 2010/2012/2013 Professional 以上(Express 未対応)• Xamarin.iOS (Xamarin 統合インストーラーに同梱)Mac• OS X Lion 10.8 以上• Xcode 5
Xamarin Studio 未対応
Android
Visual Studio
• Windows 7 以上• Visual Studio 2010/2012/2013 Professional 以上(Express 未対応)• J2SDK 1.6/1.7 32bit (Xamarin 統合インストーラーに同梱)• Android SDK, NDK (Xamarin 統合インストーラーに同梱)• Gtk# (Xamarin 統合インストーラーに同梱)• Xamarin.Android (Xamarin 統合インストーラーに同梱)
Xamarin Studio
• Windows 7 以上• J2SDK 1.6/1.7 32bit (Xamarin 統合インストーラーに同梱)• Android SDK, NDK (Xamarin 統合インストーラーに同梱)• Gtk# (Xamarin 統合インストーラーに同梱)• Xamarin.Android (Xamarin 統合インストーラーに同梱)
Mac
iOS Xamarin Studio• OS X Lion 10.8 以上• Xcode 5• Xamarin.iOS (Xamarin 統合インストーラーに同梱)
Android Xamarin Studio
• OS X Lion 10.7 以上• J2SDK 1.6/1.7• Android SDK, NDK (Xamarin 統合インストーラーに同梱)• Xamarin.Android (Xamarin 統合インストーラーに同梱)
まとめ
Xamarin(ザマリン)API 100% 移植“ネイティブ” アプリC# / .NETコード共通化
“ネイティブ”アプリ
• C# + .NET ランタイム
• ネイティブ UI
• ネイティブ “パフォーマンス”
iOSAPI
100% 対応
AndroidAPI
100% 対応
Xamarin を使用した開発
Xamarin.Forms - 画面の共通化
UI “コード”の共通化
ビルド時にネイティブUI にマップ
XAML で書ける!(ただし手動)
Phone
ご清聴ありがとうございます
ご質問がありましたら、田淵までお気軽にどうぞytabuchi@xlsoft.com080-7015-3586 / 03-5440-7875Twitter: @ytabuchiBlog: http://ytabuchi.hatenablog.com/
top related