クロスプラットフォーム対応表

# はじめに

**内容の保証はしません。**

クロスプラットフォーム対応について、さっと調査した記録。
AIにざっと調べてもらい一部を裏取りと修正した。
すべての裏取りはしていないので間違いもあるはず、そのため参考程度にしてください。

可能かどうかだけの表なので、開発・リリースの難易度・安定性・セキュリティ・向き不向きの濃度などは不明。
理屈の上では可能だが実際は誰も採用しないみたいなのも混ざってそうな気がします。

疑問に思って裏取りしたもの。
・SwiftでWindowsやAndroidの開発は可能である。
・MAUIでLinuxの開発は可能である。（ただしConsoleアプリのみ可能らしい）


# クロスプラットフォーム対応表
## 汎用

| ツール/フレームワーク/言語        | Windows | Mac  | Linux | iOS  | Android | WebApp  |
|-------------------------------|---------|------|-------|------|---------|------|
| **.NET MAUI**       | ◎       | 〇    | 〇     | 〇    | 〇       | ×    |
| **Swift**                     | 〇       | ◎    | 〇     | ◎    | 〇       | 〇    |
| **Flutter**                   | 〇       | 〇    | 〇     | 〇    | ◎       | 〇    |
| **Kotlin Multiplatform**      | 〇       | 〇    | 〇     | 〇    | 〇       | 〇    |
| **React Native**              | 〇       | 〇    | 〇     | 〇    | 〇       | 〇    |
| **Java**                      | 〇       | 〇    | 〇     | 〇    | 〇       | 〇    |
| **Python Kivy**                    | 〇       | 〇    | 〇     | 〇    | 〇       | 〇    |
| **Qt**                        | 〇       | 〇    | 〇     | 〇    | 〇       | 〇    |
| **Apache Cordova**                       | 〇       | 〇    | 〇     | 〇    | 〇       | 〇    |
| **Electron**                  | 〇       | 〇    | 〇     | ×    | ×       | 〇    |
| **Native PHP**                       | 〇       | 〇    | 〇     | ×    | ×       | 〇    |

◎：OSとツールのオーナーが同じもの

## ゲーム特化

| ツール/フレームワーク/言語        | Windows | Mac  | Linux | iOS  | Android | WebApp  | Switch | PS5  |
|-------------------------------|---------|------|-------|------|---------|------|--------|------|
| **Unity**                     | 〇       | 〇    | 〇     | 〇    | 〇       | 〇    | 〇      | 〇    |
| **Unreal Engine**             | 〇       | 〇    | 〇     | 〇    | 〇       | 〇    | 〇      | 〇    |
| **Godot Engine**              | 〇       | 〇    | 〇     | 〇    | 〇       | 〇    | 〇      | 〇    |
| **GameMaker**                 | 〇       | 〇    | 〇     | 〇    | 〇       | ×    | 〇      | 〇    |
| **cocos2d-x**                 | 〇       | 〇    | 〇     | 〇    | 〇       | 〇    | 〇      | ×    |
| **Phaser**                    | 〇       | 〇    | 〇     | ×    | ×       | 〇    | ×      | ×    |

# 用語のざっくり解説

下記はAI出力をコピペ。


.NET MAUI: Microsoftが提供するクロスプラットフォームフレームワークで、モバイルとデスクトップに強み。コンソールへの対応なし。
Swift: Appleが開発したプログラミング言語で、iOSやmacOSの開発に強み。
Flutter: Google開発のUIフレームワークで、主にモバイルとWebに対応。
Kotlin Multiplatform: Kotlinを使用し、複数のプラットフォームで動作するアプリケーションを開発可能。
React Native: Facebook開発のモバイルアプリケーションフレームワークで、Web版のReactを基にし、モバイルとWebに対応。
Java: 汎用プログラミング言語で、多くのプラットフォームで動作可能。
Python Kivy: GUIアプリケーションの開発に使用されますが、モバイルでは少し制約があります。
Qt: クロスプラットフォームアプリケーション開発フレームワーク。デスクトップとモバイルに強み。
Apache Cordova: モバイルアプリケーション開発に強みがあり、Web技術を用いたクロスプラットフォーム開発が可能です。
Electron: デスクトップアプリケーション開発に強み。JavaScript、HTML、CSSを使用。
PHP: Web開発に特化したサーバーサイドスクリプト言語。主にWebで使用。

Unity: 高度なゲーム開発プラットフォームで、多くのプラットフォームに対応。特定のライセンスでSwitchやPS5にも対応。
Unreal Engine: 高機能なゲームエンジンで、全ての主要プラットフォームをカバー。
Godot Engine: オープンソースのゲームエンジンで、多くのプラットフォームに対応。
GameMaker: 主に2Dゲーム開発に使用され、SwitchやPS5にも対応可能。
cocos2d-x: オープンソースのゲームフレームワークで、多くのプラットフォームで2Dゲームを開発可能。
Phaser: HTML5ゲームフレームワーク。主にWebブラウザ向けゲームに使用。


# 所感
デスクトップ系OS（Windows,Mac,Linux）へのリリースはすべてが〇になっているが疑わしい。開発とデバッグできることをもって〇にされている気もする。
ゲーム系はマルチプラットフォーム需要が強いせいか、対応範囲が広い。
裏で低級言語（C/C++）で動作しているものは、クロスプラットフォーム対応に強そう。
スマホ普及以前はJavaVMがクロスプラットフォーム代表面していた気がする。
業務系用途の場合は、.NET MAUI、Swift、Flutterが採用有力候補か？（大企業かつOSオーナーであるため。）


# Googleトレンド

Web上のトレンド比較するときに参考になる。

https://trends.google.com/trends/explore?cat=13&date=today%205-y&q=Flutter,React%20Native,MAUI,Unity,%2Fm%2F025wnp

# 参考

https://nowokay.hatenablog.com/entry/2023/02/12/192249