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

Post on 28-May-2015

1.052 Views

Category:

Engineering

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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% - 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 にマップ

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

ご質問がありましたら、田淵までお気軽にどうぞytabuchi@xlsoft.com080-7015-3586 / 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/

top related