SlideShare a Scribd company logo
1 of 23
クロスプラットフォームでモバイルアプリ開発
竹内孝志
 Xamarinについて
 使ってみた結果
 UI
 ローカルDB
 生産性
 クロスプラットフォーム開発環境
 ネイティブアプリが開発可能
 開発言語はC#
 Monoランタイムで動く
ネイティブアプリが開発が可能
高パフォーマンスなアプリの開発
費用 言語 ネイティブ 備考
Xamarin 有料 C# ○
Adobe air 無料 actionScript ○
Cordova 無料 HTML ×
Titanium 無料 Javascript ×
Corona 有料 Lua ○ ゲームエンジン
cocos2D-x 無料 C++ ○ ゲームエンジン
※有料無料はストアに配信可能かどうかで判断
計 24,3000
Xamarin Android Business
Xamarin.iOS Business
127,800
127,800
・価格が2倍のコンポーネントやサポートが充実したエンタープライズ版がある。
・xamarinは永久ライセンスなため一度支払えば永久的に使用することが可能。
・サポートやバージョンアップに関しては1年間のみ。
Xamarin StudioというIDEがある。
評価版のライセンスで使用してみた。
・Business版と同じ機能を提供
・30日間のみ使用可能
・ビルドしてから24時間経過後にアプリの起動不可
 機能
 UIの実装
 ローカルDBの実装
 生産性
 プラットフォーム共通コードの量
 開発ツールの使いやすさ
コストを抑えつつ、高パフォーマンスなアプリを開発したい。
iOS、Android両方とも同じUIで開発したい。
■課題
できるだけコードを共通させたいためXamarin.Formsで開発した。
共通コード
iOS用コード Android用コード
共通コード
共通コードUI
アプリ
ロジック
Formsを使用しない Formsを使用する
Sプロジェクトで導入可能かの検証を目的とするため、似たような機能を持
つアプリを開発。 (最後にデモをします。)
APサーバ
APIでリストを取得
画面を取得する
Children
Label2
Label1
・レイアウトに対してUI要素を配置。
・UI要素にアクションを記述。
・レイアウトにレイアウトも配置可。
Cli
※サンプルアプリのコードとは関係ありません
入れ子構造で要素を記述していくイメージ
ローカルDB接続コード
(Android用)
ローカルDB接続コード
(iOS用)
SQLite.Net-PLC
(追加ライブラリ)
DB操作共通ロジック
SQLite.Net-PLC
(追加ライブラリ)
iOSデバイスに保存 Androidデバイスに保存
※サンプルアプリのコードとは関係ありません
SQLite.NetはORMを搭載しているため簡単に記述できる
今回は一部のDB処理以外は共通コードとして記述できた。
共通コード
Android専用コード
iOS専用コード
・環境構築が簡単 → IDEのインストールのみ
・ライブラリの追加が簡単 → IDE上からNuGetで導入
・iOSとAndroidのコードを同時に管理できる
・動作確認においてiOSとAndroidの切り替えが設定1つでできる
XamarinStudioは使いやすい印象を受けた
Xamarin.formを使用した場合にiOSとAndroidでUIが大きく異なる。
■Android ■iOS
依頼者 開発者
①ワイヤーをもらう
②AndroidとiOSのUIサンプルを作り
それぞれのイメージを渡し合意を得る
Xamarin.formsだけではiOS、Android共にワイヤー通りのUIを実現するのは難しい。
ある程度妥協してもらう必要がある。
もしくは、Xamarin.formでの開発を諦めてUIは独自に実装する。
共通コード
iOS用コード Android用コード
共通コード
共通コードUI
Formsを使用しない Formsを使用する
Xamarinは工夫次第ではプラットフォーム毎のコードを共通化できる。
例えば、ローカルDBを使うとき、公式のライブラリSQLite.Netを使用
した場合はiOS、Androidの独自なコードを記述しなければならなかっ
たが、Akavecheという独自のDB実装したオープンソースのライブラリ
がある。これを使用すればiOS、Android共通でローカルDBを使用でき
る。
xamarin公式
https://xamarin.com/
xamarinドキュメント
http://developer.xamarin.com/
akavache
https://github.com/akavache/Akavache
buildinsider.net(Xamarinの記事がたくさん)
http://www.buildinsider.net/tagcloud?tag=Xamarin
Xamarin

More Related Content

Viewers also liked

ここからはじめるAction Script 3.0 入門前
ここからはじめるAction Script 3.0 入門前ここからはじめるAction Script 3.0 入門前
ここからはじめるAction Script 3.0 入門前Yusuke Kamo
 
WCAN mini ActionScript vol.11
WCAN mini ActionScript vol.11WCAN mini ActionScript vol.11
WCAN mini ActionScript vol.11ll_koba_ll
 
Flash Developerになる4つのヒント
Flash Developerになる4つのヒントFlash Developerになる4つのヒント
Flash Developerになる4つのヒントYusuke Kamo
 
TravisCIでActionScriptを動かす
TravisCIでActionScriptを動かすTravisCIでActionScriptを動かす
TravisCIでActionScriptを動かすgyoh_k
 
JavaScript Tips 2015(PDF 版)
JavaScript Tips 2015(PDF 版)JavaScript Tips 2015(PDF 版)
JavaScript Tips 2015(PDF 版)taskie
 
2011/12/14 FxUG発表資料 初めてのRobotlegs
2011/12/14 FxUG発表資料 初めてのRobotlegs 2011/12/14 FxUG発表資料 初めてのRobotlegs
2011/12/14 FxUG発表資料 初めてのRobotlegs 豊 満石
 
HokurikuUnConference: Windows7
HokurikuUnConference: Windows7HokurikuUnConference: Windows7
HokurikuUnConference: Windows7guest3820592
 
Unity2015_No5_~Mecanim~
 Unity2015_No5_~Mecanim~  Unity2015_No5_~Mecanim~
Unity2015_No5_~Mecanim~ CHY72
 
インタラクティブコンテンツにおけるHTML5とFlash
インタラクティブコンテンツにおけるHTML5とFlashインタラクティブコンテンツにおけるHTML5とFlash
インタラクティブコンテンツにおけるHTML5とFlashYasunobu Ikeda
 
Unity講座資料 共通
Unity講座資料 共通Unity講座資料 共通
Unity講座資料 共通Mattun
 
開発ゼミ発表
開発ゼミ発表開発ゼミ発表
開発ゼミ発表YanoLabLT
 
Groovyクイズ(計算編)
Groovyクイズ(計算編)Groovyクイズ(計算編)
Groovyクイズ(計算編)Yasuharu Hayami
 
WCAN mini Actionscript Vol.9 - LEDガジェット、ただのピカピカと見るか?アニメーションと見るか?
WCAN mini Actionscript Vol.9 - LEDガジェット、ただのピカピカと見るか?アニメーションと見るか?WCAN mini Actionscript Vol.9 - LEDガジェット、ただのピカピカと見るか?アニメーションと見るか?
WCAN mini Actionscript Vol.9 - LEDガジェット、ただのピカピカと見るか?アニメーションと見るか?Hideyuki TAKEI
 
とあるFlashの自動生成
とあるFlashの自動生成とあるFlashの自動生成
とあるFlashの自動生成Akineko Shimizu
 
Unity講座資料1
Unity講座資料1Unity講座資料1
Unity講座資料1Mattun
 

Viewers also liked (20)

ここからはじめるAction Script 3.0 入門前
ここからはじめるAction Script 3.0 入門前ここからはじめるAction Script 3.0 入門前
ここからはじめるAction Script 3.0 入門前
 
GroovyでJSON2015
GroovyでJSON2015GroovyでJSON2015
GroovyでJSON2015
 
WCAN mini ActionScript vol.11
WCAN mini ActionScript vol.11WCAN mini ActionScript vol.11
WCAN mini ActionScript vol.11
 
Flex入門
Flex入門Flex入門
Flex入門
 
Flash Developerになる4つのヒント
Flash Developerになる4つのヒントFlash Developerになる4つのヒント
Flash Developerになる4つのヒント
 
TravisCIでActionScriptを動かす
TravisCIでActionScriptを動かすTravisCIでActionScriptを動かす
TravisCIでActionScriptを動かす
 
Scc2015 you tube
Scc2015 you tubeScc2015 you tube
Scc2015 you tube
 
JavaScript Tips 2015(PDF 版)
JavaScript Tips 2015(PDF 版)JavaScript Tips 2015(PDF 版)
JavaScript Tips 2015(PDF 版)
 
Scc2015 SNS Tech
Scc2015 SNS TechScc2015 SNS Tech
Scc2015 SNS Tech
 
2011/12/14 FxUG発表資料 初めてのRobotlegs
2011/12/14 FxUG発表資料 初めてのRobotlegs 2011/12/14 FxUG発表資料 初めてのRobotlegs
2011/12/14 FxUG発表資料 初めてのRobotlegs
 
Aneについて
AneについてAneについて
Aneについて
 
HokurikuUnConference: Windows7
HokurikuUnConference: Windows7HokurikuUnConference: Windows7
HokurikuUnConference: Windows7
 
Unity2015_No5_~Mecanim~
 Unity2015_No5_~Mecanim~  Unity2015_No5_~Mecanim~
Unity2015_No5_~Mecanim~
 
インタラクティブコンテンツにおけるHTML5とFlash
インタラクティブコンテンツにおけるHTML5とFlashインタラクティブコンテンツにおけるHTML5とFlash
インタラクティブコンテンツにおけるHTML5とFlash
 
Unity講座資料 共通
Unity講座資料 共通Unity講座資料 共通
Unity講座資料 共通
 
開発ゼミ発表
開発ゼミ発表開発ゼミ発表
開発ゼミ発表
 
Groovyクイズ(計算編)
Groovyクイズ(計算編)Groovyクイズ(計算編)
Groovyクイズ(計算編)
 
WCAN mini Actionscript Vol.9 - LEDガジェット、ただのピカピカと見るか?アニメーションと見るか?
WCAN mini Actionscript Vol.9 - LEDガジェット、ただのピカピカと見るか?アニメーションと見るか?WCAN mini Actionscript Vol.9 - LEDガジェット、ただのピカピカと見るか?アニメーションと見るか?
WCAN mini Actionscript Vol.9 - LEDガジェット、ただのピカピカと見るか?アニメーションと見るか?
 
とあるFlashの自動生成
とあるFlashの自動生成とあるFlashの自動生成
とあるFlashの自動生成
 
Unity講座資料1
Unity講座資料1Unity講座資料1
Unity講座資料1
 

Similar to Xamarin

Xamarin ハンズオン Android の部
Xamarin ハンズオン Android の部Xamarin ハンズオン Android の部
Xamarin ハンズオン Android の部m ishizaki
 
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介Yoshito Tabuchi
 
【17-A-1】Mobile Future Conference開会のご挨拶/世界へ挑むDeNAの「X-border」「X-device」戦略
【17-A-1】Mobile Future Conference開会のご挨拶/世界へ挑むDeNAの「X-border」「X-device」戦略【17-A-1】Mobile Future Conference開会のご挨拶/世界へ挑むDeNAの「X-border」「X-device」戦略
【17-A-1】Mobile Future Conference開会のご挨拶/世界へ挑むDeNAの「X-border」「X-device」戦略Developers Summit
 
Xamarin.Forms オリジナルタイマーアプリを作ろうハンズオン
Xamarin.Forms オリジナルタイマーアプリを作ろうハンズオンXamarin.Forms オリジナルタイマーアプリを作ろうハンズオン
Xamarin.Forms オリジナルタイマーアプリを作ろうハンズオンm ishizaki
 
Xamarinで作るiPhoneとwindowsストアアプリの共通コンポーネント
Xamarinで作るiPhoneとwindowsストアアプリの共通コンポーネントXamarinで作るiPhoneとwindowsストアアプリの共通コンポーネント
Xamarinで作るiPhoneとwindowsストアアプリの共通コンポーネントMasuda Tomoaki
 
モバイルコンテンツ制作を効 率化するツールを使いこなせ
モバイルコンテンツ制作を効 率化するツールを使いこなせモバイルコンテンツ制作を効 率化するツールを使いこなせ
モバイルコンテンツ制作を効 率化するツールを使いこなせKeisuke Todoroki
 
Cross-Platform ができる Xamarin について
Cross-Platform ができる Xamarin についてCross-Platform ができる Xamarin について
Cross-Platform ができる Xamarin についてm ishizaki
 
アプリケーション・デベロッパー 〜Xamarinによるクロスプラットフォーム開発〜
アプリケーション・デベロッパー 〜Xamarinによるクロスプラットフォーム開発〜アプリケーション・デベロッパー 〜Xamarinによるクロスプラットフォーム開発〜
アプリケーション・デベロッパー 〜Xamarinによるクロスプラットフォーム開発〜Daiki Kawanuma
 
HTML5 の Web制作を 確実に楽にする最新の アドビWeb制作ツール for HTML5 Carnival Fukuoka
HTML5 の Web制作を 確実に楽にする最新の アドビWeb制作ツール for HTML5 Carnival FukuokaHTML5 の Web制作を 確実に楽にする最新の アドビWeb制作ツール for HTML5 Carnival Fukuoka
HTML5 の Web制作を 確実に楽にする最新の アドビWeb制作ツール for HTML5 Carnival FukuokaKeisuke Todoroki
 
Sharoid Service Menu
Sharoid Service MenuSharoid Service Menu
Sharoid Service Menusharoid
 
【デブサミ関西2014】Web技術で作るエンタープライズアプリ
【デブサミ関西2014】Web技術で作るエンタープライズアプリ【デブサミ関西2014】Web技術で作るエンタープライズアプリ
【デブサミ関西2014】Web技術で作るエンタープライズアプリアシアル株式会社
 
サイネージを使う顧客創出のシナリオ
サイネージを使う顧客創出のシナリオサイネージを使う顧客創出のシナリオ
サイネージを使う顧客創出のシナリオCRI Japan, Inc.
 
Xamarin概要と活用方法
Xamarin概要と活用方法Xamarin概要と活用方法
Xamarin概要と活用方法Yoshito Tabuchi
 
Xamarin概要と活用方法
Xamarin概要と活用方法Xamarin概要と活用方法
Xamarin概要と活用方法Yoshito Tabuchi
 
Windows 10 対応のデスクトップアプリを 作る技術(事前公開版)
Windows 10 対応のデスクトップアプリを 作る技術(事前公開版)Windows 10 対応のデスクトップアプリを 作る技術(事前公開版)
Windows 10 対応のデスクトップアプリを 作る技術(事前公開版)一希 大田
 
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
 
Developers.io.札幌 xamarinってどうよ
Developers.io.札幌 xamarinってどうよDevelopers.io.札幌 xamarinってどうよ
Developers.io.札幌 xamarinってどうよShinichi Hirauchi
 
これからのNOTESモバイルアプリはこう作れ
これからのNOTESモバイルアプリはこう作れこれからのNOTESモバイルアプリはこう作れ
これからのNOTESモバイルアプリはこう作れMitsuru Katoh
 

Similar to Xamarin (20)

Xamarin ハンズオン Android の部
Xamarin ハンズオン Android の部Xamarin ハンズオン Android の部
Xamarin ハンズオン Android の部
 
Xamarin Overview
Xamarin Overview Xamarin Overview
Xamarin Overview
 
Xamarin Overview
Xamarin Overview Xamarin Overview
Xamarin Overview
 
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
 
【17-A-1】Mobile Future Conference開会のご挨拶/世界へ挑むDeNAの「X-border」「X-device」戦略
【17-A-1】Mobile Future Conference開会のご挨拶/世界へ挑むDeNAの「X-border」「X-device」戦略【17-A-1】Mobile Future Conference開会のご挨拶/世界へ挑むDeNAの「X-border」「X-device」戦略
【17-A-1】Mobile Future Conference開会のご挨拶/世界へ挑むDeNAの「X-border」「X-device」戦略
 
Xamarin.Forms オリジナルタイマーアプリを作ろうハンズオン
Xamarin.Forms オリジナルタイマーアプリを作ろうハンズオンXamarin.Forms オリジナルタイマーアプリを作ろうハンズオン
Xamarin.Forms オリジナルタイマーアプリを作ろうハンズオン
 
Xamarinで作るiPhoneとwindowsストアアプリの共通コンポーネント
Xamarinで作るiPhoneとwindowsストアアプリの共通コンポーネントXamarinで作るiPhoneとwindowsストアアプリの共通コンポーネント
Xamarinで作るiPhoneとwindowsストアアプリの共通コンポーネント
 
モバイルコンテンツ制作を効 率化するツールを使いこなせ
モバイルコンテンツ制作を効 率化するツールを使いこなせモバイルコンテンツ制作を効 率化するツールを使いこなせ
モバイルコンテンツ制作を効 率化するツールを使いこなせ
 
Cross-Platform ができる Xamarin について
Cross-Platform ができる Xamarin についてCross-Platform ができる Xamarin について
Cross-Platform ができる Xamarin について
 
アプリケーション・デベロッパー 〜Xamarinによるクロスプラットフォーム開発〜
アプリケーション・デベロッパー 〜Xamarinによるクロスプラットフォーム開発〜アプリケーション・デベロッパー 〜Xamarinによるクロスプラットフォーム開発〜
アプリケーション・デベロッパー 〜Xamarinによるクロスプラットフォーム開発〜
 
HTML5 の Web制作を 確実に楽にする最新の アドビWeb制作ツール for HTML5 Carnival Fukuoka
HTML5 の Web制作を 確実に楽にする最新の アドビWeb制作ツール for HTML5 Carnival FukuokaHTML5 の Web制作を 確実に楽にする最新の アドビWeb制作ツール for HTML5 Carnival Fukuoka
HTML5 の Web制作を 確実に楽にする最新の アドビWeb制作ツール for HTML5 Carnival Fukuoka
 
Sharoid Service Menu
Sharoid Service MenuSharoid Service Menu
Sharoid Service Menu
 
【デブサミ関西2014】Web技術で作るエンタープライズアプリ
【デブサミ関西2014】Web技術で作るエンタープライズアプリ【デブサミ関西2014】Web技術で作るエンタープライズアプリ
【デブサミ関西2014】Web技術で作るエンタープライズアプリ
 
サイネージを使う顧客創出のシナリオ
サイネージを使う顧客創出のシナリオサイネージを使う顧客創出のシナリオ
サイネージを使う顧客創出のシナリオ
 
Xamarin概要と活用方法
Xamarin概要と活用方法Xamarin概要と活用方法
Xamarin概要と活用方法
 
Xamarin概要と活用方法
Xamarin概要と活用方法Xamarin概要と活用方法
Xamarin概要と活用方法
 
Windows 10 対応のデスクトップアプリを 作る技術(事前公開版)
Windows 10 対応のデスクトップアプリを 作る技術(事前公開版)Windows 10 対応のデスクトップアプリを 作る技術(事前公開版)
Windows 10 対応のデスクトップアプリを 作る技術(事前公開版)
 
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 の可能性
 
Developers.io.札幌 xamarinってどうよ
Developers.io.札幌 xamarinってどうよDevelopers.io.札幌 xamarinってどうよ
Developers.io.札幌 xamarinってどうよ
 
これからのNOTESモバイルアプリはこう作れ
これからのNOTESモバイルアプリはこう作れこれからのNOTESモバイルアプリはこう作れ
これからのNOTESモバイルアプリはこう作れ
 

More from takeuchi-tk

Scala勉強会 初心者向けハンズオン前編
Scala勉強会 初心者向けハンズオン前編Scala勉強会 初心者向けハンズオン前編
Scala勉強会 初心者向けハンズオン前編takeuchi-tk
 
Fluentd勉強会 (導入編 TreasureData活用)
Fluentd勉強会 (導入編 TreasureData活用)Fluentd勉強会 (導入編 TreasureData活用)
Fluentd勉強会 (導入編 TreasureData活用)takeuchi-tk
 
Vagrant勉強会アップロード用
Vagrant勉強会アップロード用Vagrant勉強会アップロード用
Vagrant勉強会アップロード用takeuchi-tk
 
Aws勉強会アップロード用
Aws勉強会アップロード用Aws勉強会アップロード用
Aws勉強会アップロード用takeuchi-tk
 
Webエンジニアによるスマートフォンアプリ開発
Webエンジニアによるスマートフォンアプリ開発Webエンジニアによるスマートフォンアプリ開発
Webエンジニアによるスマートフォンアプリ開発takeuchi-tk
 
Mercurial shelveとmq
Mercurial shelveとmqMercurial shelveとmq
Mercurial shelveとmqtakeuchi-tk
 

More from takeuchi-tk (7)

Scala勉強会 初心者向けハンズオン前編
Scala勉強会 初心者向けハンズオン前編Scala勉強会 初心者向けハンズオン前編
Scala勉強会 初心者向けハンズオン前編
 
Fluentd勉強会 (導入編 TreasureData活用)
Fluentd勉強会 (導入編 TreasureData活用)Fluentd勉強会 (導入編 TreasureData活用)
Fluentd勉強会 (導入編 TreasureData活用)
 
Vagrant勉強会アップロード用
Vagrant勉強会アップロード用Vagrant勉強会アップロード用
Vagrant勉強会アップロード用
 
Aws勉強会アップロード用
Aws勉強会アップロード用Aws勉強会アップロード用
Aws勉強会アップロード用
 
Webエンジニアによるスマートフォンアプリ開発
Webエンジニアによるスマートフォンアプリ開発Webエンジニアによるスマートフォンアプリ開発
Webエンジニアによるスマートフォンアプリ開発
 
Selenium
SeleniumSelenium
Selenium
 
Mercurial shelveとmq
Mercurial shelveとmqMercurial shelveとmq
Mercurial shelveとmq
 

Xamarin