Xamarin(ザマリン)とは、クロスプラットフォームアプリ開発環境です。C#でAndroid/iOS/Macアプリを開発できます。

オープンソースのフレームワーク/Xamarinとは

Xamarin(ザマリン)とは、クロスプラットフォームアプリ開発環境です。C#でAndroid/iOS/Macアプリを開発できます。

目次

「Xamarin」基本情報
■概要
■「クロスプラットフォーム開発」とは
■基本説明
■経緯

主な特徴
■ネイティブアプリ開発
・ネイティブユーザーインターフェース
・ネイティブ機能アクセス
・ネイティブパフォーマンス
■コード共通化
■「Visual Studio」での開発
・C#でアプリを実装

主な機能
■クロスプラットフォームAPI「Xamarin.Essentials」
・主なAPI
・APIドキュメント

コンポーネント構成
■UIツールキット「Xamarin.Forms」
・XAMLによる定義
・高速レンダリング
■.NET Frameworkオープンソース実装「Mono」
■Android SDK「Xamarin.Android」
・アーキテクチャ
■iOS+Mac SDK「Xamarin.iOS&Xamarin.Mac」
・アーキテクチャ

Xamarin用開発ツール
■Remoted iOS Simulator for Windows
■Xamarin Inspector
■Xamarin Profiler

補足情報
■同様製品
■オフィシャルサイト
・オフィシャルサイト
・ライセンス情報
・ダウンロード

「Xamarin」基本情報

■概要

Xamarin(ザマリン)とは、クロスプラットフォームアプリ開発環境です。C#でAndroid/iOS/Macアプリを開発できます。

■「クロスプラットフォーム開発」とは

従来の開発手法の場合、「iOSアプリはSwiftで実装する」「AndroidアプリはJavaで実装する」などの必要があり、1つのアプリを開発するために、それぞれの環境ごとに実装しなければならない状況がありました。

クロスプラットフォーム開発環境「Xamarin」を使用すると、iOSアプリもAndroidアプリもC#で実装できます。ビジネスロジック部分を共通化できるため、効率的な開発を行えます。

■基本説明

Xamarinはクロスプラットフォーム開発環境です。

「ネイティブアプリ開発」「C#/.NET/Visual Studioを活用」「コード共通化」などの特徴があります。

■経緯

2016年2月、MicrosoftがXamarinを買収したことで、XamarinはVisual Studioにバンドルされることになりました。

主な特徴

■ネイティブアプリ開発

ネイティブユーザーインターフェース

Xamarinを使用して構築されたアプリには、標準のネイティブユーザーインターフェースコントロールが含まれます。

開発されたアプリは、開発者やエンドユーザーが期待するように動作します。

ネイティブ機能アクセス

Xamarinを使用して構築されたアプリは、インストール対象となるプラットフォームやデバイスによって公開されるすべての機能にアクセスできます。

これには「ARKit」や「Androidマルチウィンドウモード」のようなプラットフォーム固有の機能も含まれます。

ネイティブパフォーマンス

Xamarinを使用して構築されたアプリは、プラットフォーム固有のハードウェア高速化を利用して、ネイティブパフォーマンス対応にコンパイルされます。

実行時にコードを解釈するソリューションでは実現できない高速動作が可能です。

■コード共通化

Xamarinの開発では、ロジック部分(データベースアクセス、通信処理など)のコードを共通化でき、各プラットフォームで1つのコードベースを共有できます。ただし、各プラットフォーム特有部分については、それぞれでのコーディングが必要です。

同一の「言語」「API」「データ構造」を使用できることで、すべてのモバイル開発プラットフォームで75%以上のアプリコードを共有できます。

■「Visual Studio」での開発

Xamarinの開発は、Windows用統合開発環境「Visual Studio」、Mac用統合開発環境「Visual Studio for Mac」で行います。

どちらも、「UIデザイナー」「効率的なコード編集機能」「高度なデバッグ機能」「デプロイツール」などを備えており、「Visual Studioエコシステム」や「.NETライブラリ」を利用して効率的な開発を行えます。

→Microsoft →Visual Studio →Visual Studio IDE

→Microsoft →Visual Studio →Visual Studio for Mac

C#でアプリを実装

Xamarinでは、プログラミング言語「C#」で開発します。

C#が有する「同期/非同期機能」「LINQ」「ラムダ式」「効率的なメモリ管理」などの高度な機能を使用してスマートな開発を行えます。

主な機能

■クロスプラットフォームAPI「Xamarin.Essentials」

Xamarin.Essentials は、モバイルアプリケーション開発者向けのクロスプラットフォームAPIを提供します。

各プラットフォームやデバイスの固有機能に対するアクセスも可能です。

→Microsoft →Docs →Xamarin →Xamarin.Forms →Xamarin.Essentials

主なAPI

・3次元空間におけるデバイスの加速度データ(ジャイロスコープデータ)
・大気圧変化の監視
・デバイスのバッテリー情報に関するメソッドとプロパティ
・デバイスの位置情報取得
・デバイスの電話ダイヤラから電話をかける
・デバイスからSMSメッセージを送信
・デバイスのバイブ機能制御 など

APIドキュメント

→Microsoft →Docs →.NET →.NET API ブラウザー →Xamarin.Essentials

コンポーネント構成

Xamarinは大きく分けて、以下の4つのコンポーネントで構成されています。

■UIツールキット「Xamarin.Forms」

Xamarin.Formsは、.NET開発者向けの包括的なクロスプラットフォームUIツールキットを提供します。

「Androidアプリ」「iOSアプリ」「ユニバーサルWindowsプラットフォームアプリ」間で共有可能なネイティブユーザーインターフェースレイアウトを効率的に作成できます。

→GitHub →xamarin →Xamarin.Forms

XAMLによる定義

XAML(eXtensible Application Markup Language)とは、ユーザーインターフェースの定義に使用できる宣言型マークアップ言語です。

XAMLでは、コードではなく、マークアップで、Xamarin.Formsアプリケーションのユーザーインターフェースを定義できます。

MVVM(Model-View-ViewModel)アプリケーションのアーキテクチャでの使用に特に適しており、XAMLベースのデータバインディングによって、ビューモデルのコードにリンクされているビューを定義できます。

XAMLを利用すると、ユーザーインターフェースをコードで定義するよりも、シンプルに定義できます。

高速レンダリング

Xamarin.Formsは、メモリ使用量を削減し、レンダリングパフォーマンスを向上させる高速レンダラー機能を備えています。

■.NET Frameworkオープンソース実装「Mono」

Monoは、C#およびCommon Language RuntimeのECMA標準に基づく.NET Frameworkのオープンソース実装です。

クロスプラットフォームアプリケーションを簡単に作成できるように設計されたソフトウェアプラットフォームです。

→GitHub →mono/mono

■Android SDK「Xamarin.Android」

Xamarin.Androidは、.NET開発者向けのAndroid SDK機能を提供します。

Visual StudioでC#を使用して、ネイティブAndroid アプリを構築できます。

→GitHub →xamarin →xamarin-android

アーキテクチャ

Xamarin.Androidアプリケーションは、Mono実行環境内のAndroid仮想マシンで動作します。

Androidでは「オーディオ」「画像」「OpenGL」「テレフォニー」のようなシステム機能のほとんどはAndroid Java Apiを介してのみ公開されています。

ユーザーコードはさまざまなAPIを介して、対象デバイスの固有機能にアクセスできます。

■iOS+Mac SDK「Xamarin.iOS&Xamarin.Mac」

「Xamarin.iOS」と「Xamarin.Mac」は、.NET開発者向けSDK機能を提供します。

「Visual Studio for Mac」を使用して「Macアプリ」「iOSアプリ」「tvOSアプリ」「watchOSアプリ」などのネイティブアプリを構築できます。

これらのSDKを使用することで、「C#の柔軟性」と「.NETライブラリ」を利用して、効率的なアプリ開発を行えます。

→GitHub →xamarin →xamarin-macios

アーキテクチャ

Xamarin.iOSアプリケーションは、Mono実行環境内で動作します。

ユーザーコードはさまざまなAPIを介して、対象デバイスの固有機能にアクセスします。

Xamarin用開発ツール

Xamarinでの開発を効率化させるツールも提供されています。

■Remoted iOS Simulator for Windows

「Remoted iOS Simulator for Windows」を使用すると、Windowsに表示されるiOSシミュレータでVisual Studio 2017と一緒にアプリをテストできます。

→Microsoft →Docs →Xamarin →Tools →Remoted iOS Simulator for Windows

■Xamarin Inspector

「Xamarin Inspector」は、「対話的C#コード実行」「デバッグ」「診断」などの機能を提供します。

IDEのワークフローをデバッグするアプリと統合でき、実行中アプリに対して、UIのプロパティ検査などを行えます。

→Microsoft →Docs →Xamarin →Tools →Xamarin Inspector

■Xamarin Profiler

「Xamarin Profiler」は、「処理所要時間」「特定のメソッド使用法」「割り当てられているメモリに関する情報」などを収集するデータマイニングツールです。

これらのメトリックを分析することで、コード内の問題領域特定をサポートします。

→Microsoft →Docs →Xamarin →Tools →Xamarin Profiler

補足情報

■同様製品

同様な機能を提供する製品として、次のようなものがあります。

オープンソース製品:「Qt」「Electron」「Apache Cordova」など。

■オフィシャルサイト

オフィシャルサイト

→Microsoft →Visual Studio →Visual Studio Tools for Xamarin

ライセンス情報

Xamarinのライセンスは「MITライセンス」です。

詳細について、こちらを参照ください。
→Microsoft →Visual Studio →Visual Studio Tools for Xamarin [→オープン ソース]

ダウンロード

→Microsoft →Xamarin →Xamarin のインストール

 

参考元サイト

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

Xamarin最新TOPICS

【OSS】クロスプラットフォームモバイルアプリ開発プラットフォーム「Xamarin」vs「React Native」優位性比較(2018年10月03日 14:40)

クロスプラットフォームモバイルアプリ開発プラットフォームである「Xamarin」と「React Native」のそれぞれの優位性について解説。 Xamarinとは Xamarinは、2011年5月にリリースされ、後にMicrosoftによって買収された。Forbesによると、既存の500社のうち20%以上が利用...

Xamarin最新CLOSEUPコラム

  • 勉強会
  • OSSNEWSに広告を掲載しませんか?

facebook

twitter