xamarin
TRANSCRIPT
![Page 1: Xamarin](https://reader035.vdocuments.pub/reader035/viewer/2022081604/5879798a1a28ab37368b7ed3/html5/thumbnails/1.jpg)
Xamarinクロスプラットフォームでモバイルアプリ開発
竹内孝志
![Page 2: Xamarin](https://reader035.vdocuments.pub/reader035/viewer/2022081604/5879798a1a28ab37368b7ed3/html5/thumbnails/2.jpg)
アジェンダXamarin について使ってみた結果
UI ローカル DB 生産性
![Page 3: Xamarin](https://reader035.vdocuments.pub/reader035/viewer/2022081604/5879798a1a28ab37368b7ed3/html5/thumbnails/3.jpg)
Xamarinについてクロスプラットフォーム開発環境ネイティブアプリが開発可能開発言語は C#Mono ランタイムで動く
![Page 4: Xamarin](https://reader035.vdocuments.pub/reader035/viewer/2022081604/5879798a1a28ab37368b7ed3/html5/thumbnails/4.jpg)
なぜ Xamarinか?ネイティブアプリが開発が可能
高パフォーマンスなアプリの開発
![Page 5: Xamarin](https://reader035.vdocuments.pub/reader035/viewer/2022081604/5879798a1a28ab37368b7ed3/html5/thumbnails/5.jpg)
クロスプラットフォーム開発環境比較費用 言語 ネイティブ 備考
Xamarin 有料 C# ○
Adobe air 無料 actionScript ○Cordova 無料 HTML ×Titanium 無料 Javascript ×
Corona 有料 Lua ○ ゲームエンジンcocos2D-x
無料 C++ ○ ゲームエンジン※ 有料無料はストアに配信可能かどうかで判断
![Page 6: Xamarin](https://reader035.vdocuments.pub/reader035/viewer/2022081604/5879798a1a28ab37368b7ed3/html5/thumbnails/6.jpg)
ライセンスについて
計 \24,3000
Xamarin Android BusinessXamarin.iOS Business
\127,800\127,800
・価格が2倍のコンポーネントやサポートが充実したエンタープライズ版がある。・ xamarin は永久ライセンスなため一度支払えば永久的に使用することが可能。・サポートやバージョンアップに関しては1年間のみ。
![Page 7: Xamarin](https://reader035.vdocuments.pub/reader035/viewer/2022081604/5879798a1a28ab37368b7ed3/html5/thumbnails/7.jpg)
Xamarinを使ってみるXamarin Studio という IDE がある。
評価版のライセンスで使用してみた。
![Page 8: Xamarin](https://reader035.vdocuments.pub/reader035/viewer/2022081604/5879798a1a28ab37368b7ed3/html5/thumbnails/8.jpg)
評価版ライセンスについて・ Business 版と同じ機能を提供・ 30 日間のみ使用可能・ビルドしてから 24 時間経過後にアプリの起動不可
![Page 9: Xamarin](https://reader035.vdocuments.pub/reader035/viewer/2022081604/5879798a1a28ab37368b7ed3/html5/thumbnails/9.jpg)
課題 (注目すべきところ )
機能 UI の実装 ローカル DB の実装
生産性 プラットフォーム共通コードの量 開発ツールの使いやすさ
コストを抑えつつ、高パフォーマンスなアプリを開発したい。iOS 、 Android 両方とも同じ UI で開発したい。■課題
![Page 10: Xamarin](https://reader035.vdocuments.pub/reader035/viewer/2022081604/5879798a1a28ab37368b7ed3/html5/thumbnails/10.jpg)
サンプル開発できるだけコードを共通させたいため Xamarin.Forms で開発した。
共通コード
iOS 用コード Android 用コード
共通コード
共通コードUI
アプリロジックForms を使用しない Forms を使用する
![Page 11: Xamarin](https://reader035.vdocuments.pub/reader035/viewer/2022081604/5879798a1a28ab37368b7ed3/html5/thumbnails/11.jpg)
サンプル開発S プロジェクトで導入可能かの検証を目的とするため、似たような機能を持つアプリを開発。 ( 最後にデモをします。 )
AP サーバAPI でリストを取得
画面を取得する
![Page 12: Xamarin](https://reader035.vdocuments.pub/reader035/viewer/2022081604/5879798a1a28ab37368b7ed3/html5/thumbnails/12.jpg)
UIの実装Children
Label 2Label 1
・レイアウトに対して UI 要素を配置。・ UI 要素にアクションを記述。・レイアウトにレイアウトも配置可。
Cli
![Page 13: Xamarin](https://reader035.vdocuments.pub/reader035/viewer/2022081604/5879798a1a28ab37368b7ed3/html5/thumbnails/13.jpg)
UIの実装 (コード )
※ サンプルアプリのコードとは関係ありません
入れ子構造で要素を記述していくイメージ
![Page 14: Xamarin](https://reader035.vdocuments.pub/reader035/viewer/2022081604/5879798a1a28ab37368b7ed3/html5/thumbnails/14.jpg)
ローカルDBについて
ローカル DB 接続コード(Android 用 )
ローカル DB 接続コード(iOS 用 )
SQLite.Net-PLC(追加ライブラリ)
DB 操作共通ロジック
SQLite.Net-PLC(追加ライブラリ)
iOS デバイスに保存 Android デバイスに保存
![Page 15: Xamarin](https://reader035.vdocuments.pub/reader035/viewer/2022081604/5879798a1a28ab37368b7ed3/html5/thumbnails/15.jpg)
ローカルDBについて (コード )
※ サンプルアプリのコードとは関係ありません
SQLite.Net は ORM を搭載しているため簡単に記述できる
![Page 16: Xamarin](https://reader035.vdocuments.pub/reader035/viewer/2022081604/5879798a1a28ab37368b7ed3/html5/thumbnails/16.jpg)
生産性について (コード量 )今回は一部の DB 処理以外は共通コードとして記述できた。
共通コード
Android専用コードiOS専用コード
![Page 17: Xamarin](https://reader035.vdocuments.pub/reader035/viewer/2022081604/5879798a1a28ab37368b7ed3/html5/thumbnails/17.jpg)
生産性について (ツール )
・環境構築が簡単 → IDE のインストールのみ・ライブラリの追加が簡単 → IDE 上から NuGet で導入・ iOS と Android のコードを同時に管理できる・動作確認において iOS と Android の切り替えが設定1つでできる
XamarinStudioは使いやすい印象を受けた
![Page 18: Xamarin](https://reader035.vdocuments.pub/reader035/viewer/2022081604/5879798a1a28ab37368b7ed3/html5/thumbnails/18.jpg)
導入する上での問題点Xamarin.form を使用した場合に iOS と Android で UI が大きく異なる。
■Android ■iOS
![Page 19: Xamarin](https://reader035.vdocuments.pub/reader035/viewer/2022081604/5879798a1a28ab37368b7ed3/html5/thumbnails/19.jpg)
導入していくなら
依頼者 開発者
① ワイヤーをもらう
②Android と iOS の UI サンプルを作り それぞれのイメージを渡し合意を得る
Xamarin.forms だけでは iOS 、 Android 共にワイヤー通りの UI を実現するのは難しい。ある程度妥協してもらう必要がある。
![Page 20: Xamarin](https://reader035.vdocuments.pub/reader035/viewer/2022081604/5879798a1a28ab37368b7ed3/html5/thumbnails/20.jpg)
導入していくならもしくは、 Xamarin.form での開発を諦めて UI は独自に実装する。
共通コード
iOS 用コード Android 用コード
共通コード
共通コードUI
Forms を使用しない Forms を使用する
![Page 21: Xamarin](https://reader035.vdocuments.pub/reader035/viewer/2022081604/5879798a1a28ab37368b7ed3/html5/thumbnails/21.jpg)
おまけXamarin は工夫次第ではプラットフォーム毎のコードを共通化できる。例えば、ローカル DB を使うとき、公式のライブラリ SQLite.Net を使用した場合は iOS 、 Android の独自なコードを記述しなければならなかったが、 Akaveche という独自の DB 実装したオープンソースのライブラリがある。これを使用すれば iOS 、 Android 共通でローカル DB を使用できる。
![Page 22: Xamarin](https://reader035.vdocuments.pub/reader035/viewer/2022081604/5879798a1a28ab37368b7ed3/html5/thumbnails/22.jpg)
参考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](https://reader035.vdocuments.pub/reader035/viewer/2022081604/5879798a1a28ab37368b7ed3/html5/thumbnails/23.jpg)
ご清聴ありがとうございました