23
Xamarin ククククククククククククククククククククク クククク

Xamarin

Embed Size (px)

Citation preview

Page 1: Xamarin

Xamarinクロスプラットフォームでモバイルアプリ開発

竹内孝志

Page 2: Xamarin

アジェンダXamarin について使ってみた結果

UI ローカル DB 生産性

Page 3: Xamarin

Xamarinについてクロスプラットフォーム開発環境ネイティブアプリが開発可能開発言語は C#Mono ランタイムで動く

Page 4: Xamarin

なぜ Xamarinか?ネイティブアプリが開発が可能

高パフォーマンスなアプリの開発

Page 5: Xamarin

クロスプラットフォーム開発環境比較費用 言語 ネイティブ 備考

Xamarin 有料 C# ○

Adobe air 無料 actionScript ○Cordova 無料 HTML ×Titanium 無料 Javascript ×

Corona 有料 Lua ○ ゲームエンジンcocos2D-x

無料 C++ ○ ゲームエンジン※ 有料無料はストアに配信可能かどうかで判断

Page 6: Xamarin

ライセンスについて

計 \24,3000

Xamarin Android BusinessXamarin.iOS Business

\127,800\127,800

・価格が2倍のコンポーネントやサポートが充実したエンタープライズ版がある。・ xamarin は永久ライセンスなため一度支払えば永久的に使用することが可能。・サポートやバージョンアップに関しては1年間のみ。 

Page 7: Xamarin

Xamarinを使ってみるXamarin Studio という IDE がある。

評価版のライセンスで使用してみた。

Page 8: Xamarin

評価版ライセンスについて・ Business 版と同じ機能を提供・ 30 日間のみ使用可能・ビルドしてから 24 時間経過後にアプリの起動不可

Page 9: Xamarin

課題 (注目すべきところ )

機能 UI の実装 ローカル DB の実装

生産性 プラットフォーム共通コードの量 開発ツールの使いやすさ

コストを抑えつつ、高パフォーマンスなアプリを開発したい。iOS 、 Android 両方とも同じ UI で開発したい。■課題

Page 10: Xamarin

サンプル開発できるだけコードを共通させたいため Xamarin.Forms で開発した。

共通コード

iOS 用コード Android 用コード

共通コード

共通コードUI

アプリロジックForms を使用しない Forms を使用する

Page 11: Xamarin

サンプル開発S プロジェクトで導入可能かの検証を目的とするため、似たような機能を持つアプリを開発。 ( 最後にデモをします。 )

AP サーバAPI でリストを取得

画面を取得する

Page 12: Xamarin

UIの実装Children

Label 2Label 1

・レイアウトに対して UI 要素を配置。・ UI 要素にアクションを記述。・レイアウトにレイアウトも配置可。

Cli

Page 13: Xamarin

UIの実装 (コード )

※ サンプルアプリのコードとは関係ありません

入れ子構造で要素を記述していくイメージ

Page 14: Xamarin

ローカルDBについて

ローカル DB 接続コード(Android 用 )

ローカル DB 接続コード(iOS 用 )

SQLite.Net-PLC(追加ライブラリ)

DB 操作共通ロジック

SQLite.Net-PLC(追加ライブラリ)

iOS デバイスに保存 Android デバイスに保存

Page 15: Xamarin

ローカルDBについて (コード )

※ サンプルアプリのコードとは関係ありません

SQLite.Net は ORM を搭載しているため簡単に記述できる

Page 16: Xamarin

生産性について (コード量 )今回は一部の DB 処理以外は共通コードとして記述できた。

共通コード

Android専用コードiOS専用コード

Page 17: Xamarin

生産性について (ツール )

・環境構築が簡単 →  IDE のインストールのみ・ライブラリの追加が簡単 →  IDE 上から NuGet で導入・ iOS と Android のコードを同時に管理できる・動作確認において iOS と Android の切り替えが設定1つでできる

XamarinStudioは使いやすい印象を受けた

Page 18: Xamarin

導入する上での問題点Xamarin.form を使用した場合に iOS と Android で UI が大きく異なる。

■Android ■iOS

Page 19: Xamarin

導入していくなら

依頼者 開発者

① ワイヤーをもらう

②Android と iOS の UI サンプルを作り それぞれのイメージを渡し合意を得る

Xamarin.forms だけでは iOS 、 Android 共にワイヤー通りの UI を実現するのは難しい。ある程度妥協してもらう必要がある。

Page 20: Xamarin

導入していくならもしくは、 Xamarin.form での開発を諦めて UI は独自に実装する。

共通コード

iOS 用コード Android 用コード

共通コード

共通コードUI

Forms を使用しない Forms を使用する

Page 21: Xamarin

おまけXamarin は工夫次第ではプラットフォーム毎のコードを共通化できる。例えば、ローカル DB を使うとき、公式のライブラリ SQLite.Net を使用した場合は iOS 、 Android の独自なコードを記述しなければならなかったが、 Akaveche という独自の DB 実装したオープンソースのライブラリがある。これを使用すれば iOS 、 Android 共通でローカル DB を使用できる。

Page 22: Xamarin

参考xamarin公式https://xamarin.com/xamarinドキュメントhttp://developer.xamarin.com/akavachehttps://github.com/akavache/Akavachebuildinsider.net(Xamarinの記事がたくさん )http://www.buildinsider.net/tagcloud?tag=Xamarin

Page 23: Xamarin

ご清聴ありがとうございました