Xamarin
Xamarin(ザマリン)社が開発したクロスプラットフォームアプリ開発環境のこと。1つのコードから、異なるOSに対応するソフトウェアを構築することができる。
※Xamarin社: 2011年5月 Mono、MonoTouch、Mono for Androidの開発者により設立
2016年2月 マイクロソフトが買収
2024年5月1日でサポートが終了となります。後継は.NET MAUIへ
Xamarinのサポート最終バージョン:
・Xcode 14(iOS 16/iPadOS 16/macOS 13)
・Android 13
Xamarinから.NET MAUIへの移行などに関するご相談もお受けしております。
複数のネイティブアプリ開発を1つのプログラムへ
《従来のネイティブアプリ開発》
アプリ | iOS | Android |
---|---|---|
言 語 | Objective-C Swift |
Java |
開発環境 | Xcode | Android Studio Eclipse |
開発OS | Mac | Windows Mac |
iOS・Android両方のスキル・環境が必要となり、時間もコストも掛かってしまいます。
《Xamarinによるネイティブアプリ開発》
アプリ | iOS & Android |
---|---|
言語 | C# |
開発環境 | Visual Studio(Windows) Xamarin Studio(Mac) |
開発OS | Windows Mac |
クロスプラットフォーム開発が可能であるため、iOS、Androidのアプリ開発のノウハウやスキルをそのまま活かせます。
クロスプラットフォーム開発の導入メリット
Xamarin は、.NET を使用して、iOS、Android、Windows 向けの最新で高性能なアプリケーションをビルドするためのオープンソースのプラットフォームです。 Xamarin を使用すると、開発者はプラットフォーム間でアプリケーションの 9割り近くを共有できます。 これにより、開発者はすべてのビジネス ロジックを 1 つの言語で記述して、各プラットフォームでネイティブのパフォーマンスとルック アンド フィールを実現できます。
アプリ開発において、iOS、Androidなどの各OS向けに同じ仕様のソフトウェアをそれぞれ別に開発するのは、重複する作業も多く、コストも増大しがちです。またリリース後のメンテナンスやOSのバージョンアップにも都度対応するのは負担も掛かかります。
そこで、複数のOS上でも同じ仕様のソフトウェアを動作させるのが、クロスプラットフォーム開発です。
クロスプラットフォーム開発では、UIなどのOS依存部分と、ロジックなどの非OS依存部分を分けて開発する手法です。 従来の開発ではOS毎にそれぞれ開発する必要がありましたが、クロスプラットフォーム開発では、非OS依存部分を共通化することで、スピーディーに効率よくアプリを開発することができます。
クロスプラットフォーム開発の導入メリット
- 開発量の削減・開発効率化
一般的に共通化した設計で40%~70%のソースコード削減が可能とされています。
設計の工夫により、更なる共通化も実現可能となります。 - メンテンナンス性アップ
設計・ソースコードの共通化により、機能追加や修正が行いやすく、開発費用の削減および、保守性と品質向上が期待できます。 - 開発体制
エンジニアが複数のプログラム言語を習得する必要がなく、単一の言語を使用して、マルチOS対応アプリが作成可能になるため開発体制の構築が容易となります。
ターゲットとなるプラットフォームに応じて、さまざまな開発環境が用意されています。
Xamarin
開発会社 | Microsoft |
---|---|
言語 | C#, F# |
開発環境 | Visual Studio |
プラットフォーム | iOS, Android, Windows, Mac (Web, Linux, Tizen) |
Unity
開発会社 | Unity Technologies |
---|---|
言語 | C# |
開発環境 | Visual Studio, JetBrains Rider |
プラットフォーム | iOS, Android, Web, Windows, Mac, Linux, PlayStation 4, PlayStation Vita, Nintendo Switch, Nintendo 3DS, XBox One |
Flutter
開発会社 | |
---|---|
言語 | Dart |
開発環境 | Android Studio, IntelliJ IDEA, Visual Studio Code |
プラットフォーム | iOS, Android, Web, Windows, Mac, Linux |
React Native
開発会社 | |
---|---|
言語 | JavaScript, TypeScript |
開発環境 | Nuclide, Visual Studio Code |
プラットフォーム | iOS, Android, Web (,Windows) |
Rad Studio
開発会社 | Embarcadero |
---|---|
言語 | C++, Delphi(ObjectPascal) |
開発環境 | RAD Studio, C++ Builder, Delphi |
プラットフォーム | Windows, Android, iOS, macOS, Linux |
Xojo
開発会社 | Xojo,Inc |
---|---|
言語 | Xojo(BASIC) |
開発環境 | Xojo |
プラットフォーム | Windows, macOS, Linux, Web, Raspberry Pi, iOS |
まとめ
- 開発や維持コストを削減可能
- 作業効率が大幅にアップ
- メンテナンスが楽
- プログラムの共通化で品質向上