xamarin 101 ~環境構築からビルド・テストまで~

33
Xamarin 101 ~ 環環環環環環環環環 環環環環環 ~ 日日日日日日日日日日日日日 日日日日日日 日日日日日日日日日日日日 日日日日日日 日日日日日日日 日日 日日 ([email protected]) 日日日日日 : 2016 日 6 日 20 日

Upload: masaki-takeda

Post on 07-Jan-2017

2.381 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Xamarin 101 ~環境構築からビルド・テストまで~

Xamarin 101 ~ 環境構築からビルド・テストまで ~

日本マイクロソフト株式会社デベロッパー エバンジェリズム統括本部テクノロジー スペシャリスト武田 正樹 ([email protected])

最終更新日 : 2016 年 6 月 20 日

Page 2: Xamarin 101 ~環境構築からビルド・テストまで~

Agenda• Xamarin 基本の “キ”• 開発環境の構築• コーディング• デバッグ実行• UI テスト自動化• ユーザー ベータテスト• まとめ

2

Page 3: Xamarin 101 ~環境構築からビルド・テストまで~

Xamarin 基本の “キ”

3

Page 4: Xamarin 101 ~環境構築からビルド・テストまで~

C# で Android / iOS アプリ開発従来はターゲット OS ごとのスキル、開発言語、開発環境

4

統一されたスキル、開発言語、開発環境

Page 5: Xamarin 101 ~環境構築からビルド・テストまで~

例 : データバインドアプリケーション

5

iPhone 6 (実機)

Nexus 7 2013 (実機)iPad 2 (実機)

Page 6: Xamarin 101 ~環境構築からビルド・テストまで~

Xamarin.Forms で画面の共通化

6

Native UI• C# で UI 記述• プラットフォーム依存の機能を

多用する場合に最適

Xamarin.Forms• XAML / C# で UI 記述• プラットフォーム固有のコント

ロールにマッピングされる• 業務アプリなどプラットフォーム

依存機能がない場合に最適プラットフォーム固有機能

Page 7: Xamarin 101 ~環境構築からビルド・テストまで~

コード共有

7

Shared Projects• プロジェクトの一部として  

コンパイル• プラットフォーム固有機能には

ディレクティブを使用

Portable Class Libraries• 別のライブラリとしてコンパイ

ル• 単体テストやコードの可読性が

 高まる

Page 8: Xamarin 101 ~環境構築からビルド・テストまで~

C# から API を 100 % 利用可能

8

iOS API Android API

.NET API

Page 9: Xamarin 101 ~環境構築からビルド・テストまで~

Xamarin.iOS / Xamarin.Android

9

Xamarin.iOS• Ahead-of-Time コンパイラで でネイティブ ARM アセンブリを生成• C# から Object-C ライブラリのバインディング可能• Watchkit 対応済み• 最新 iOS SDK リリース同日サポートXamarin.Android• Mono ランタイム上での JIT 実行• Managed Callable Wrappers / Android Callable Wrappers: JNI • Android Wear 対応済み• 最新 SDK リリース後 1-3 ヶ月後にサポート

Page 10: Xamarin 101 ~環境構築からビルド・テストまで~

パフォーマンス

10

モノによるが、基本的にはネイティブと遜色ない• Xamarin でコンパイルされたパッケージサイズは    

ネイティブよりも大きくなる• Xamarin.Forms は、 Native UI よりも遅くなる傾向• パフォーマンスに関する記事 ( 英語のみ )• http://chrisrisner.com/articles/xamarin/performance

• パフォーマンスチューニング方法に関するリンク ( 英語のみ )• Xamarin.Android• Xamarin.iOS

Page 11: Xamarin 101 ~環境構築からビルド・テストまで~

開発環境の構築

11

Page 12: Xamarin 101 ~環境構築からビルド・テストまで~

12

Xamarin Studio for Mac

Visual Studiofor Windows

Page 13: Xamarin 101 ~環境構築からビルド・テストまで~

開発環境

13

OS Mac OS X Windows開発環境 Xamarin Studio Visual Studio

Xamarin for Visual StudioXamarin.iOS ○ ○

(Mac 機が必要 )Xamarin.Android ○ ○

Xamarin.Forms iOS, Android のみ

Android, Windows Phone, Windows(iOS は Mac 機が必要 )

Xamarin には、 Mac 版と Windows 版が存在

Page 14: Xamarin 101 ~環境構築からビルド・テストまで~

Mac OS X 上でのシステム要件

14

• iOS 開発環境は予め構築しておく必要あり• Android SDK は Xamarin Studio と同時にインストー

ル推奨環境 補足事項

OS OS X El Capitan (10.11) OS X Yosemite (10.10) 以上が必要

Xamarin.iOS iOS 9.2 SDK Xcode 7.2 を Mac App Store 経由でインストールする必要あり

Xamarin.Android Android 6.0 / API level 23

旧バージョンの SDK も必要に応じてインストールして利用可能

Page 15: Xamarin 101 ~環境構築からビルド・テストまで~

Windows 上でのシステム要件

15

• Visual Studio 2015 では、インストール時に Xamarin も一括インストール可能

推奨環境 補足事項

OS Windows 10Windows 7 以上。Xamarin.Forms での Windows 開発は、 Windows 8.1 以上

Visual Studio Visual Studio 2015

Xamarin.iOSVisual Studio 2012 以上 + Xamarin.iOS が利用可能なMac 機

Xamarin.Android Android 6.0 / API level 23 旧バージョンの SDK も必要に応じてインストールして利用可能

Page 16: Xamarin 101 ~環境構築からビルド・テストまで~

ライセンス

16

• Xamarin Studio for Mac での商用アプリ開発には、 MSDN Subscription が必要

• Windows 版は、 Visual Studio のライセンスに準じる

Xamarin for Visual StudioCommunityEdition

ProfessionalEdition

Enterprise Edition

Android, iOS, and Windows 間でのコード共有 ■ ■ ■

Native iOS, Android UI Designers ■ ■ ■Xamarin Forms ■ ■ ■

Professionalwith MSDN

Enterprise with MDSN

Xamarin Studio for Mac ■ ■

Page 17: Xamarin 101 ~環境構築からビルド・テストまで~

コーディング

17

Page 18: Xamarin 101 ~環境構築からビルド・テストまで~

Xamarin Designer for iOS

18

Page 19: Xamarin 101 ~環境構築からビルド・テストまで~

Android Designer

19

Page 20: Xamarin 101 ~環境構築からビルド・テストまで~

Xamarin Inspector & Workbook

20

Markdown で記述する文章とコードの混在環境• コードの変更箇所は即時にアプリ側に反映される• iOS, Android, Mac, WPF アプリケーションに対応 • スタンドアロンで実行可能

Page 21: Xamarin 101 ~環境構築からビルド・テストまで~

デバッグ実行

21

Page 22: Xamarin 101 ~環境構築からビルド・テストまで~

Visual Studio Emulator for Android

22

AOSP がベースのx86 高速イメージ がHyper-V 上で動作

様々なセンサーのシミュレーション

無料かつVisual Studio と一緒に簡単インストール

22

Page 23: Xamarin 101 ~環境構築からビルド・テストまで~

iOS Simulator for Windows

23

Windows 上で動作する iOS シミュレータ• ビルドと実行は Mac 機で行われる• https://developer.xamarin.com/guides/cross-platform/windows/ios-simulator/

Page 24: Xamarin 101 ~環境構築からビルド・テストまで~

Xamarin Profiler

24

iOS / Android アプリのプロファイル支援ツール• アロケーションと Time Profiler を利用可能• Windows 版では Android のみサポート

Page 25: Xamarin 101 ~環境構築からビルド・テストまで~

UI テスト自動化

25

Page 26: Xamarin 101 ~環境構築からビルド・テストまで~

iOS, Android アプリの UI テストも

26

• Xamarin Test Recorder で、 UI 自動テストをノンコーディング生成• Android / iOS アプリパッケージもサポート• Visual Studio 用 と OS X 用が提供• Visual Studio 版は Android のみサポートパッケージを指定して

操作記録操作のたびにコードが追加。 Asset も追加可能

https://www.xamarin.com/test-cloud/recorder

Page 27: Xamarin 101 ~環境構築からビルド・テストまで~

Xamarin Test Cloud

27

• Xamarin Test Recorder で作成した UI テストを実機上で実行• テストステップごとにスクリーンショットが保存• 実行には時間がかかるため、 CI での実行推奨

Page 28: Xamarin 101 ~環境構築からビルド・テストまで~

ユーザー ベータテスト

28

Page 29: Xamarin 101 ~環境構築からビルド・テストまで~

HockeyApp

29

アプリのリリース前ベータテスト支援サービス• Android 、 Cordova 、 iOS 、 OS X 、 Unity 、 Windows 、 Xamarin

などをサポート• アプリ内でのフィードバックの収集• クラッシュレポートやユーザーメトリックの収集• Xamarin Insights 統合予定

Page 30: Xamarin 101 ~環境構築からビルド・テストまで~

まとめ

30

Page 31: Xamarin 101 ~環境構築からビルド・テストまで~

まとめXamarin は「銀の弾丸」ではないが、モバイルアプリ開発効率を高められる  ツールセットが提供されている。

31

こんな方にお勧めです!• Object-C / Swift でコーディングしたくない方 ➡

Xamarin• ツールの力でとにかく効率化したい方 ➡ MSDN

Enterprise• iOS / Android 開発経験あり ➡ Xamarin Test Cloud

Page 32: Xamarin 101 ~環境構築からビルド・テストまで~

Xamarin ライセンス まとめ

32

CommunityEdition

ProfessionalEdition

Enterprise Edition

Android, iOS, and Windows 間でのコード共有

■ ■ ■

Native iOS, Android UI Designers ■ ■ ■Xamarin.Forms ■ ■ ■Xamarin Inspector Preview ■Xamarin Profiler Preview ■Xamarin Test Recorder Preview ■Professiona

lwith MSDN

Enterprise with MDSN

Xamarin Test Cloud 25% Off ■Xamarin Studio 商用ライセンス ■ ■

Page 33: Xamarin 101 ~環境構築からビルド・テストまで~

© 2016 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.