マジセミドライブ

ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。

OSS情報

2020.01.01

【OSS情報アーカイブ】Xamarin

【OSS情報アーカイブ】Xamarin

※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。

「Xamarin」とは

「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にバンドルされることになりました。

■オフィシャルサイト情報

オフィシャルサイト

→Microsoft →Visual Studio →Visual Studio Tools for Xamarin

ライセンス情報

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

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

ダウンロード

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

■同様製品

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

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

「Xamarin」の主な特徴

■ネイティブアプリ開発

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

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」「ラムダ式」「効率的なメモリ管理」などの高度な機能を使用してスマートな開発を行えます。

→OSSxCloudNews →オープンソースの言語/C#とは

■クロスプラットフォーム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」のコンポーネント構成

「Xamarin」のコンポーネント構成

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」用開発ツール

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

 

参考元サイト

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

この記事のタグ一覧

おすすめの記事

【IT用語解説】「 デジタルヒューマン 」とは😊

IT用語解説

2024.01.26

【IT用語解説】「 デジタルヒューマン 」とは😊

【IT用語解説】「 デジタルヒューマン 」として、「デジタルヒューマンとは何か?」「どのようにして作成できるのか?」「私たちの世界にどのような影響を与えているのか?」などについて、まとめています。

【AIツール実験室】チャットAI対抗「添削能力」選手権🏆

AIツール実験室

2023.12.27

【AIツール実験室】チャットAI対抗「添削能力」選手権🏆

各チャットAIの「添削能力」について比較確認をしています。 「ChatGPT4と同等の添削能力を発揮した無料チャットAI」にご注目ください。 また、 ChatGPTカスタマイズ機能「GPTs」を利用して作成した GPTs文章添削機能「添削師匠さん✍️」を紹介しています。 課金勢は試しに使ってみてください。

AIツール関連 記事リストポータル

AIツール

2023.10.05

AIツール関連 記事リストポータル

AI 関連の記事をまとめたポータルページです。