xamarin 101 ~環境構築からビルド・テストまで~
TRANSCRIPT
Xamarin 101 ~ 環境構築からビルド・テストまで ~
日本マイクロソフト株式会社デベロッパー エバンジェリズム統括本部テクノロジー スペシャリスト武田 正樹 ([email protected])
最終更新日 : 2016 年 6 月 20 日
Agenda• Xamarin 基本の “キ”• 開発環境の構築• コーディング• デバッグ実行• UI テスト自動化• ユーザー ベータテスト• まとめ
2
Xamarin 基本の “キ”
3
C# で Android / iOS アプリ開発従来はターゲット OS ごとのスキル、開発言語、開発環境
4
統一されたスキル、開発言語、開発環境
例 : データバインドアプリケーション
5
iPhone 6 (実機)
Nexus 7 2013 (実機)iPad 2 (実機)
Xamarin.Forms で画面の共通化
6
Native UI• C# で UI 記述• プラットフォーム依存の機能を
多用する場合に最適
Xamarin.Forms• XAML / C# で UI 記述• プラットフォーム固有のコント
ロールにマッピングされる• 業務アプリなどプラットフォーム
依存機能がない場合に最適プラットフォーム固有機能
コード共有
7
Shared Projects• プロジェクトの一部として
コンパイル• プラットフォーム固有機能には
ディレクティブを使用
Portable Class Libraries• 別のライブラリとしてコンパイ
ル• 単体テストやコードの可読性が
高まる
C# から API を 100 % 利用可能
8
iOS API Android API
.NET API
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 ヶ月後にサポート
パフォーマンス
10
モノによるが、基本的にはネイティブと遜色ない• Xamarin でコンパイルされたパッケージサイズは
ネイティブよりも大きくなる• Xamarin.Forms は、 Native UI よりも遅くなる傾向• パフォーマンスに関する記事 ( 英語のみ )• http://chrisrisner.com/articles/xamarin/performance
• パフォーマンスチューニング方法に関するリンク ( 英語のみ )• Xamarin.Android• Xamarin.iOS
開発環境の構築
11
12
Xamarin Studio for Mac
Visual Studiofor Windows
開発環境
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 版が存在
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 も必要に応じてインストールして利用可能
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 も必要に応じてインストールして利用可能
ライセンス
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 ■ ■
コーディング
17
Xamarin Designer for iOS
18
Android Designer
19
Xamarin Inspector & Workbook
20
Markdown で記述する文章とコードの混在環境• コードの変更箇所は即時にアプリ側に反映される• iOS, Android, Mac, WPF アプリケーションに対応 • スタンドアロンで実行可能
デバッグ実行
21
Visual Studio Emulator for Android
22
AOSP がベースのx86 高速イメージ がHyper-V 上で動作
様々なセンサーのシミュレーション
無料かつVisual Studio と一緒に簡単インストール
22
iOS Simulator for Windows
23
Windows 上で動作する iOS シミュレータ• ビルドと実行は Mac 機で行われる• https://developer.xamarin.com/guides/cross-platform/windows/ios-simulator/
Xamarin Profiler
24
iOS / Android アプリのプロファイル支援ツール• アロケーションと Time Profiler を利用可能• Windows 版では Android のみサポート
UI テスト自動化
25
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
Xamarin Test Cloud
27
• Xamarin Test Recorder で作成した UI テストを実機上で実行• テストステップごとにスクリーンショットが保存• 実行には時間がかかるため、 CI での実行推奨
ユーザー ベータテスト
28
HockeyApp
29
アプリのリリース前ベータテスト支援サービス• Android 、 Cordova 、 iOS 、 OS X 、 Unity 、 Windows 、 Xamarin
などをサポート• アプリ内でのフィードバックの収集• クラッシュレポートやユーザーメトリックの収集• Xamarin Insights 統合予定
まとめ
30
まとめXamarin は「銀の弾丸」ではないが、モバイルアプリ開発効率を高められる ツールセットが提供されている。
31
こんな方にお勧めです!• Object-C / Swift でコーディングしたくない方 ➡
Xamarin• ツールの力でとにかく効率化したい方 ➡ MSDN
Enterprise• iOS / Android 開発経験あり ➡ Xamarin Test Cloud
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 商用ライセンス ■ ■
© 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.