Xamarinによるクロスプラットフォーム開発
Created by sekineka
アジェンダ
- Xamarinとは
- Xamarinでの開発
- Demo
- 既存開発との比較
- もっと便利に
- まとめ
アジェンダ
- Xamarinとは
- Xamarinでの開発
- Demo
- 既存開発との比較
- もっと便利に
- まとめ
一言で言うと
C#でアプリが作れるクロスプラットフォームエンジン
クロスプラットフォームエンジンとは
- ひとつのソースで複数の環境で動くアプリが作れる
- javascriptで書けるものとかC++で書ける物とか色々
- アプリの開発したことなくても作れたりする
良いところ
- UIを分けられる
- 既存開発との差が少なく学習コストが低い
- 重くない!
できること
- C#で各OSのAPIを叩く
- ビジネスロジックの共有
アジェンダ
- Xamarinとは
- Xamarinでの開発進め方
- Demo
- 既存開発との比較
- もっと便利に
- まとめ
前提条件
下記がインストール済み
- AndroidSDKとかJDKとか
- iOS SDKとかXcode
iOSアプリ開発
- 開発、ビルド、デバック
- Windows(VisualStudio)とMac
- Mac(Xamarin Studio)
- 画面構成
- iOS Designerでstoryboardやxib
- C#で動的に記述
- コード
Androidアプリ開発
- 開発、ビルド、デバック
- Windows(VisualStudio)
- Mac(Xamarin Studio)
- 画面構成
- コード
アジェンダ
- Xamarinとは
- Xamarinでの開発進め方
- Demo
- 既存開発との比較
- もっと便利に
- まとめ
アジェンダ
- Xamarinとは
- Xamarinでの開発進め方
- Demo
- 既存開発との比較
- もっと便利に
- まとめ
Xamarin
iOSとの比較
public partial class iOSViewController : UIViewController
{
public iOSViewController (IntPtr handle) : base (handle)
{
}
#region View lifecycle
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
// Perform any additional setup after loading the view, typically from a nib.
}
#endregion
}
Xamarin
Androidとの比較
public class MainActivity : Activity
{
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
SetContentView (Resource.Layout.Main);
}
}
ベンチマーク
Xamarin.Android
Android
通信
0.212秒
0.211秒
画面遷移
0.79秒
0.83秒
ストレージ読み込み
0.000695秒
0.000675秒
Xamarin
ベンチマーク
Xamarin.iOS
iOS
通信
0.229秒
0.238秒
画面遷移
0.08秒
0.07秒
ストレージ読み込み
0.000637秒
0.000519秒
アジェンダ
- Xamarinとは
- Xamarinでの開発進め方
- Demo
- 既存開発との比較
- もっと便利に
- まとめ
もっと便利に
Gradle Plugin
- 各プラットフォームの実行ファイル生成
- テスト自動化
もっと便利に
Nuget
- .Netのパッケージマネージャ
- mavenレポジトリとか、podsみたいなもの
- ライブラリ管理できる
- gradle対応しているか微妙
もっと便利に
MvvMCross
- プラットフォーム間での共有部分増える
- 入力後の画面の変化など
もっと便利に
Calabash と Xamarin Test Cloud
- テストコードを共通で使える
- クラウドサービスでたくさんの端末上でテスト出来る
Xamarin
まとめ
- 既存の経験を生かしつつ、クロスプラットフォームできる
- UI分けれるので各プラットフォームに最適化できる
- 共通割合が少ないのは、MvvMとかでカバー
- テストの共通化が地味に嬉しい