76
モバイルアプリ クロス 開発ツール Xamarin 概要 エクセルソフト株式会社 Business Development Manager 田淵 義人 [email protected] 03-5440-7875 / 080-7015-3586

Xamarin 概要 2014年08月版

Embed Size (px)

DESCRIPTION

Xamarin の概要紹介資料です。Xamarin 3 も発表され暫くたちますのでどんどん使いやすくなる Xamarin の今の情報を纏めました。

Citation preview

Page 1: Xamarin 概要 2014年08月版

モバイルアプリ クロス開発ツール Xamarin 概要

エクセルソフト株式会社

Business Development Manager

田淵 義人

[email protected]

03-5440-7875 / 080-7015-3586

Page 2: Xamarin 概要 2014年08月版

会社概要 名称 エクセルソフト株式会社

設立 平成3年7月1日

所在地 東京都港区三田3-9-9

資本金 1000万円

事業内容 ソフトウェアの開発・販売事業

主要取引先 伊藤忠テクノソリューションズ, インテル, SCSK, HPCシステムズ, NTTコムウェア, NTTデータ, シネックスインフォテック, 新日鉄住金ソリューションズ, ソニー, ソフトバンクBB, ダイワボウ情報システム, 東芝, 日本アイ・ビー・エム, 日本SGI, 日本電気, 日本ヒューレット・パッカード, 日本ユニシス, ネットワールド, 野村総合研究所, パナソニック, 日立製作所, 富士通, マイクロソフト, 三菱電機 等

関連会社 XLsoft Corporation アメリカ カリフォルニア州

「開発ツールはエクセルソフトで」をモットーに。

販売/サポートだけでなく、運用もお客様と一緒に考えます。

大きい会社ではありませんが、レスポンスの速さと技術の高さが自慢です。

Page 3: Xamarin 概要 2014年08月版

はじめに

Page 4: Xamarin 概要 2014年08月版

モバイル デバイスのシェア

家庭の所有率はタブレット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

Page 5: Xamarin 概要 2014年08月版

「うちもモバイル対応を考えてるんだよね…」「この提案、iPad や Android タブレットで出来ないかな?」

Page 6: Xamarin 概要 2014年08月版

更に求められるモノ

Page 7: Xamarin 概要 2014年08月版

業務アプリ開発のトレンド

現在の業務アプリ開発の課題

短納期・多デバイス対応

http://www.atmarkit.co.jp/ait/articles/1404/21/news013.html

Page 8: Xamarin 概要 2014年08月版

業務アプリ開発のトレンド

業務アプリ開発で今後採用したい“次世代テクノロジ”

http://www.atmarkit.co.jp/ait/articles/1404/21/news013.html

Page 9: Xamarin 概要 2014年08月版

クロス開発しかない(社内の業務アプリ資産を生かせるとなお良し)

Page 10: Xamarin 概要 2014年08月版

今までのアプリ開発

Page 11: Xamarin 概要 2014年08月版

ハイブリッドアプリ

Page 12: Xamarin 概要 2014年08月版

今までのハイブリッド開発

共通化による最小限の機能

分厚いラッパー

リリースまでの日数

App Generation

Page 13: Xamarin 概要 2014年08月版

facebook HTML5

HTML5に賭けたことはFacebookの「最大の戦略ミス」だった

2012/9/11 Mark Zuckerberg

http://www.itmedia.co.jp/news/articles/1209/12/news032.html

Page 14: Xamarin 概要 2014年08月版

facebook native

http://www.itmedia.co.jp/news/articles/1209/12/news032.html

Page 15: Xamarin 概要 2014年08月版

PhoneGAP (Cordova)

Accelerometer

Camera

Compass

Contacts

File

Geolocation

Media

Network

Notification

Storage

http://phonegap.com/about/feature/

Page 16: Xamarin 概要 2014年08月版

Xamarin を使用した開発

Page 17: Xamarin 概要 2014年08月版

Xamarin(ザマリン)iOS/Android の“ネイティブ” アプリをC# でコード共有しつつ開発できるツール

Page 18: Xamarin 概要 2014年08月版

Xamarin

Page 19: Xamarin 概要 2014年08月版

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

Page 20: Xamarin 概要 2014年08月版

Windows API

Page 21: Xamarin 概要 2014年08月版

iOSAPI

100% 対応

Page 22: Xamarin 概要 2014年08月版

AndroidAPI

100% 対応

Page 23: Xamarin 概要 2014年08月版

「Windows アプリの資産をiOS/Android に使いまわすことはできないのかな…?」

Page 24: Xamarin 概要 2014年08月版

.NET BCL • System.IO• ファイル操作の共通化

• System.NET• ネットワーク操作の共通化

• System.Linq• データ操作の簡素化、共通化

• System.XML• XML 操作の簡素化、共通化

• System.Threading• 上記全般もですが、非同期処理の恩恵

Page 25: Xamarin 概要 2014年08月版

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;

Page 26: Xamarin 概要 2014年08月版

ビジネスロジックの共通化

Page 27: Xamarin 概要 2014年08月版

“ネイティブ”アプリ

• C# + .NET ランタイム

• ネイティブ UI

• ネイティブ “パフォーマンス”

Page 28: Xamarin 概要 2014年08月版

できること

Page 29: Xamarin 概要 2014年08月版

iOS アプリを開発

•開発、ビルド、デバッグ• Windows (Visual Studio) と Mac (ビルド) の

Mac 側に実機かシミュレーターを接続しリモートビルド• Mac (Xamarin Studio) に実機かシミュレーターを接続

•画面構築• iOS Designer• C# で動的に生成

• コード• C# で iOS API を叩く

• iOS ネイティブの資産を活用• Objective-C バインディング / C ライブラリを

P/Invoke

Page 30: Xamarin 概要 2014年08月版
Page 31: Xamarin 概要 2014年08月版

画面遷移iOS

Page 32: Xamarin 概要 2014年08月版

Android アプリを開発

•開発、ビルド、デバッグ• Windows (Visual Studio / Xamarin Studio) に実機か Emulator を接続

• Mac (Xamarin Studio) に実機か Emulator を接続

•画面構築• UI Designer / XML

• C# で動的生成

• コード• C# で Android API を叩く

• Asposeネイティブの資産を活用• Java バインディング / JNI / P/Invoke

Page 33: Xamarin 概要 2014年08月版
Page 34: Xamarin 概要 2014年08月版

画面遷移Android

Page 35: Xamarin 概要 2014年08月版

ビジネスロジックの共通化

Page 36: Xamarin 概要 2014年08月版

ビジネスロジックの共通化

• どこを共通化できるか?

• OS 毎に開発• UI を定義する部分

• OS 固有の機能を実装する部分

•共通化• ロジック (データベースへのアクセス、通信処理など) 部分

• 定義した UI に対してデータのやり取りをする部分

http://jp.xlsoft.com/demo2/xamarin/TaskyPortable_ja.zip | http://jp.xlsoft.com/demo2/xamarin/TaskyPro_ja_2012.zip

Page 37: Xamarin 概要 2014年08月版

ビジネスロジックの共通化

• Universal App (SharedProject)

• PCL (Portable Class Library)• Profile に注意

• リンク参照

• MvvmCross などのフレームワーク

Page 38: Xamarin 概要 2014年08月版

DEMO

Page 39: Xamarin 概要 2014年08月版

更に効率良く

Page 40: Xamarin 概要 2014年08月版

NuGet / Component Store

•共通化部分は HTTP Client, Json.NET, MvvmCross などのライブラリを NuGet から取得して効率よく開発

Page 41: Xamarin 概要 2014年08月版

DEMO

Page 42: Xamarin 概要 2014年08月版

Xamarin 3

Page 43: Xamarin 概要 2014年08月版

Xamarin.Forms - 画面の共通化

UI “コード”の共通化

ビルド時にネイティブUI にマップ

XAML で書ける!(ただし手動)

Phone

Page 44: Xamarin 概要 2014年08月版

Pages

Content MasterDetail Navigation Tabbed Carousel

Page 45: Xamarin 概要 2014年08月版

Layouts

Stack Absolute Relative Grid ContentView ScrollView Frame

Page 46: Xamarin 概要 2014年08月版

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

Page 47: Xamarin 概要 2014年08月版

DEMO

Page 48: Xamarin 概要 2014年08月版

出来ることリンク

Page 49: Xamarin 概要 2014年08月版

サンプル・ブログなど

• 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

Page 50: Xamarin 概要 2014年08月版

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

Page 51: Xamarin 概要 2014年08月版

出来ないこと

Page 52: Xamarin 概要 2014年08月版

Write Once, Run Anywhere

Page 53: Xamarin 概要 2014年08月版

iOS/Android の開発知識は必要iOS アプリ開発には Mac 必須

Page 54: Xamarin 概要 2014年08月版

事例

Page 55: Xamarin 概要 2014年08月版

ルナルナ 体温ノート

株式会社エムティーアイ 様

http://www.xlsoft.com/jp/products/xamarin/apps_mti.html

Page 56: Xamarin 概要 2014年08月版

Home Network SDK

ソニーデジタルネットワークアプリケーションズ株式会社

http://www.xlsoft.com/jp/products/xamarin/apps_sdna.html

Page 57: Xamarin 概要 2014年08月版

NHK 紅白

フェンリル株式会社

http://biz.fenrir-inc.com/application_development/casestudy_app/nhk_kouhaku.html

Page 58: Xamarin 概要 2014年08月版

Rdio: 50,000 行のコードを共有

Page 59: Xamarin 概要 2014年08月版

pCloud

オンラインストレージアプリ

自動アップロード、オフラインファイルなど

Android

iPhone

http://xamarin.com/apps/app/pcloud | http://ytabuchi.hatenablog.com/entry/2014/03/20/142755

Page 60: Xamarin 概要 2014年08月版

Kick The Ball

3Dゲーム

iPhone, iPad, Android アプリ

iPhone

Android

http://j.mp/QC8P2o | http://ytabuchi.hatenablog.com/entry/2014/04/07/185112

Page 61: Xamarin 概要 2014年08月版

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/

Page 62: Xamarin 概要 2014年08月版

必要なシステム

Page 63: Xamarin 概要 2014年08月版

開発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 統合インストーラーに同梱)

Page 64: Xamarin 概要 2014年08月版

リリースタイミング

• 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 は対応済み

Page 65: Xamarin 概要 2014年08月版

価格・評価版

Page 66: Xamarin 概要 2014年08月版

ライセンス体系、価格、サポート

• Xamarin.iOS Business SubscriptionXamarin.Android Business Subscription• 1 開発者の永続ライセンス。

• 弊社から 1年間 日本語でのサポート、1年間のバージョンアップ

• 1開発者、1プラットフォーム毎、1年毎に¥127,800 です。• ボリュームディスカウントがあります。

Page 67: Xamarin 概要 2014年08月版

評価版

http://j.mp/xamarin-dl

Page 68: Xamarin 概要 2014年08月版

まとめ

Page 69: Xamarin 概要 2014年08月版

Xamarin(ザマリン)iOS/Android の“ネイティブ” アプリをC# でコード共有しつつ開発できるツール

Page 70: Xamarin 概要 2014年08月版

iOSAPI

100% 対応

Page 71: Xamarin 概要 2014年08月版

AndroidAPI

100% 対応

Page 72: Xamarin 概要 2014年08月版

Xamarin を使用した開発

Page 73: Xamarin 概要 2014年08月版
Page 74: Xamarin 概要 2014年08月版
Page 75: Xamarin 概要 2014年08月版

Xamarin.Forms - 画面の共通化

UI “コード”の共通化

ビルド時にネイティブUI にマップ

XAML で書ける!(フル手動)

Phone

Page 76: Xamarin 概要 2014年08月版

ご清聴ありがとうございます

ご質問がありましたら、田淵までお気軽にどうぞ[email protected] / 03-5440-7875Twitter: @ytabuchiBlog: http://ytabuchi.hatenablog.com/