82
Xamarin 概要 2014/12/12 モバイルカフェスペシャル C#で作るiOS/Android のクロスプラットフォーム スマホアプリ開発」 エクセルソフト株式会社 Business Development Manager 田淵 義人 [email protected] 03-5440-7875 / 080-7015-3586

Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

Embed Size (px)

Citation preview

Page 1: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

Xamarin 概要2014/12/12モバイルカフェスペシャル「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

エクセルソフト株式会社

Business Development Manager

田淵義人

[email protected]

03-5440-7875 / 080-7015-3586

Page 2: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

JXUGのご紹介

• Japan Xamarin User Group (JXUG)

•サイト• http://jxug.org

•コミュニティ概要• JXUG は 2014/2/18 に発足した Xamarin を愛する方のコミュニティです。お気軽にご参加ください。

•活動場所• http://www.facebook.com/groups/xm.jxug

• Twitter タグ• #JXUG

Page 3: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

本セッションのゴール

お知らせ

• Xamarin についてイメージを掴んでいただくこと• 特にネイティブとの違いについて

• 出来ること出来ないことをご理解いただくこと

• Xamarin に興味を持っていただくこと

• 今日のスライドは後で URL をお送りします。

• アンケートにご協力ください。

Page 4: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

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

設立 平成3年7月1日

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

資本金 1000万円

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

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

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

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

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

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

Page 5: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

自己紹介 •田淵義人• エクセルソフトの Xamarin 担当。非開発者。

• Xamarin でググるとブログが出てくるかも

• Twitter, SNS, Web, HTML5/CSS/JS, モバイル/ガジェット, Web マーケティングなどが好き

• Twitter: @ytabuchi

• facebook: ytabuchi.xlsoft

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

Page 6: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

はじめに・アンケート

Page 7: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

アンケート • Xamarin 知ってますか?

• Xamarin 触ってみた方は?

•開発環境は? (Windows / Mac)

•モバイル開発経験は?(ネイティブ / Hybrid)

•個人として?業務として?

Page 8: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

開発者が「今後、使いたい」と考えている開発技術http://www.buildinsider.net/hub/survey/201410-techtrend-ja

Page 9: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

開発者が「今後、使いたい」と考えている開発技術その他の回答:

Titanium Mobile 7.09%, Cocos-2dx 7.09%

Page 10: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

回答者層

Page 11: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

今までのアプリ開発

Page 12: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

モバイル向けクロスプラットフォーム開発環境“no silver bullet”

Page 13: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

何を使えばいいの?

•ネイティブ (Objective-C/Swift, Java)• Xcode, Android Studio/eclipse

• HTML5, CSS3, JS• Cordova (PhoneGAP, Monaca)

• Sencha Touch

• C++/Delphi• RAD Studio XE/Appmethod

• JS• Titanium

• ActionScript• Flash/AIR

Page 14: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

ハイブリッド開発

共通化による最小限の機能分厚いラッパーリリースまでの日数適切な UX かどうか?

App Generation

Page 15: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

Xamarin(ザマリン)・ C# / .NET / Visual Studio・ “ネイティブ” アプリ・ コード共通化・ API 100% 移植

Page 16: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

Xamarin(ザマリン)・ C# / .NET / Visual Studio ・ “ネイティブ” アプリ・ コード共通化・ API 100% 移植

Page 17: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

C# / .NET

Page 18: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

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 19: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」
Page 20: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」
Page 21: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

Q. C# 覚えるのしんどいA. あなたはあの Objective-C を覚えたのでしょう?

http://qiita.com/amay077/items/2e86b44e5f274a34b2e9 より引用

Page 22: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

しかもそんなに変わらず少ない量で書きやすく。

Page 23: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

iOS ネイティブ (Objective-C)

- (IBAction)button:(id)sender {

UIAlertView *alertView = [[UIAlertView alloc]

initWithTitle:@"title"

message:@"messege"

delegate:nil

cancelButtonTitle:nil

otherButtonTitles:@"OK",

nil];

[alertView show];

}

Page 24: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

Xamarin.iOS

button.TouchUpInside += (sender, e) => {

var alertView = new UIAlertView(

"title”, "message", null, "OK", null);

alertView.Show();

};

Page 25: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

Android ネイティブ

import android.widget.Button;

import android.widget.Toast;

Button button = (Button) findViewById(id.button);

button.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Button button = (Button) v;

Toast.makeText(ButtonSampleActivity.this, "onClick()",

Toast.LENGTH_SHORT).show();

}

});

Page 26: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

Xamarin.Android

using Android.Widget;

var button = (Button)FindViewById(Resource.Id.MyButton);

button.Click += (sender, e) =>

{

Toast.MakeText(this, "onClick()",

ToastLength.Short).Show();

};

Page 27: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

“ネイティブ” アプリ

Page 28: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

“ネイティブ” アプリ

• .NET ランタイム

•ネイティブ UI / UX

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

Page 29: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

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 30: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

Windows API

Page 31: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

iOSAPI

100% 対応

Page 32: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

AndroidAPI

100% 対応

Page 33: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

Xamarin.Android

http://www.buildinsider.net/mobile/insidexamarin/07

Page 34: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

DEMO

Page 35: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

コード共通化

Page 36: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

.NET BCL (Mono)

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

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

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

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

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

Page 37: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

Xamarin を使用した開発

Page 38: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

共有方法 • PCL• Visual Studio 2012 / Xamarin Studio 4.2 (要追加ライブラリ)

• PCL (Portable Class Library) - Xamarin 3 の新しいコード共有テクニック : XLsoft エクセルソフト• http://www.xlsoft.com/jp/products/xamarin/port

able_class_libraries.html

• Shared Project• Visual Studio 2013 Update 2 / Xamarin Studio

5.0• Shared Project - Xamarin 3 の新しいコード共有テクニック : XLsoft エクセルソフト• http://www.xlsoft.com/jp/products/xamarin/shar

ed_projects.html

• Xamarin.Forms• 後述

Page 39: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

PCL

iOS Android

Windows RT

Page 40: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

Shared Project

プロジェクトをリンクする

#if platform

Page 41: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

Xamarin.Forms - 画面の共通化

UI “コード”の共通化

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

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

Phone

Page 42: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

Pages

Content MasterDetail Navigation Tabbed Carousel

Page 43: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

Layouts

Stack Absolute Relative Grid ContentView ScrollView Frame

Page 44: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

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 45: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

Xamarin.Forms を活用

• Dependency Service, Custom Renderer などを活用して機能拡張• http://www.slideshare.net/amay077/xamarinforms

• Mvvm 的なふるまい• あめいさんの資料参照

• 今後の Xamarin.Forms • ちょっと未来のXamarin.Formsを試す(1.3.0

Technology Preview) – Qiita

• http://qiita.com/P3PPP/items/b4db6fa93e6ccc55fc9a

• 実際に使う場合は?• Android - Xamarin.Forms をガチで使うときのプロジェクト構成案 – Qiita

• http://qiita.com/amay077/items/e66108afb0d1e1dc26c8

Page 46: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

API 100% 移植

Page 47: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

API • Xamarin.iOS• iOS 8.1 対応済み

• iOS SDK リリースと同日

• 次期 iOS SDK Beta と Xamarin.iOS Alpha/Betaで次期 iOS 対応アプリを開発可能

• Xamarin は iOS 8 に完全対応 - Xamarin で iOS 8 をさらに素晴らしく (紹介記事)

• Xamarin.Android• Android Lollipop, Android wear 対応済み

• 大体 1ヶ月~3ヶ月程して対応版リリース

• Android L Developer Preview / Android Wear をサポート (紹介記事)

Page 48: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

DEMO

Page 49: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

最新機能・その他サービスhttp://www.xlsoft.com/jp/products/xamarin/xamarin_platform_previews.htmlhttp://www.xlsoft.com/jp/products/xamarin/introducing_xamarin_insights.html

Page 50: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

Xamarin Android Player

• Virtual Box ベースの高速 Android エミュレーター• http://ytabuchi.hatenablog.com/entry/2014/12/

11/170945

Page 51: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

Sketches • iOS, Forms などの REPL 環境• http://qiita.com/ytabuchi/items/22b616d7558b

41b4726c

• https://www.youtube.com/watch?v=v9vEhwomUEY&t=19m0s

Alpha 版でのみ提供

Page 52: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

Xamarin Profiler

• .NET Analyzer。Instrument, LogCat で追いきれない .NET のログを取得、可視化

• http://xamarin.com/profiler

Page 53: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

Xamarin Insights

• Crash/Analytics データ収集サービス

• Preview リリース中

Page 54: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

Xamarin Test Cloud

• UI 自動テストサービス• ローカル版は Xamarin.UITest, Calabash

Page 55: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

FAQ

Page 56: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

FAQ 0 • C# Tシャツかっこいい!• http://xamarin.com/prebuilt/sharp-shirt からサンプルプロジェクトをダウンロードしてビルドしてください。船便で Tシャツが届きます!

Page 57: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

FAQ 1 • でも、お高いんでしょう?• はい。それなりのお値段です。

• 学生向けの無料ライセンスが発表になりました!

• STARTER が無料と聞きました。• http://xamarin.com/starter

• Visual Studio Community 2013 で無料でアプリが作れると聞きました。• VSC2013 と Xamarin Starter がタダで使えます。

• Mac は必須ですか?• iOS アプリのビルドに Xcode が必要です。

• Windows ストアアプリも対応してますか?• Visual Studio を使いましょう。

Page 58: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

開発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 59: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

FAQ 2 • ネイティブで作ったライブラリは使えるの?• Binding して Xamarin 用 dll にする。• ネイティブライブラリを組み込んで P/Invoke や JNI 経由

• iOS Framework を Android で、Android の jar を iOS では使えません。

• Xamarin で作ったライブラリはネイティブで使えるの?• 使えません。

• NuGet は使えるの?• 使えます。Xamarin 専用の ComponentStore もあります。

• WinForm や WPF 用のライブラリは使えるの?• 基本的には使えないと思います。• Prism (Pattern & Practice 製の Mvvm フレームワーク) は PCL 化されているので Xamarin でも使えます。

Page 60: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

FAQ 3 •ソース一回書けばいいと思ってた• ネイティブの知識が必要です。

•どれくらい共通化できるの?• 30%~70% くらいかと思います。

• OS 毎に開発するのは?• UI を定義する部分• OS 固有の機能を実装する部分

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

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

• Xamarin.Forms を使用するとベーシックなUI は共通化できます。

Page 61: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

FAQ 4 •共有化はどうやってやるの?• Universal App (Shared

Project)

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

• リンク参照

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

Page 62: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

FAQ 5 •日本語の資料ってあるの?• 弊社で鋭意翻訳中です。

• http://www.xlsoft.com/jp/products/xamarin/support.html

• 英語ドキュメントは Xamarin が山のように用意していますので、ぜひご覧ください。• http://developer.xamarin.com/guides/

• Xamarin Advent Calendar 2014• http://qiita.com/advent-calendar/2014/xamarin

•サンプルが欲しいんですが?• Xamarin が山のように (ry なお、Apache 2.0 ライセンスなのでそのまま使っても大丈夫!• http://developer.xamarin.com/samples-all/

• https://github.com/xamarin

Page 63: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

事例

Page 64: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

NHK 紅白

フェンリル株式会社

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

Page 65: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

ルナルナ 体温ノート

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

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

Page 66: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

戦国RUN

読売テレビ/シリコンスタジオ様

C# ゲームエンジン Paradox

Page 67: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

評価版

http://xamarin.com/download

Page 68: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

モバイル向けクロスプラットフォーム開発環境

“銀の弾丸はない”

Page 69: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

“金の弾丸はある”

Business 1年1名25万Indie 1年1名 $600

http://www.slideshare.net/kiris60/scala-benchmarks/28 より引用 (パクリ)

Page 70: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

参考資料

Page 71: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

デモで使用したサンプル

• iOS• SingleWordKeyboard

• http://developer.xamarin.com/samples/SingleWordKeyboard/

• Android• Lollipop 用サンプル一覧です。(使用したプロジェクトは Repo から消えてしまいました。)• https://github.com/xamarin/monodroid-

samples/tree/master/android_l

• XMLReading• Xamarin.Forms 版

• http://jp.xlsoft.com/demo2/xamarin/UniversalXMLReading.zip

• PCL 版• http://jp.xlsoft.com/demo2/xamarin/XMLReading.zip

Page 72: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

Tasky • PCL• https://github.com/xamarin/mobile-

samples/tree/master/TaskyPortable

• Shared Project• https://github.com/xamarin/mobile-

samples/tree/master/Tasky

• Xamarin.Forms• https://github.com/xamarin/xamarin-forms-

samples/tree/master/Todo

ToDo アプリを色々な形で。

Page 73: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

サンプル・ブログなど

• Xamarin.iOS サンプル• https://github.com/xamarin/monotouch-samples

• Xamarin.Android サンプル• https://github.com/xamarin/monodroid-samples

• facebook グループ• https://www.facebook.com/groups/xm.jxug/

• JXUG サイト リンクページ• http://jxug.org/links.html

• 田淵ブログ• http://ytabuchi.hatenablog.com/entry/toc

• Xamarin ブロググループ• http://j.mp/xm-htngrp

• Qiita Xamarin タグ• http://qiita.com/tags/xamarin

Page 74: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

Xamarin.Forms について

• Xamarin.Forms 概要• http://www.slideshare.net/amay077/xamarinforms

• 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.Forms

• 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 75: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

まとめ

Page 76: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

Xamarin(ザマリン)API 100% 移植“ネイティブ” アプリC# / .NETコード共通化

Page 77: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

“ネイティブ” アプリ

• C# + .NET ランタイム

•ネイティブ UI

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

Page 78: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

iOSAPI

100% 対応

Page 79: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

AndroidAPI

100% 対応

Page 80: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

Xamarin を使用した開発

Page 81: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

Xamarin.Forms - 画面の共通化

UI “コード”の共通化

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

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

Phone

Page 82: Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」

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

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