C# を使い倒す
iOS/Android 開発
の新潮流
エクセルソフト株式会社
Business Development Manager
田淵 義人
ytabuchi@xlsoft.com
03-5440-7875 / 080-7015-3586
会社概要 名称 エクセルソフト株式会社
設立 平成3年7月1日
所在地 東京都港区三田3-9-9
資本金 1000万円
事業内容 ソフトウェアの開発・販売事業
主要取引先 伊藤忠テクノソリューションズ, インテル, SCSK, HPCシステムズ, NTTコム
ウェア, NTTデータ, シネックスインフォテック, 新日鉄住金ソリューションズ,
ソニー, ソフトバンクBB, ダイワボウ情報システム, 東芝, 日本アイ・ビー・エ
ム, 日本SGI, 日本電気, 日本ヒューレット・パッカード, 日本ユニシス, ネッ
トワールド, 野村総合研究所, パナソニック, 日立製作所, 富士通, マイク
ロソフト, 三菱電機 等
関連会社 XLsoft Corporation アメリカ カリフォルニア州
「開発ツールはエクセルソフトで」をモットーに。
販売/サポートだけでなく、運用もお客様と一緒に考えます。
大きい会社ではありませんが、レスポンスの速さと技術の高さが自慢です。
自己紹介 • 田淵義人
• エクセルソフトで10年ほど。非開発者。
• RoboHelp, MadCap Flare, Alchemy
CATALYST などのヘルプ、ローカライズ関連製品、
Aspose などの .NET/Java 開発製品の担当
• Xamarin 頑張ってます。
• Twitter: ytabuchi
• facebook: ytabuchi.xlsoft
• Blog: http://ytabuchi.hatenablog.com/
はじめに
モバイル デバ
イスのシェア
家庭市場の所有率はタブ
レット 20.1%、スマート
フォン 49.8% - IDC
Japan
2012年度の法人向けタ
ブレット端末出荷は79万
台。2015年度には2.2
倍に。 - ICT総研
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
今までのアプ
リ開発
アンケート
iOS / Android のネイティブア
プリを Objective-C / Java で
開発されている方 \(^o^)/
やめましょう
今までのハイ
ブリッド開発
App Generation
今までのハイ
ブリッド開発
共通化による最小
限の機能
分厚いラッパー
リリースまでの日数
App Generation
HTML5に賭け
たことは
Facebookの
「最大の戦略ミ
ス」だった
2012/9/11
Mark
Zuckerberg
Facebook CEO
http://www.itmedia.co.jp/news/articles/1209/12/news032.html
HTML5に賭け
たことは
Facebookの
「最大の戦略ミ
ス」だった
2012/9/11
Mark
Zuckerberg
Facebook CEO
http://www.itmedia.co.jp/news/articles/1209/12/news032.html
Cordova
Accelerometer
Camera
Compass
Contacts
File
Geolocation
Media
Network
Notification
Storage
Xamarin を
使用した開発
Xamarin(ザマリン)
iOS/Android の
“ネイティブ” アプリを
C# だけで開発できるツール
“ネイティブ”
アプリ
• ネイティブ UI
• ネイティブ “パフォーマンス”
• AOT (事前コンパイル) / JIT コンパイルでネイ
ティブとして動作
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;
しくみ
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
iOS
API
100% 対応
Android
API
100% 対応
Xamarin は
iOS/Android の API を
100% 提供します。
iOS/Android で .NET を
サポートします。
DEMO
「Windows アプリの資産を
iOS/Android に使いまわす
ことはできないのかな…?」
できます。
シナリオ
iOS/Android の “ネイティブ”
アプリを Objective-C / Java
ではなく C# / Visual Studio
を使い、既存の資産を活用し
つつ開発する。
ビジネスロジッ
クの共通化
• OS 毎に開発
• UI を定義する部分
• OS 固有の機能を実装する部分
• 定義した UI に対してデータのやり取りをする部分
• 共通化
• ロジック (データベースへのアクセス、通信処理など) 部
分
• 定義した UI に対してデータのやり取りをする部分
• この部分に既存のコードを移植します!
http://jp.xlsoft.com/demo2/xamarin/TaskyPortable_ja.zip | http://jp.xlsoft.com/demo2/xamarin/TaskyPro_ja_2012.zip
ビジネスロジッ
クの共通化
• どのように共通化するのか?
• Universal App
• PCL (Portable Class
Library) を活用
• リンク参照
• フレームワークを使用
http://jp.xlsoft.com/demo2/xamarin/TaskyPortable_ja.zip | http://jp.xlsoft.com/demo2/xamarin/TaskyPro_ja_2012.zip
コンポーネント
ストア
NuGet
• 共通化部分はコンポーネントをコンポーネントスト
アや NuGet から取得して効率よく移植
DEMO
出来ないこと
Write Once,
Run Anywhere
Write Once,
Run Anywhere
出来ないこと • OS 固有の機能と UI はある程度の知識を持っ
て個別に開発する必要がある。
• また、Windows だけでは iOS アプリは開発でき
ない。
• Write Once, Run Anywhere ではない。
でした。
Xamarin 3
Xamarin 3 • Xamarin Designer for iOS
• Xamarin.Forms
• NuGet サポート拡張
• F# 正式サポート
Xamarin.For
ms
UI “コード”の共通
化
ビルド時にネイティブ
UI にマップ
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
DEMO
Microsoft & Xamarin &
XLsoft
Microsoft &
Xamarin &
XLsoft
• 2013/11/13 Microsoft と Xamarin がグ
ローバルパートナーシップを発表
• Build 2014 で .NET Foundation の設立を
発表。Xamarin も参画し、 .NET 周りの技術
や Xamarin.Mobile などが OSS に
• 日本マイクロソフト
• Microsoft Conference 2013 でのご紹介
• iOS / Android / Windows すべてに対応したアプリを作
るには [ MSC 2013 ]
• Developer Summit 2014 でのご紹介
• Xamarin と Visual Studio でまとめて作る iOS /
Android / Windows アプリ
• de:code 2014 でのご紹介
• iOS/Android アプリを C#/.NET で開発 - Xamarin で
実現するクロスプラットフォーム対応 –
http://j.mp/N1GX5S | http://j.mp/1gKLC6S | http://j.mp/1nFx8G9 | http://bit.ly/WgvZZS | http://j.mp/1nJ72Vw
事例
NHK 紅白
日本放送協会 様
フェンリル株式会社
様
http://biz.fenrir-inc.com/application_development/casestudy_app/nhk_kouhaku.html
ルナルナ 体温
ノート
株式会社エムティー
アイ 様
http://www.xlsoft.com/jp/products/xamarin/apps_mti.html
Rdio
50,000 行のコー
ドを共有
http://www.xlsoft.com/jp/products/xamarin/apps.html
pCloud
オンラインストレージ
アプリ
自動アップロード、
オフラインファイルな
ど
http://xamarin.com/apps/app/pcloud | http://ytabuchi.hatenablog.com/entry/2014/03/20/142755
Android
iPhone
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/
Kick The
Ball
3Dゲーム
iPhone, iPad,
Android アプリ
iPhone
Android
http://j.mp/QC8P2o | http://ytabuchi.hatenablog.com/entry/2014/04/07/185112
必要なシステム
開発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 統合インストーラーに同梱)
価格・評価版
ライセンス体
系、価格、サ
ポート
• Xamarin.iOS Business Subscription
Xamarin.Android Business Subscription
• 1 開発者の永続ライセンス。
• 弊社から 1年間 日本語でのサポート、1年間のバー
ジョンアップ
• 1開発者、1プラットフォーム毎、1年毎に
¥127,800 です。
• ボリュームディスカウントがあります。
評価版
http://j.mp/xamarin-dl
まとめ
Xamarin(ザマリン)
iOS/Android の
“ネイティブ” アプリを
C# だけで開発できるツール
iOS/Android の API を
100% 提供します。
iOS/Android で .NET を
サポートします。
Xamarin.For
ms
UI “コード”の共通
化
ビルド時にネイティブ
UI にマップ
ご清聴
ありがとうございます
ご質問がありましたら、田淵までお気軽にどうぞ
ytabuchi@xlsoft.com
080-7015-3586 / 03-5440-7875
Twitter: @ytabuchi
Blog: http://ytabuchi.hatenablog.com/
リンク
ブログ・記事 • 田淵ブログ
• http://ytabuchi.hatenablog.com/entry/toc
• Japan Xamarin User Group
• http://j.mp/xm-jxug
• Xamarin ブロググループ
• http://j.mp/xm-htngrp
• Qiita Xamarin タグ
• http://qiita.com/tags/xamarin
• BuildInsider Xamarin 記事
• http://www.buildinsider.net/mobile/xamarintip
s
• http://www.buildinsider.net/mobile/insidexam
arin/

C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション