Xamarinによるクロスプラットフォーム開発



Xamarinによるクロスプラットフォーム開発

0 0


studydoc_20150312


On Github katsutomu / studydoc_20150312

Xamarinによるクロスプラットフォーム開発

Created by sekineka

アジェンダ

  • Xamarinとは
  • Xamarinでの開発
  • Demo
  • 既存開発との比較
  • もっと便利に
  • まとめ

アジェンダ

  • Xamarinとは
  • Xamarinでの開発
  • Demo
  • 既存開発との比較
  • もっと便利に
  • まとめ

一言で言うと

C#でアプリが作れるクロスプラットフォームエンジン

クロスプラットフォームエンジンとは

  • ひとつのソースで複数の環境で動くアプリが作れる
  • javascriptで書けるものとかC++で書ける物とか色々
  • アプリの開発したことなくても作れたりする

クロスプラットフォームで目指すところ

  • 短納期・多デバイス
  • バグを少なく、仕様差を少なく

問題点

  • UIが同じになる
  • 学習コスト高い
  • 重い!

そこで

良いところ

  • UIを分けられる
  • 既存開発との差が少なく学習コストが低い
  • 重くない!

できること

  • C#で各OSのAPIを叩く
  • ビジネスロジックの共有

API

実行モデル

できないこと

  • Write once, Run Anywhere

アジェンダ

  • Xamarinとは
  • Xamarinでの開発進め方
  • Demo
  • 既存開発との比較
  • もっと便利に
  • まとめ

前提条件

下記がインストール済み

  • AndroidSDKとかJDKとか
  • iOS SDKとかXcode

iOSアプリ開発

  • 開発、ビルド、デバック
    • Windows(VisualStudio)とMac
    • Mac(Xamarin Studio)
  • 画面構成
    • iOS Designerでstoryboardやxib
    • C#で動的に記述
  • コード
    • C#でiOSのAPIを叩く

Androidアプリ開発

  • 開発、ビルド、デバック
    • Windows(VisualStudio)
    • Mac(Xamarin Studio)
  • 画面構成
    • UI Designerでxml
    • C#で動的に記述
  • コード
    • C#でAndroidのAPIを叩く

アジェンダ

  • Xamarinとは
  • Xamarinでの開発進め方
  • Demo
  • 既存開発との比較
  • もっと便利に
  • まとめ

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とかでカバー
  • テストの共通化が地味に嬉しい

ありがとうございました