C# を使い倒す!クロス プラットフォーム...
-
Upload
yoshito-tabuchi -
Category
Engineering
-
view
1.044 -
download
3
description
Transcript of C# を使い倒す!クロス プラットフォーム...
C# を使い倒すiOS/Android 開発の新潮流
エクセルソフト株式会社
Business Development Manager
田淵 義人
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% - IDCJapan
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 == idselect 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
iOSAPI
100% 対応
AndroidAPI
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.Forms
UI “コード”の共通化
ビルド時にネイティブUI にマップ
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
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
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 Business SubscriptionXamarin.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.Forms
UI “コード”の共通化
ビルド時にネイティブUI にマップ
ご清聴ありがとうございます
ご質問がありましたら、田淵までお気軽にどうぞ[email protected] / 03-5440-7875Twitter: @ytabuchiBlog: 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/