SlideShare ist ein Scribd-Unternehmen logo
1 von 14
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

Weitere ähnliche Inhalte

Was ist angesagt?

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を企業向けアプリ開発の プラットフォームとして選定し 実際にアプリをリリースした話
Xamarinを企業向けアプリ開発の プラットフォームとして選定し 実際にアプリをリリースした話Xamarinを企業向けアプリ開発の プラットフォームとして選定し 実際にアプリをリリースした話
Xamarinを企業向けアプリ開発の プラットフォームとして選定し 実際にアプリをリリースした話
Daisuke Tsutsumi
 

Was ist angesagt? (20)

Xamarin の概要と活用事例
Xamarin の概要と活用事例Xamarin の概要と活用事例
Xamarin の概要と活用事例
 
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
 
私とXamarinと。
私とXamarinと。私とXamarinと。
私とXamarinと。
 
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 の可能性
 
Xamarin + Visual Studio によるマルチプラットフォーム対応アプリ開発 - iOS, Android, Windows に対応しよう
Xamarin + Visual Studio によるマルチプラットフォーム対応アプリ開発 - iOS, Android, Windows に対応しようXamarin + Visual Studio によるマルチプラットフォーム対応アプリ開発 - iOS, Android, Windows に対応しよう
Xamarin + Visual Studio によるマルチプラットフォーム対応アプリ開発 - iOS, Android, Windows に対応しよう
 
Xamarin Overview
Xamarin Overview Xamarin Overview
Xamarin Overview
 
Friendly
FriendlyFriendly
Friendly
 
Xamarinをこれから始める皆様へ
Xamarinをこれから始める皆様へXamarinをこれから始める皆様へ
Xamarinをこれから始める皆様へ
 
Realm Mobile Platform 概要
Realm Mobile Platform 概要Realm Mobile Platform 概要
Realm Mobile Platform 概要
 
NET Standard と Xamarin
NET Standard と XamarinNET Standard と Xamarin
NET Standard と Xamarin
 
BoxViewの美味しい食べ方
BoxViewの美味しい食べ方BoxViewの美味しい食べ方
BoxViewの美味しい食べ方
 
Visual Studio + xamarin で始めるモバイル アプリ開発
Visual Studio + xamarin で始めるモバイル アプリ開発Visual Studio + xamarin で始めるモバイル アプリ開発
Visual Studio + xamarin で始めるモバイル アプリ開発
 
Xamarin概要と活用方法
Xamarin概要と活用方法Xamarin概要と活用方法
Xamarin概要と活用方法
 
Universal Appとは? -デバイスに依存しないアプリケーション開発-
Universal Appとは? -デバイスに依存しないアプリケーション開発-Universal Appとは? -デバイスに依存しないアプリケーション開発-
Universal Appとは? -デバイスに依存しないアプリケーション開発-
 
クロスプラットフォーム モバイルアプリ開発ツール Xamarin 概要
クロスプラットフォーム モバイルアプリ開発ツール Xamarin 概要クロスプラットフォーム モバイルアプリ開発ツール Xamarin 概要
クロスプラットフォーム モバイルアプリ開発ツール Xamarin 概要
 
Xamarin概要
Xamarin概要Xamarin概要
Xamarin概要
 
CROSS 2015 モバイル開発環境セッション
CROSS 2015 モバイル開発環境セッションCROSS 2015 モバイル開発環境セッション
CROSS 2015 モバイル開発環境セッション
 
WPF Interoperability
WPF InteroperabilityWPF Interoperability
WPF Interoperability
 
Xamarinを企業向けアプリ開発の プラットフォームとして選定し 実際にアプリをリリースした話
Xamarinを企業向けアプリ開発の プラットフォームとして選定し 実際にアプリをリリースした話Xamarinを企業向けアプリ開発の プラットフォームとして選定し 実際にアプリをリリースした話
Xamarinを企業向けアプリ開発の プラットフォームとして選定し 実際にアプリをリリースした話
 
Xamarinの概要
Xamarinの概要Xamarinの概要
Xamarinの概要
 

Ähnlich wie Xamarinで作るiPhoneとwindowsストアアプリの共通コンポーネント

xamarin for android試してみた
xamarin for android試してみたxamarin for android試してみた
xamarin for android試してみた
Lee Choong Geun
 
.NET界隈で最近気になる話題
.NET界隈で最近気になる話題.NET界隈で最近気になる話題
.NET界隈で最近気になる話題
Makoto Nishimura
 
Xamarin で クラシックデスクトップ 2
Xamarin で クラシックデスクトップ 2Xamarin で クラシックデスクトップ 2
Xamarin で クラシックデスクトップ 2
m ishizaki
 

Ähnlich wie Xamarinで作るiPhoneとwindowsストアアプリの共通コンポーネント (20)

Xamarin ハンズオン Android の部
Xamarin ハンズオン Android の部Xamarin ハンズオン Android の部
Xamarin ハンズオン Android の部
 
xamarin for android試してみた
xamarin for android試してみたxamarin for android試してみた
xamarin for android試してみた
 
Xamarin概要と活用方法
Xamarin概要と活用方法Xamarin概要と活用方法
Xamarin概要と活用方法
 
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
 
.NET界隈で最近気になる話題
.NET界隈で最近気になる話題.NET界隈で最近気になる話題
.NET界隈で最近気になる話題
 
インフラジスティックスおよび Xamarin.Forms コントロールのご紹介
インフラジスティックスおよび Xamarin.Forms コントロールのご紹介インフラジスティックスおよび Xamarin.Forms コントロールのご紹介
インフラジスティックスおよび Xamarin.Forms コントロールのご紹介
 
【デブサミ関西2014】Web技術で作るエンタープライズアプリ
【デブサミ関西2014】Web技術で作るエンタープライズアプリ【デブサミ関西2014】Web技術で作るエンタープライズアプリ
【デブサミ関西2014】Web技術で作るエンタープライズアプリ
 
Xamarin+f#で操作する Raspberry Pi Robot
Xamarin+f#で操作する Raspberry Pi RobotXamarin+f#で操作する Raspberry Pi Robot
Xamarin+f#で操作する Raspberry Pi Robot
 
F#で動かすraspberry pi+lego mindstorms
F#で動かすraspberry pi+lego mindstormsF#で動かすraspberry pi+lego mindstorms
F#で動かすraspberry pi+lego mindstorms
 
Xamarin.formsとカスタムコントロールの話
Xamarin.formsとカスタムコントロールの話Xamarin.formsとカスタムコントロールの話
Xamarin.formsとカスタムコントロールの話
 
Xamarin.Android ハンズオン
Xamarin.Android ハンズオンXamarin.Android ハンズオン
Xamarin.Android ハンズオン
 
【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
 
Xamarin.Forms のこれまでとこれから
Xamarin.Forms のこれまでとこれからXamarin.Forms のこれまでとこれから
Xamarin.Forms のこれまでとこれから
 
Windows 10 対応のデスクトップアプリを 作る技術(事前公開版)
Windows 10 対応のデスクトップアプリを 作る技術(事前公開版)Windows 10 対応のデスクトップアプリを 作る技術(事前公開版)
Windows 10 対応のデスクトップアプリを 作る技術(事前公開版)
 
「ふくてん」に来てんね
「ふくてん」に来てんね「ふくてん」に来てんね
「ふくてん」に来てんね
 
Xamarin.Android ハンズオン 2018/11
Xamarin.Android ハンズオン 2018/11Xamarin.Android ハンズオン 2018/11
Xamarin.Android ハンズオン 2018/11
 
App010 【xamarin 開発の真実】
App010 【xamarin 開発の真実】App010 【xamarin 開発の真実】
App010 【xamarin 開発の真実】
 

Xamarinで作るiPhoneとwindowsストアアプリの共通コンポーネント