Xamarin を使用した DevOpsDevOps with Xamarin

Xamarin では、Android、iOS、および Windows を対象とするクロスプラットフォームのモバイル アプリを、C#、.NET、および Visual Studio を使用して作成することができます。Xamarin enables you to build cross-platform mobile apps targeting Android, iOS, and Windows using C#, .NET, and Visual Studio. Xamarin を利用すると、コードの大部分をプラットフォーム間で共有し、プラットフォーム固有にする必要のあるコードをごく一部に抑えることができます。Xamarin allows a large portion of code to be shared between platforms, with only a small percentage needing to be platform-specific.

最新のプラットフォーム向けのアプリ開発には、コードを記述するだけでなく、それ以外の多くのアクティビティが関係します。Developing apps for modern platforms involves many more activities than just writing code. これらのアクティビティは、アプリの完全なライフサイクルの中で DevOps (開発 + 運用) 期間になされるものあり、たとえば、作業のアジャイルな計画と追跡、コードの設計と実装、ソース コード リポジトリの管理、ビルドの実行、継続的に実行されるインテグレーションと展開の管理、テスト (単体テストと UI テストを含む)、開発環境と運用環境の両方におけるさまざまな形式の診断の実行、製品利用統計情報と分析によるアプリのパフォーマンスとユーザー動作のリアルタイムな監視などがあります。These activities, referred to as DevOps (development + operations), span the app's complete life cycle and include planning and tracking work, designing and implementing code, managing a source code repository, running builds, managing continuous integrations and deployments, testing (including unit tests and UI tests), running various forms of diagnostics in both development and production environments, and monitoring app performance and user behaviors in real time through telemetry and analytics.

Visual Studio、Azure DevOps Services、Team Foundation Server は、さまざまな DevOps 機能を提供しています。Visual Studio, together with Azure DevOps Services and Team Foundation Server, provides a variety of DevOps capabilities. これらの多くは、クロスプラットフォームのプロジェクトに完全に適用されます。Many of these are wholly applicable to cross-platform projects. Xamarin アプリでは特にそう言えます。C# と .NET で構築し、いくつかの DevOps ツールはそれらを中心に構築されているからです。This is especially true with Xamarin apps, because they're built with C# and .NET, around which some DevOps tools are built. その他のツールでは、ビルド環境およびランタイム環境との緊密な統合が必要です。Other tools require tight integration with build and runtime environments. Xamarin アプリは Windows 以外のプラットフォームでも実行でき、.NET の Mono 実装を使用しているため、Xamarin では特定の必要に合わせて専門ツールが提供されます。Because Xamarin apps run on non-Windows platforms and use the Mono implementation of .NET, Xamarin provides specialized tools for certain needs.

次の表は、Xamarin プロジェクトで動作する Visual Studio の DevOps 機能と制限がある機能を示しています。The following tables identify which DevOps features in Visual Studio you can expect to work well with a Xamarin project, and which ones have limitations. 各機能そのものの詳細については、リンク先のドキュメントを参照してください。Refer to the linked documentation for details on the features themselves.

アジャイル ツールAgile tools

参照リンク:アジャイル ツール、アジャイル プロジェクト管理についてReference link: About Agile tools and Agile project management

一般的なコメント: すべての計画機能と追跡機能は、プロジェクトの種類とコーディング言語には依存しません。General Comment: all planning and tracking features are independent of project type and coding languages.

機能Feature Xamarin でサポートされているかどうかSupported with Xamarin その他のコメントAdditional Comments
バックログとスプリントの管理Manage backlogs and sprints はいYes
作業の追跡Work tracking はいYes
チーム ルーム コラボレーションTeam room collaboration [はい]Yes
かんばんボードKanban boards [はい]Yes
進行状況のレポートと視覚化Report and visualize progress はいYes

モデリングModeling

参照リンク:アーキテクチャの分析とモデル化Reference link: Analyze and model architecture

デザイン機能は、コーディング言語に依存しないか、または C# のような .NET 言語と一緒に機能します。Design features are independent of coding language, or work with .NET languages like C#. コードに関連する側面については「ソフトウェア開発におけるアーキテクチャ図とモデル図の役割」を参照してください。See Roles of architecture and modeling diagrams in software development for what aspects are related to code.

機能Feature Xamarin でサポートされているかどうかSupported with Xamarin その他のコメントAdditional Comments
シーケンス図Sequence diagrams はいYes
依存関係グラフDependency graphs [はい]Yes
呼び出し階層Call hierarchy [はい]Yes
クラス デザイナーClass designer [はい]Yes
アーキテクチャ エクスプローラーArchitecture explorer [はい]Yes
UML 図 (ユース ケース、アクティビティ、クラス、コンポーネント、シーケンス、および DSL)UML diagrams (use case, activity, class, component, sequence, and DSL) [はい]Yes
レイヤー図Layer diagrams [はい]Yes
レイヤー検証Layer validation はいYes

コードCode

機能Feature Xamarin でサポートされているかどうかSupported with Xamarin その他のコメントAdditional Comments
Team Foundation バージョン管理 (TFVC) または Azure Repos を使用するUse Team Foundation Version Control (TFVC) or Azure Repos [はい]Yes
Azure Repos で Git を使用した作業の開始Getting started with Git in Azure Repos [はい]Yes
コード品質の向上Improve Code Quality [はい]Yes
コード変更およびその他の履歴の検索Find code changes and other history [はい]Yes ただし、実行時まで実装が解決しない、プラットフォームに固有の境界をまたぐ場合を除きます。Except across platform-specific boundaries where the implementation isn't resolved until run time.
コード マップを使用してアプリケーションをデバッグするUse code maps to debug your applications はいYes

ビルドBuild

参照リンク:Azure PipelinesReference link: Azure Pipelines

機能Feature Xamarin でサポートされているかどうかSupported with Xamarin その他のコメントAdditional Comments
オンプレミス TFS サーバーOn-premises TFS server はいYes ビルド コンピューターに Xamarin がインストールされている必要があります。iOS 用にビルドするには、OSX コンピューターにリンクできる必要があります。Build machines must have Xamarin installed and can be linked to an OSX computer to build for iOS. TFVC の使用」を参照してください。See Use TFVC
Azure Pipelines にリンクされたオンプレミスのビルド サーバーOn-premises build server linked to Azure Pipelines [はい]Yes 手順については、「Build and release agents」 (ビルド エージェントとリリース エージェント) を参照してください。See Build and release agents for instructions.
Azure Pipelines のホスト コント ローラー サービスHosted controller service of Azure Pipelines はいYes Build your Xamarin app」 (Xamarin アプリのビルド) を参照してください。See Build your Xamarin app.
事前スクリプトと事後スクリプトによるビルド定義Build definitions with pre- and post-scripts はいYes
継続的な統合 (ゲート チェックインを含む)Continuous integration including gated check-ins はいYes Git としての TFVC へのゲート チェックインのみ、チェックイン モデルではなく、プル要求モデルで機能します。Gated check-ins for TFVC only as Git works on a pull-request model rather than check-ins.

テストTest

機能Feature Xamarin でサポートされているかどうかSupported with Xamarin その他のコメントAdditional Comments
テストの計画、テスト ケースの作成、およびテスト スイートの編成Planning tests, creating test cases and organizing test suites [はい]Yes
手動テストManual testing [はい]Yes
テスト マネージャー (テストの記録と再生)Test Manager (record and playback tests) はいYes Windows デバイスと Android エミュレーター (Visual Studio からのみ)。Windows devices and Android emulators only from Visual Studio.
コード カバレッジCode coverage 適用なしn/a
コードの単体テストUnit test your code はいYes Windows と Android を対象にする場合は、組み込みの MSTest ツールを使用できます。For Windows and Android targets, the built-in MSTest tools can be used. Windows、Android、および iOS で単体テストを実行するには、Xamarin では NUnit が推奨されています。To run unit tests on Windows, Android, and iOS, Xamarin recommends NUnit. TFVC の使用」を参照してください。See Use TFVC.
UI オートメーションを使用してコードをテストするUse UI automation to test your code Windows のみWindows only Visual Studio の UI テスト レコーダーは Windows のみです。Visual Studio's UI test recorder is Windows only. すべてのプラットフォームについては、Xamarin.UITest を参照してください。For all platforms, see Xamarin.UITest.

コード品質の向上Improve code quality

参照リンク:コード品質を向上します。Reference link: Improve Code Quality

機能Feature Xamarin でサポートされているかどうかSupported with Xamarin その他のコメントAdditional Comments
マネージド コードの品質の分析Analyze managed code quality [はい]Yes
コード クローン検出を使用した重複コードの検出Find duplicate code by using code clone detection [はい]Yes
マネージド コードの複雑さと保守性の測定Measure complexity and maintainability of managed code [はい]Yes
パフォーマンス エクスプローラーPerformance Explorer いいえNo 使用して、 Xamarin Profiler Visual Studio for Mac を代わりにします。Use the Xamarin Profiler through Visual Studio for Mac instead. Xamarin プロファイラーは現在プレビュー期間中であり、Windows を対象にした場合はまだ動作しないことに注意してください。Note that the Xamarin Profiler is currently in preview and does not yet work for Windows targets.
.NET Framework のメモリ分析の問題Analyze .NET Framework memory issues いいえNo Visual Studio ツールには、プロファイリング用の Mono フレームワークへのフックはありません。Visual Studio tools do not have hooks into the Mono framework for profiling.

リリース管理Release management

参照リンク:ビルドし、リリース パイプラインを Azure と TFSReference link: Build and release in Azure Pipelines and TFS

機能Feature Xamarin でサポートされているかどうかSupported with Xamarin その他のコメントAdditional Comments
リリース プロセスの管理Manage release processes [はい]Yes
スクリプトによるサイドローディング用のサーバーへの配置Deployment to servers for side-loading via scripts はいYes
アプリ ストアへのアップロードUpload to app store PartialPartial 一部のアプリ ストアに対して、このプロセスを自動化することができる拡張機能が使用できます。Extensions are available that can automate this process for some app stores. たとえば、Google Play の拡張機能については、Azure DevOps Services の拡張機能を参照してください。See Extensions for Azure DevOps Services; for example, the extension for Google Play.

HockeyApp による監視Monitor with HockeyApp

参照リンク:HockeyApp による監視Reference link: Monitor with HockeyApp

機能Feature Xamarin でサポートされているかどうかSupported with Xamarin その他のコメントAdditional Comments
クラッシュ分析、製品利用統計情報、およびベータ版の配布Crash analytics, telemetry, and beta distribution [はい]Yes