c# を使い倒す!クロス プラットフォーム...

69
C# を使い倒す iOS/Android 開発 の新潮流 エクセルソフト株式会社 Business Development Manager 田淵 義人 [email protected] 03-5440-7875 / 080-7015-3586

Upload: yoshito-tabuchi

Post on 28-May-2015

1.052 views

Category:

Engineering


3 download

DESCRIPTION

2014/6/27(金) 日本マイクロソフト様で行われた インフラジスティックス・ジャパン様、日本マイクロソフト様との共同セミナー "C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流" の資料です。

TRANSCRIPT

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

C# を使い倒すiOS/Android 開発の新潮流

エクセルソフト株式会社

Business Development Manager

田淵 義人

[email protected]

03-5440-7875 / 080-7015-3586

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

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

設立 平成3年7月1日

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

資本金 1000万円

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

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

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

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

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

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

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

自己紹介 •田淵義人• エクセルソフトで10年ほど。非開発者。

• RoboHelp, MadCap Flare, Alchemy CATALYST などのヘルプ、ローカライズ関連製品、Aspose などの .NET/Java 開発製品の担当

• Xamarin 頑張ってます。

• Twitter: ytabuchi

• facebook: ytabuchi.xlsoft

• Blog: http://ytabuchi.hatenablog.com/

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

はじめに

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

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

家庭市場の所有率はタブレット 20.1%、スマートフォン 49.8% - IDCJapan

2012年度の法人向けタブレット端末出荷は79万台。2015年度には2.2倍に。 - ICT総研

http://j.mp/1jDKQMx / http://j.mp/1flA8Dp / http://j.mp/1cBUTdc

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

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

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

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

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

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

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

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

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

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

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

今までのアプリ開発

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

アンケート

iOS / Android のネイティブアプリを Objective-C / Java で開発されている方\(^o^)/

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

やめましょう

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

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

App Generation

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

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

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

分厚いラッパー

リリースまでの日数

App Generation

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

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

2012/9/11

Mark Zuckerberg

Facebook CEO

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

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

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

2012/9/11

Mark Zuckerberg

Facebook CEO

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

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

Cordova

Accelerometer

Camera

Compass

Contacts

File

Geolocation

Media

Network

Notification

Storage

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

Xamarin を使用した開発

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

Xamarin(ザマリン)iOS/Android の“ネイティブ” アプリをC# だけで開発できるツール

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

“ネイティブ”アプリ

• ネイティブ UI

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

• AOT (事前コンパイル) / JIT コンパイルでネイティブとして動作

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

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;

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

しくみ

Page 22: 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

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

Windows API

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

iOSAPI

100% 対応

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

AndroidAPI

100% 対応

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

Xamarin はiOS/Android の API を100% 提供します。iOS/Android で .NET をサポートします。

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

DEMO

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

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

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

できます。

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

シナリオ

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

iOS/Android の “ネイティブ”アプリを Objective-C / Javaではなく C# / Visual Studio を使い、既存の資産を活用しつつ開発する。

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

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

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

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

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

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

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

• この部分に既存のコードを移植します!

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

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

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

• どのように共通化するのか?• 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

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

コンポーネントストアNuGet

•共通化部分はコンポーネントをコンポーネントストアや NuGet から取得して効率よく移植

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

DEMO

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

出来ないこと

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

Write Once, Run Anywhere

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

Write Once, Run Anywhere

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

出来ないこと • OS 固有の機能と UI はある程度の知識を持って個別に開発する必要がある。

• また、Windows だけでは iOS アプリは開発できない。

• Write Once, Run Anywhere ではない。

でした。

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

Xamarin 3

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

Xamarin 3 • Xamarin Designer for iOS

• Xamarin.Forms

• NuGet サポート拡張

• F# 正式サポート

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

Xamarin.Forms

UI “コード”の共通化

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

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

Pages

Content MasterDetail Navigation Tabbed Carousel

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

Layouts

Stack Absolute Relative Grid ContentView ScrollView Frame

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

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

DEMO

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

Microsoft & Xamarin & XLsoft

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

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

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

事例

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

NHK 紅白

日本放送協会 様

フェンリル株式会社様

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

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

ルナルナ 体温ノート

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

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

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

Rdio

50,000 行のコードを共有

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

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

pCloud

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

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

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

Android

iPhone

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

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

Kick The Ball

3Dゲーム

iPhone, iPad, Android アプリ

iPhone

Android

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

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

必要なシステム

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

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

価格・評価版

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

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

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

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

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

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

評価版

http://j.mp/xamarin-dl

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

まとめ

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

Xamarin(ザマリン)iOS/Android の“ネイティブ” アプリをC# だけで開発できるツール

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

iOS/Android の API を100% 提供します。iOS/Android で .NET をサポートします。

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

Xamarin.Forms

UI “コード”の共通化

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

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

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

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

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

リンク

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

ブログ・記事 • 田淵ブログ• 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/