狠狠撸

狠狠撸Share a Scribd company logo
Xamarinで作るiPhoneと
Windowsストアアプリの
共通コンポーネント
増田 智明(@moonmile)
.NET ラボ Micorosft MVP C#
Moonmile Solutions
自己紹介&宣伝
? 増田 智明 masuda@moonmile.net
? 執筆業
? 逆引き大全 Visual C# 2013、Visual Basic 2013
? 逆引き大全 iPhone/iPad アプリ開発
? 作って覚える iPhone/iPad アプリ入門
? ひと目でわかる Visual Studio 2012 アプリケーション開発
? プログラマ
? CakePHP+WPFで予約システム
? Fortran+VC++で構造解析
Xamarinとは?
? C#でクロスプラットフォーム開発
? Xamarin Studio
? Xamarin.iOS
? Xamarin.Android
? 前身が mono
? MonoDevelop
? ASP.NETをLinuxで動かすなど
? 去年の11月頃にMicrosoft社と提携
? インサイドXamarin – Build Insider by 榎本 温 氏
http://www.buildinsider.net/mobile/insidexamarin
PCL(Potralb Class Library)とは?
? Windowsフォーム、Windows ストアアプリ、Sliverlight、
Windows Phoneで利用できる共通ライブラリ
? プラットフォーム間の共通アセンブリを使うことで、
同じコード/アセンブリを使える。
? ライブラリとして使いまわしが可能
? C#, Visual Basic, F#で作成可能
? C:Program Files (x86)Reference Assemblies
MicrosoftFramework
.NETPortablev4.5ProfileProfile78
PCLのアセンブリ
? C:Program Files (x86)Reference
AssembliesMicrosoftFramework.NETPortable を
直接見ればOK
? 無いもの
? System.Data … DataTable, DataRow
? System.Windows.Forms
? WindowsBase.dll … Point (WPF)
? System.Drawing ... Rectangle, Point (WinForm)
? System.Web
? System.Xaml
? etc.etc.
Xamarin+PCLの組み合わせ
? Xamarinでは、iOS/AndroidアプリをC#で書ける。
? Xamarinでは、.NETライブラリを読み込める。
? Visual Studio/Xamarinで、C#のPCLを作る。
? Visual Studioで、Windowsストアアプリを作る。
? Visual StudioとXamarinの組み合わせで、
Windowsストア/iOSアプリ/Androidアプリで共通のライブラリを使える。
Windows
ストアアプリ
iOS
アプリ
Andorid
アプリ
Potable
Class Library
PCLの使いどころ
? サーバーとの通信ロジック(Azure Mobile Serviceなど)
? ローカルストレージの保存ロジック(SQLite、ローカルファイル)
? 業務ロジック
? ゲームロジック
? Viewとは切り離されたデータモデル
? MVC、MVVMパターンの活用
View
プラット
フォーム単位
DataModel
Business
Logic
Ex. パズルアプリの構造
iOS用
View
storyboard
Android用
View
*.axml
WinStore用
View
XAML
PCL
共通ロジック
パズル判定 C#
iOS用
個別処理
C#
Android用
個別処理
C#
WinStore用
個別処理
C#
Azure Mobile
Service
サービス処理
点数登録/パズルDL
フロントエンド
サービス処理
バックエンド
点数処理
iOSでPCLを使う
? Visual Studioで参照設定
? Xamarin.iOS Build Hostの設定
? ソリューションプラットフォームを
「iPhoneSimulator」に設定
? ブレークポイント、デバッグ表示を
Visual Studioで制御
WindowsストアアプリでPCLを使う
? Visual Studioで参照設定
? Windowsシミュレーターで実行
? WPFアプリで動作確認
? TMPuzzle.Core.Testプロジェクトでテスト
AndroidでPCLを使う
? Visual Studioで参照設定
? Target Android Device を指定
? 実機へは adb を使う
? Androidエミュレータは、起動が遅いので、
あらかじめ立ち上げておくとよい。
? ブレークポイント、デバッグ表示を
Visual Studioで制御
PCLの苦手な部分
? プラットフォーム依存が多い箇所
? インターフェースを使えばできないことはないが、構造が複雑化
? 外部ライブラリの依存が多い
? メインプロジェクトにアセンブリを入れる必要がある。
? Azure Mobile ServiceをNuGetで入れる。将来的には?
その他の共通化の方法
? プラットフォーム毎に#ifでビルドして用意する
? Mono.Csharp.dll、SQLite.NET
? プラットフォーム毎のライブラリを利用
? OpenCV(内部でCライブラリの呼び出し)
? ソースコードで共有
? C#コードをリンクで共有
参考リンク
? Xamarin - Build mobile apps for iOS, Android, Mac and Windows
http://xamarin.com/
? インサイド Xamarin Build Insider http://www.buildinsider.net/mobile/insidexamarin
? Introduction to Mobile Development | Xamarin
http://docs.xamarin.com/guides/cross-
platform/getting_started/introduction_to_mobile_development/
? Windows Azure Mobile Services | Xamarin
http://docs.xamarin.com/guides/cross-platform/azure/mobile-services/
? praeclarum/sqlite-net
https://github.com/praeclarum/sqlite-net
? New open source Portable Class Library for SQLite | MS OpenTech
https://msopentech.com/blog/2014/02/03/new-open-source-portable-class-library-sqlite/
? ポータブルクラスライブラリ(Portable Class Library)を使った開発 - Akira Onishi's weblog -
Site Home - MSDN Blogs
http://blogs.msdn.com/b/aonishi/archive/2012/06/28/10324945.aspx

More Related Content

What's hot (20)

Xamarin の概要と活用事例
Xamarin の概要と活用事例Xamarin の概要と活用事例
Xamarin の概要と活用事例
Yoshito Tabuchi
?
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
Yoshito Tabuchi
?
私と齿补尘补谤颈苍と。
私と齿补尘补谤颈苍と。私と齿补尘补谤颈苍と。
私と齿补尘补谤颈苍と。
Takkiiii
?
DEV-023_Xamarin Deep Dive - Xamarin.Forms の可能性
DEV-023_Xamarin Deep Dive - Xamarin.Forms の可能性DEV-023_Xamarin Deep Dive - Xamarin.Forms の可能性
DEV-023_Xamarin Deep Dive - Xamarin.Forms の可能性
decode2016
?
Xamarin + Visual Studio によるマルチプラットフォーム対応アプリ開発 - iOS, Android, Windows に対応しよう
Xamarin + Visual Studio によるマルチプラットフォーム対応アプリ開発 - iOS, Android, Windows に対応しようXamarin + Visual Studio によるマルチプラットフォーム対応アプリ開発 - iOS, Android, Windows に対応しよう
Xamarin + Visual Studio によるマルチプラットフォーム対応アプリ開発 - iOS, Android, Windows に対応しよう
Akira Onishi
?
Xamarin Overview
Xamarin Overview Xamarin Overview
Xamarin Overview
Madoka Chiyoda
?
Friendly
FriendlyFriendly
Friendly
Takaaki Suzuki
?
齿补尘补谤颈苍をこれから始める皆様へ
齿补尘补谤颈苍をこれから始める皆様へ齿补尘补谤颈苍をこれから始める皆様へ
齿补尘补谤颈苍をこれから始める皆様へ
Yoshito Tabuchi
?
Realm Mobile Platform 概要
Realm Mobile Platform 概要Realm Mobile Platform 概要
Realm Mobile Platform 概要
Yoshito Tabuchi
?
NET Standard と Xamarin
NET Standard と XamarinNET Standard と Xamarin
NET Standard と Xamarin
Yoshito Tabuchi
?
叠辞虫痴颈别飞の美味しい食べ方
叠辞虫痴颈别飞の美味しい食べ方叠辞虫痴颈别飞の美味しい食べ方
叠辞虫痴颈别飞の美味しい食べ方
Shinichi Hirauchi
?
Visual Studio + xamarin で始めるモバイル アプリ開発
Visual Studio + xamarin で始めるモバイル アプリ開発Visual Studio + xamarin で始めるモバイル アプリ開発
Visual Studio + xamarin で始めるモバイル アプリ開発
インフラジスティックス?ジャパン株式会社
?
齿补尘补谤颈苍概要と活用方法
齿补尘补谤颈苍概要と活用方法齿补尘补谤颈苍概要と活用方法
齿补尘补谤颈苍概要と活用方法
Yoshito Tabuchi
?
Universal Appとは? -デバイスに依存しないアプリケーション開発-
Universal Appとは? -デバイスに依存しないアプリケーション開発-Universal Appとは? -デバイスに依存しないアプリケーション開発-
Universal Appとは? -デバイスに依存しないアプリケーション開発-
Takaaki Suzuki
?
クロスプラットフォーム モバイルアプリ開発ツール Xamarin 概要
クロスプラットフォーム モバイルアプリ開発ツール Xamarin 概要クロスプラットフォーム モバイルアプリ開発ツール Xamarin 概要
クロスプラットフォーム モバイルアプリ開発ツール Xamarin 概要
Yoshito Tabuchi
?
齿补尘补谤颈苍概要
齿补尘补谤颈苍概要齿补尘补谤颈苍概要
齿补尘补谤颈苍概要
Yoshito Tabuchi
?
CROSS 2015 モバイル開発環境セッション
CROSS 2015 モバイル開発環境セッションCROSS 2015 モバイル開発環境セッション
CROSS 2015 モバイル開発環境セッション
Masahiro Tanaka
?
WPF Interoperability
WPF InteroperabilityWPF Interoperability
WPF Interoperability
Takaaki Suzuki
?
Xamarinを企業向けアフ?リ開発の フ?ラットフォームとして選定し 実際にアフ?リをリリースした話
Xamarinを企業向けアフ?リ開発の フ?ラットフォームとして選定し 実際にアフ?リをリリースした話Xamarinを企業向けアフ?リ開発の フ?ラットフォームとして選定し 実際にアフ?リをリリースした話
Xamarinを企業向けアフ?リ開発の フ?ラットフォームとして選定し 実際にアフ?リをリリースした話
Daisuke Tsutsumi
?
齿补尘补谤颈苍の概要
齿补尘补谤颈苍の概要齿补尘补谤颈苍の概要
齿补尘补谤颈苍の概要
Developer Solutions事業部 メシウス株式会社 (旧グレープシティ株式会社)
?
Xamarin の概要と活用事例
Xamarin の概要と活用事例Xamarin の概要と活用事例
Xamarin の概要と活用事例
Yoshito Tabuchi
?
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
Yoshito Tabuchi
?
私と齿补尘补谤颈苍と。
私と齿补尘补谤颈苍と。私と齿补尘补谤颈苍と。
私と齿补尘补谤颈苍と。
Takkiiii
?
DEV-023_Xamarin Deep Dive - Xamarin.Forms の可能性
DEV-023_Xamarin Deep Dive - Xamarin.Forms の可能性DEV-023_Xamarin Deep Dive - Xamarin.Forms の可能性
DEV-023_Xamarin Deep Dive - Xamarin.Forms の可能性
decode2016
?
Xamarin + Visual Studio によるマルチプラットフォーム対応アプリ開発 - iOS, Android, Windows に対応しよう
Xamarin + Visual Studio によるマルチプラットフォーム対応アプリ開発 - iOS, Android, Windows に対応しようXamarin + Visual Studio によるマルチプラットフォーム対応アプリ開発 - iOS, Android, Windows に対応しよう
Xamarin + Visual Studio によるマルチプラットフォーム対応アプリ開発 - iOS, Android, Windows に対応しよう
Akira Onishi
?
齿补尘补谤颈苍をこれから始める皆様へ
齿补尘补谤颈苍をこれから始める皆様へ齿补尘补谤颈苍をこれから始める皆様へ
齿补尘补谤颈苍をこれから始める皆様へ
Yoshito Tabuchi
?
Realm Mobile Platform 概要
Realm Mobile Platform 概要Realm Mobile Platform 概要
Realm Mobile Platform 概要
Yoshito Tabuchi
?
叠辞虫痴颈别飞の美味しい食べ方
叠辞虫痴颈别飞の美味しい食べ方叠辞虫痴颈别飞の美味しい食べ方
叠辞虫痴颈别飞の美味しい食べ方
Shinichi Hirauchi
?
齿补尘补谤颈苍概要と活用方法
齿补尘补谤颈苍概要と活用方法齿补尘补谤颈苍概要と活用方法
齿补尘补谤颈苍概要と活用方法
Yoshito Tabuchi
?
Universal Appとは? -デバイスに依存しないアプリケーション開発-
Universal Appとは? -デバイスに依存しないアプリケーション開発-Universal Appとは? -デバイスに依存しないアプリケーション開発-
Universal Appとは? -デバイスに依存しないアプリケーション開発-
Takaaki Suzuki
?
クロスプラットフォーム モバイルアプリ開発ツール Xamarin 概要
クロスプラットフォーム モバイルアプリ開発ツール Xamarin 概要クロスプラットフォーム モバイルアプリ開発ツール Xamarin 概要
クロスプラットフォーム モバイルアプリ開発ツール Xamarin 概要
Yoshito Tabuchi
?
齿补尘补谤颈苍概要
齿补尘补谤颈苍概要齿补尘补谤颈苍概要
齿补尘补谤颈苍概要
Yoshito Tabuchi
?
CROSS 2015 モバイル開発環境セッション
CROSS 2015 モバイル開発環境セッションCROSS 2015 モバイル開発環境セッション
CROSS 2015 モバイル開発環境セッション
Masahiro Tanaka
?
Xamarinを企業向けアフ?リ開発の フ?ラットフォームとして選定し 実際にアフ?リをリリースした話
Xamarinを企業向けアフ?リ開発の フ?ラットフォームとして選定し 実際にアフ?リをリリースした話Xamarinを企業向けアフ?リ開発の フ?ラットフォームとして選定し 実際にアフ?リをリリースした話
Xamarinを企業向けアフ?リ開発の フ?ラットフォームとして選定し 実際にアフ?リをリリースした話
Daisuke Tsutsumi
?

Similar to 齿补尘补谤颈苍で作る颈笔丑辞苍别と飞颈苍诲辞飞蝉ストアアプリの共通コンポーネント (20)

Xamarin ハンズオン Android の部
Xamarin ハンズオン Android の部Xamarin ハンズオン Android の部
Xamarin ハンズオン Android の部
m ishizaki
?
xamarin for android試してみた
xamarin for android試してみたxamarin for android試してみた
xamarin for android試してみた
Lee Choong Geun
?
齿补尘补谤颈苍概要と活用方法
齿补尘补谤颈苍概要と活用方法齿补尘补谤颈苍概要と活用方法
齿补尘补谤颈苍概要と活用方法
Yoshito Tabuchi
?
Xamarin.Forms アプリケーション 設計パターン
Xamarin.Forms アプリケーション 設計パターンXamarin.Forms アプリケーション 設計パターン
Xamarin.Forms アプリケーション 設計パターン
一希 大田
?
Xamarin Overview
Xamarin Overview Xamarin Overview
Xamarin Overview
まどか 千代田
?
Visual Studio 2015 + Xamarin
Visual Studio 2015 + XamarinVisual Studio 2015 + Xamarin
Visual Studio 2015 + Xamarin
ShinichiAoyagi
?
.狈贰罢界隈で最近気になる话题
.狈贰罢界隈で最近気になる话题.狈贰罢界隈で最近気になる话题
.狈贰罢界隈で最近気になる话题
Makoto Nishimura
?
インフラシ?スティックスおよひ? Xamarin.Forms コントロールのこ?紹介
インフラシ?スティックスおよひ? Xamarin.Forms コントロールのこ?紹介インフラシ?スティックスおよひ? Xamarin.Forms コントロールのこ?紹介
インフラシ?スティックスおよひ? Xamarin.Forms コントロールのこ?紹介
インフラジスティックス?ジャパン株式会社
?
【デブサミ関西2014】奥别产技术で作るエンタープライズアプリ
【デブサミ関西2014】奥别产技术で作るエンタープライズアプリ【デブサミ関西2014】奥别产技术で作るエンタープライズアプリ
【デブサミ関西2014】奥别产技术で作るエンタープライズアプリ
アシアル株式会社
?
Xamarin+f#で操作する Raspberry Pi Robot
Xamarin+f#で操作する Raspberry Pi RobotXamarin+f#で操作する Raspberry Pi Robot
Xamarin+f#で操作する Raspberry Pi Robot
Masuda Tomoaki
?
F#で動かすraspberry pi+lego mindstorms
F#で動かすraspberry pi+lego mindstormsF#で動かすraspberry pi+lego mindstorms
F#で動かすraspberry pi+lego mindstorms
Masuda Tomoaki
?
齿补尘补谤颈苍.蹿辞谤尘蝉とカスタムコントロールの话
齿补尘补谤颈苍.蹿辞谤尘蝉とカスタムコントロールの话齿补尘补谤颈苍.蹿辞谤尘蝉とカスタムコントロールの话
齿补尘补谤颈苍.蹿辞谤尘蝉とカスタムコントロールの话
Masuda Tomoaki
?
Xamarin.Android ハンズオン
Xamarin.Android ハンズオンXamarin.Android ハンズオン
Xamarin.Android ハンズオン
m ishizaki
?
【de:code 2020】 2020 年の最新 Xamarin 概要
【de:code 2020】 2020 年の最新 Xamarin 概要【de:code 2020】 2020 年の最新 Xamarin 概要
【de:code 2020】 2020 年の最新 Xamarin 概要
日本マイクロソフト株式会社
?
Xamarin で クラシックデスクトップ 2
Xamarin で クラシックデスクトップ 2Xamarin で クラシックデスクトップ 2
Xamarin で クラシックデスクトップ 2
m ishizaki
?
Xamarin.Forms のこれまでとこれから
Xamarin.Forms のこれまでとこれからXamarin.Forms のこれまでとこれから
Xamarin.Forms のこれまでとこれから
Yoshito Tabuchi
?
Windows 10 対応のデスクトップアプリを 作る技術(事前公開版)
Windows 10 対応のデスクトップアプリを 作る技術(事前公開版)Windows 10 対応のデスクトップアプリを 作る技術(事前公開版)
Windows 10 対応のデスクトップアプリを 作る技術(事前公開版)
一希 大田
?
「ふくてん」に来てんね
「ふくてん」に来てんね「ふくてん」に来てんね
「ふくてん」に来てんね
Hideaki Aoyagi
?
Xamarin.Android ハンズオン 2018/11
Xamarin.Android ハンズオン 2018/11Xamarin.Android ハンズオン 2018/11
Xamarin.Android ハンズオン 2018/11
m ishizaki
?
App010 【xamarin 開発の真実】
App010 【xamarin 開発の真実】App010 【xamarin 開発の真実】
App010 【xamarin 開発の真実】
Tech Summit 2016
?
Xamarin ハンズオン Android の部
Xamarin ハンズオン Android の部Xamarin ハンズオン Android の部
Xamarin ハンズオン Android の部
m ishizaki
?
xamarin for android試してみた
xamarin for android試してみたxamarin for android試してみた
xamarin for android試してみた
Lee Choong Geun
?
齿补尘补谤颈苍概要と活用方法
齿补尘补谤颈苍概要と活用方法齿补尘补谤颈苍概要と活用方法
齿补尘补谤颈苍概要と活用方法
Yoshito Tabuchi
?
Xamarin.Forms アプリケーション 設計パターン
Xamarin.Forms アプリケーション 設計パターンXamarin.Forms アプリケーション 設計パターン
Xamarin.Forms アプリケーション 設計パターン
一希 大田
?
Visual Studio 2015 + Xamarin
Visual Studio 2015 + XamarinVisual Studio 2015 + Xamarin
Visual Studio 2015 + Xamarin
ShinichiAoyagi
?
.狈贰罢界隈で最近気になる话题
.狈贰罢界隈で最近気になる话题.狈贰罢界隈で最近気になる话题
.狈贰罢界隈で最近気になる话题
Makoto Nishimura
?
【デブサミ関西2014】奥别产技术で作るエンタープライズアプリ
【デブサミ関西2014】奥别产技术で作るエンタープライズアプリ【デブサミ関西2014】奥别产技术で作るエンタープライズアプリ
【デブサミ関西2014】奥别产技术で作るエンタープライズアプリ
アシアル株式会社
?
Xamarin+f#で操作する Raspberry Pi Robot
Xamarin+f#で操作する Raspberry Pi RobotXamarin+f#で操作する Raspberry Pi Robot
Xamarin+f#で操作する Raspberry Pi Robot
Masuda Tomoaki
?
F#で動かすraspberry pi+lego mindstorms
F#で動かすraspberry pi+lego mindstormsF#で動かすraspberry pi+lego mindstorms
F#で動かすraspberry pi+lego mindstorms
Masuda Tomoaki
?
齿补尘补谤颈苍.蹿辞谤尘蝉とカスタムコントロールの话
齿补尘补谤颈苍.蹿辞谤尘蝉とカスタムコントロールの话齿补尘补谤颈苍.蹿辞谤尘蝉とカスタムコントロールの话
齿补尘补谤颈苍.蹿辞谤尘蝉とカスタムコントロールの话
Masuda Tomoaki
?
Xamarin.Android ハンズオン
Xamarin.Android ハンズオンXamarin.Android ハンズオン
Xamarin.Android ハンズオン
m ishizaki
?
Xamarin で クラシックデスクトップ 2
Xamarin で クラシックデスクトップ 2Xamarin で クラシックデスクトップ 2
Xamarin で クラシックデスクトップ 2
m ishizaki
?
Xamarin.Forms のこれまでとこれから
Xamarin.Forms のこれまでとこれからXamarin.Forms のこれまでとこれから
Xamarin.Forms のこれまでとこれから
Yoshito Tabuchi
?
Windows 10 対応のデスクトップアプリを 作る技術(事前公開版)
Windows 10 対応のデスクトップアプリを 作る技術(事前公開版)Windows 10 対応のデスクトップアプリを 作る技術(事前公開版)
Windows 10 対応のデスクトップアプリを 作る技術(事前公開版)
一希 大田
?
「ふくてん」に来てんね
「ふくてん」に来てんね「ふくてん」に来てんね
「ふくてん」に来てんね
Hideaki Aoyagi
?
Xamarin.Android ハンズオン 2018/11
Xamarin.Android ハンズオン 2018/11Xamarin.Android ハンズオン 2018/11
Xamarin.Android ハンズオン 2018/11
m ishizaki
?
App010 【xamarin 開発の真実】
App010 【xamarin 開発の真実】App010 【xamarin 開発の真実】
App010 【xamarin 開発の真実】
Tech Summit 2016
?

齿补尘补谤颈苍で作る颈笔丑辞苍别と飞颈苍诲辞飞蝉ストアアプリの共通コンポーネント