Upload
yoshito-tabuchi
View
2.858
Download
2
Embed Size (px)
DESCRIPTION
Xamarin の概要紹介資料です。Xamarin 3 も発表され暫くたちますのでどんどん使いやすくなる Xamarin の今の情報を纏めました。
Citation preview
モバイルアプリ クロス開発ツール Xamarin 概要
エクセルソフト株式会社
Business Development Manager
田淵 義人
03-5440-7875 / 080-7015-3586
会社概要 名称 エクセルソフト株式会社
設立 平成3年7月1日
所在地 東京都港区三田3-9-9
資本金 1000万円
事業内容 ソフトウェアの開発・販売事業
主要取引先 伊藤忠テクノソリューションズ, インテル, SCSK, HPCシステムズ, NTTコムウェア, NTTデータ, シネックスインフォテック, 新日鉄住金ソリューションズ, ソニー, ソフトバンクBB, ダイワボウ情報システム, 東芝, 日本アイ・ビー・エム, 日本SGI, 日本電気, 日本ヒューレット・パッカード, 日本ユニシス, ネットワールド, 野村総合研究所, パナソニック, 日立製作所, 富士通, マイクロソフト, 三菱電機 等
関連会社 XLsoft Corporation アメリカ カリフォルニア州
「開発ツールはエクセルソフトで」をモットーに。
販売/サポートだけでなく、運用もお客様と一緒に考えます。
大きい会社ではありませんが、レスポンスの速さと技術の高さが自慢です。
はじめに
モバイル デバイスのシェア
家庭の所有率はタブレット20%、スマートフォン50% - IDCJapan (2013/10)
2012年度の法人向けタブレット出荷は79万台。2015年度には2.2倍に - ICT総研 (2013/8)
http://j.mp/1jDKQMx | http://j.mp/1flA8Dp | http://j.mp/1cBUTdc
「うちもモバイル対応を考えてるんだよね…」「この提案、iPad や Android タブレットで出来ないかな?」
更に求められるモノ
業務アプリ開発のトレンド
現在の業務アプリ開発の課題
短納期・多デバイス対応
http://www.atmarkit.co.jp/ait/articles/1404/21/news013.html
業務アプリ開発のトレンド
業務アプリ開発で今後採用したい“次世代テクノロジ”
http://www.atmarkit.co.jp/ait/articles/1404/21/news013.html
クロス開発しかない(社内の業務アプリ資産を生かせるとなお良し)
今までのアプリ開発
ハイブリッドアプリ
今までのハイブリッド開発
共通化による最小限の機能
分厚いラッパー
リリースまでの日数
App Generation
facebook HTML5
HTML5に賭けたことはFacebookの「最大の戦略ミス」だった
2012/9/11 Mark Zuckerberg
http://www.itmedia.co.jp/news/articles/1209/12/news032.html
facebook native
http://www.itmedia.co.jp/news/articles/1209/12/news032.html
PhoneGAP (Cordova)
Accelerometer
Camera
Compass
Contacts
File
Geolocation
Media
Network
Notification
Storage
http://phonegap.com/about/feature/
Xamarin を使用した開発
Xamarin(ザマリン)iOS/Android の“ネイティブ” アプリをC# でコード共有しつつ開発できるツール
Xamarin
Mono Miguel de Icaza (ミゲル・デ・イカザ 1972年 - ) : GNOME、Mono の開発者
1999年 ミゲル氏、Helix Code 設立
2001年6月 Helix Code を Ximian(ジミアン) に社名変更し、Mono プロジェクト開始
2001年7月 Mono OSS 化
2003年8月 Novell が Ximian を買収。ミゲル氏は Novell 開発部門のバイスプレジデントに就任
2004年6月 Mono 1.0 リリース
2011年4月 Attachmate の Novell 買収に伴い、Mono 開発者のレイオフ実施
2011年5月 Xamarin 設立
2011年7月 Novell から Xamarin に Mono, MonoTouch, Mono for Android などが譲渡される
2013年2月 Xamarin 2.0 リリース
2014年5月 Xamarin 3.0 リリース
ミゲル・デ・イカザ (Wiki) > http://j.mp/1p8kRjF | Mono (Wiki) > http://j.mp/1vxsP5L
Windows API
iOSAPI
100% 対応
AndroidAPI
100% 対応
「Windows アプリの資産をiOS/Android に使いまわすことはできないのかな…?」
.NET BCL • System.IO• ファイル操作の共通化
• System.NET• ネットワーク操作の共通化
• System.Linq• データ操作の簡素化、共通化
• System.XML• XML 操作の簡素化、共通化
• System.Threading• 上記全般もですが、非同期処理の恩恵
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;
ビジネスロジックの共通化
“ネイティブ”アプリ
• C# + .NET ランタイム
• ネイティブ UI
• ネイティブ “パフォーマンス”
できること
iOS アプリを開発
•開発、ビルド、デバッグ• Windows (Visual Studio) と Mac (ビルド) の
Mac 側に実機かシミュレーターを接続しリモートビルド• Mac (Xamarin Studio) に実機かシミュレーターを接続
•画面構築• iOS Designer• C# で動的に生成
• コード• C# で iOS API を叩く
• iOS ネイティブの資産を活用• Objective-C バインディング / C ライブラリを
P/Invoke
画面遷移iOS
Android アプリを開発
•開発、ビルド、デバッグ• Windows (Visual Studio / Xamarin Studio) に実機か Emulator を接続
• Mac (Xamarin Studio) に実機か Emulator を接続
•画面構築• UI Designer / XML
• C# で動的生成
• コード• C# で Android API を叩く
• Asposeネイティブの資産を活用• Java バインディング / JNI / P/Invoke
画面遷移Android
ビジネスロジックの共通化
ビジネスロジックの共通化
• どこを共通化できるか?
• OS 毎に開発• UI を定義する部分
• OS 固有の機能を実装する部分
•共通化• ロジック (データベースへのアクセス、通信処理など) 部分
• 定義した UI に対してデータのやり取りをする部分
http://jp.xlsoft.com/demo2/xamarin/TaskyPortable_ja.zip | http://jp.xlsoft.com/demo2/xamarin/TaskyPro_ja_2012.zip
ビジネスロジックの共通化
• Universal App (SharedProject)
• PCL (Portable Class Library)• Profile に注意
• リンク参照
• MvvmCross などのフレームワーク
DEMO
更に効率良く
NuGet / Component Store
•共通化部分は HTTP Client, Json.NET, MvvmCross などのライブラリを NuGet から取得して効率よく開発
DEMO
Xamarin 3
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
DEMO
出来ることリンク
サンプル・ブログなど
• 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 について
• 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.Form
s
• 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
出来ないこと
Write Once, Run Anywhere
iOS/Android の開発知識は必要iOS アプリ開発には Mac 必須
事例
ルナルナ 体温ノート
株式会社エムティーアイ 様
http://www.xlsoft.com/jp/products/xamarin/apps_mti.html
Home Network SDK
ソニーデジタルネットワークアプリケーションズ株式会社
http://www.xlsoft.com/jp/products/xamarin/apps_sdna.html
NHK 紅白
フェンリル株式会社
http://biz.fenrir-inc.com/application_development/casestudy_app/nhk_kouhaku.html
Rdio: 50,000 行のコードを共有
pCloud
オンラインストレージアプリ
自動アップロード、オフラインファイルなど
Android
iPhone
http://xamarin.com/apps/app/pcloud | http://ytabuchi.hatenablog.com/entry/2014/03/20/142755
Kick The Ball
3Dゲーム
iPhone, iPad, Android アプリ
iPhone
Android
http://j.mp/QC8P2o | http://ytabuchi.hatenablog.com/entry/2014/04/07/185112
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/
必要なシステム
開発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.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 が必要
• Xamarin.Android• 1ヶ月~3ヶ月程してリリース
• Android L, Android wear は対応済み
価格・評価版
ライセンス体系、価格、サポート
• Xamarin.iOS Business SubscriptionXamarin.Android Business Subscription• 1 開発者の永続ライセンス。
• 弊社から 1年間 日本語でのサポート、1年間のバージョンアップ
• 1開発者、1プラットフォーム毎、1年毎に¥127,800 です。• ボリュームディスカウントがあります。
評価版
http://j.mp/xamarin-dl
まとめ
Xamarin(ザマリン)iOS/Android の“ネイティブ” アプリをC# でコード共有しつつ開発できるツール
iOSAPI
100% 対応
AndroidAPI
100% 対応
Xamarin を使用した開発
Xamarin.Forms - 画面の共通化
UI “コード”の共通化
ビルド時にネイティブUI にマップ
XAML で書ける!(フル手動)
Phone
ご清聴ありがとうございます
ご質問がありましたら、田淵までお気軽にどうぞ[email protected] / 03-5440-7875Twitter: @ytabuchiBlog: http://ytabuchi.hatenablog.com/