マジセミドライブ

ウェビナー関連のニュースや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

 

参考元サイト

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

この記事のタグ一覧

おすすめの記事

【デジタル寺田の3分用語解説】「企業によるベンダー、SIerへの 訴訟 」とは?〜日本通運がアクセンチュアを提訴〜🏢

デジタル寺田の3分用語解説

2024.11.25

【デジタル寺田の3分用語解説】「企業によるベンダー、SIerへの 訴訟 」とは?〜日本通運がアクセンチュアを提訴〜🏢

企業がベンダー(SIer)に対する 訴訟 の背景や原因を解説します。日本通運とアクセンチュアの125億円訴訟に加え、他の大規模な紛争事例も紹介します。プロジェクト管理や要件定義の重要性を具体例で説明し、成功への鍵を探ります。

【デジタル寺田の3分用語解説】「 経済産業省:コンテンツ制作のための 生成AI 利活用ガイドブック 」とは?📘

デジタル寺田の3分用語解説

2024.11.18

【デジタル寺田の3分用語解説】「 経済産業省:コンテンツ制作のための 生成AI 利活用ガイドブック 」とは?📘

経済産業省による「 生成AI 利活用ガイドブック 」は、企業やクリエイター向けに、安心して「生成AI」を利用するための、「指針」「実例」「注意点」を明示しています。「業務効率化」や「新しいアイデア創出」の支援を目的としています。

【デジタル寺田の3分用語解説】「 2029年問題 」とは?📅

デジタル寺田の3分用語解説

2024.11.18

【デジタル寺田の3分用語解説】「 2029年問題 」とは?📅

「 2029年問題 」とは、高校でのデジタル教育改革により、新入社員と既存社員間でデジタルスキル格差が拡大する懸念を指します。企業は早急に対応が求められています。この格差は、企業競争力や業務効率にも、影響を及ぼす可能性があります。