Mais conteúdo relacionado
Semelhante a Xamarin 概要 @ 2014/10/18 わんくま同盟 東京勉強会 #92 (20)
Mais de Yoshito Tabuchi (20)
Xamarin 概要 @ 2014/10/18 わんくま同盟 東京勉強会 #92
- 1. Xamarin 概要
2014/10/18
わんくま同盟東京勉強会
#92 Xamarin Day
エクセルソフト株式会社
Business Development Manager
田淵義人
ytabuchi@xlsoft.com
03-5440-7875 / 080-7015-3586
- 2. 自己紹介• 田淵義人
• エクセルソフトのXamarin 担当。非開発者。
• Xamarin でググれ
• Twitter, SNS, Web, HTML5/CSS/JS, モバ
イル/ガジェット, Web マーケティングなどが好き
• Twitter: @ytabuchi
• Blog: http://ytabuchi.hatenablog.com/
- 3. 自己紹介• 田淵義人
• エクセルソフトのXamarin 担当。開発者になりたい。
• Xamarin でググれ(まだまだ実力不足w)
• Twitter, SNS, Web, HTML5/CSS/JS, モバ
イル/ガジェット, Web マーケティングなどが好き
• Twitter: @ytabuchi
• Blog: http://ytabuchi.hatenablog.com/
- 4. 本セッションのゴール
• Xamarin についてイメージを掴んでいただくこと
• 出来ること出来ないことをご理解いただくこと
• Xamarin に興味を持っていただくこと
お知らせ
• スライド下にソースへのリンクを張ってあります。
- 6. モバイルデバ
イスのシェア
家庭の所有率はタブレッ
ト20%、スマートフォン
50% - IDC Japan
(2013/10)
2012年度の法人向けタ
ブレット出荷は79万台。
2015年度には2.2倍に
- ICT総研(2013/8)
http://j.mp/1jDKQMx | http://j.mp/1flA8Dp | http://j.mp/1cBUTdc
- 10. 何を使えばい
いの?
• ネイティブ(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
- 12. 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/pla
tform_features/android_l/introduction_to_android
_l/
- 14. C# で開発• 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;
- 19. .NET BCL
(Mono)
• System.IO
• ファイル操作の共通化
• System.NET
• ネットワーク操作の共通化
• System.Linq
• データ操作の簡素化、共通化
• System.XML
• XML 操作の簡素化、共通化
• System.Threading
• 上記全般もですが、非同期処理の恩恵
- 21. 共有方法• PCL
• Visual Studio 2012 / Xamarin Studio 4.2 (w/
追加ライブラリ)
• PCL (Portable Class Library) - Xamarin 3 の新し
いコード共有テクニック: XLsoft エクセルソフト
• http://www.xlsoft.com/jp/products/xamarin/port
able_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/shar
ed_projects.html
• Xamarin.Forms
• 後述
- 23. Xamarin.For
ms - 画面の
共通化
UI “コード”の共通化
ビルド時にネイティブ
UI にマップ
XAML で書ける!
(ただし手動)
Phone
- 26. 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
- 27. Xamarin.For
ms では物足
りない?
• ExportRenderer を活用して機能追加
• http://www.slideshare.net/amay077/xama
rinforms が超参考になると思います。サンプルコード
付き!あめいさんありがとうございます。
• Mvvm 的なふるまい
• あめいさんの資料参照
- 29. コード共有方
法の違いが良
く分かる
Tasky
• PCL 版Tasky
• https://github.com/xamarin/mobile-samples/
tree/master/TaskyPortable
• Shared Project 版Tasky
• https://github.com/xamarin/mobile-samples/
tree/master/Tasky
• Xamarin.Forms 版Tasky
• https://github.com/xamarin/xamarin-forms-
samples/tree/master/Todo
- 31. Xamarin
Android
Player
• Xamarin 製のAndroid
Player
• x86 エミュレーター不要。
Genymotion 不要
• 画面サイズ、グイングイン
• OpenGL サポート
• GPS エミュレート
• バッテリー量可変
• 紹介記事
- 32. Sketches • iOS, Android, Mac でインスタントプログラミング
• “C#” でXamarin.Forms を作る人には良い
かも
• 紹介記事
- 33. Xamarin
Profiler
• Mono log profiler をGUI で見れるように
• 更にXamarin.iOS, Xamarin.Android,
Xamarin.Forms のプロファイリングを追加
• 紹介記事
- 37. FAQ 0 • C# T シャツかっこいい!
• http://xamarin.com/prebuilt/sharp-shirt か
らサンプルプロジェクトをダウンロードしてビルドしてくださ
い。船便でTシャツが届きます!
- 38. FAQ 1 • でも、お高いんでしょう?
• はいw
• 無料のSTARTER というのがあると聞きました
• http://xamarin.com/starter
• ただし・・・
• Mac が必須と聞いたんですが…
• iOS アプリをビルドするのにXcode が必要なんです。
• Visual Studio Express でも大丈夫?
• VS はPro 以上が必要です。
• Windows ストアアプリも対応してますか?
• Visual Studio があるじゃない(Mac では無理ゲー)
- 39. 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 でも使えます。
- 40. FAQ 3 • ソース一回書けばいいと思ってた
• ネイティブの知識も必要ですぜ… 旦那…?
• どれくらい共通化できるの?
• 30%~60% くらいかと思います。
• OS 毎に開発するのは?
• UI を定義する部分
• OS 固有の機能を実装する部分
• 共通化できるのは?
• ロジック(データベースへのアクセス、通信処理など) 部
分
• 定義したUI に対してデータのやり取りをする部分
• Xamarin.Forms を使用するとUI も共通化できま
す。
- 41. FAQ 4 • 共有化はどうやってやるの?
• Universal App (Shared
Project)
• PCL (Portable Class
Library)
• Profile に注意
• リンク参照
• MvvmCross などのフレーム
ワーク
- 42. FAQ 5 • テストはどうやるの?
• 単体テストとしてNUnit, Unit Test Project を使え
ます。
• 受け入れテストとして、Xamarin Test Cloud (有償
で超お高いんでしょう…?案件) とCalabash を使え
ます。
• 多分シロッコとかも使えるのでは…?
• 新機能のXamarin Profiler やInsights など
を活用してみても良いかも…!
- 43. FAQ 6 • 日本語の資料ってあるの?
• ・・・
• 鋭意努力します! ><
• 英語ドキュメントはXamarin が山のように用意してい
ますので、ぜひご覧ください。
• サンプルが欲しいんですが?
• Xamarin が山のように(ry なお、Apache 2.0 ラ
イセンスなのでそのまま使っても大丈夫!
• 書籍が欲しいんですが?
• http://www.amazon.co.jp/exec/obidos/AS
IN/4822298345/
- 46. NHK 紅白
フェンリル株式会社
http://biz.fenrir-inc.com/application_development/casestudy_app/nhk_kouhaku.html
- 48. Home
Network
SDK
ソニーデジタルネット
ワークアプリケーショ
ンズ株式会社
http://www.xlsoft.com/jp/products/xamarin/apps_sdna.html
- 51. pCloud
オンラインストレージ
アプリ
自動アップロード、オ
フラインファイルなど
Android
iPhone
http://xamarin.com/apps/app/pcloud | http://ytabuchi.hatenablog.com/entry/2014/03/20/142755
- 52. Kick The
Ball
3Dゲーム
iPhone, iPad,
Android アプリ
iPhone
Android
http://j.mp/QC8P2o | http://ytabuchi.hatenablog.com/entry/2014/04/07/185112
- 53. Hitcents -
Draw a
Stickman
EPIC
MonoGame を利用
• XNA 4 のOSS 実
装
95%コードを共通化
iPhone, iPad,
Android, Windows
ストアアプリ
http://blog.xamarin.com/draw-a-stickman-epic-now-available-for-iphone-ipad-and-windows-8-2/
- 55. デモで使用し
たサンプル
• iOS
• SingleWordKeyboard
• http://developer.xamarin.com/samples/SingleWor
dKeyboard/
• 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/UniversalXM
LReading.zip
• Sketches
• Slappy Salmon
• https://github.com/xamarin/sketches
- 56. サンプル・ブロ
グなど
• 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
- 57. Xamarin.For
ms について
• 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 - SIN@SAPPOROWORKSの覚書
• http://furuya02.hatenablog.com/category/Xamarin.Forms
• 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
- 58. 開発OS 対象OS IDE 必要なシステム
Windows
iOS
Visual 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 統合インストーラーに同梱)
- 65. Xamarin.For
ms - 画面の
共通化
UI “コード”の共通化
ビルド時にネイティブ
UI にマップ
XAML で書ける!
(ただし手動)
Phone