質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

意見交換

クローズ

17回答

3189閲覧

クロスプラットフォームでのネイティブアプリ開発環境でより良いものを探しています

user10

総合スコア37

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

0グッド

2クリップ

投稿2023/11/21 06:25

0

2

実現したいこと

・window、android、iosで少ない手間や変更で複数のプラットフォームで同様の動作すること
・自由度が高い
・日本での利用者が多い(web上の情報を参考にして開発したいため)
上記を踏まえて向いている開発環境を教えていただきたいです。

その他にもなにか大きな利点がある場合、こういった事も踏まえるといいよ
ということもあればぜひ教えていただきたいと思います。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

回答17

#1

can110

総合スコア38339

投稿2023/11/21 06:29

Claudeの回答

ご要望のように、Windows/Android/iOSで同じコードを複数のプラットフォームで動作させるためには、クロスプラットフォームのフレームワークを利用するのが良いでしょう。

多くの日本の開発者が利用しているのがXamarinです。C#でコーディングでき、同じソースコードでWindows/Android/iOSアプリが作成できます。Microsoftが提供しているのでドキュメントも豊富です。

React Nativeも人気のクロスプラットフォームフレームワークです。JavaScriptで開発できます。開発速度が速く、自由度も高いのが特徴です。コミュニティも活発なので情報が豊富にあります。

Flutterもグーグルが提供するクロスプラットフォームフレームワークで、最近注目されています。Dart言語を使用します。高速な開発ができ、UIも綺麗に実装できる利点があります。

この3つのフレームワークを検討して、言語の好みや機能面での要件を考慮して選択するのが良いと思います。特に日本の開発者コミュニティのサポートがあるXamarinがおすすめです。React NativeやFlutterも汎用性が高く、今後さらに使われる可能性が高いと思います。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#2

user10

総合スコア37

投稿2023/11/21 06:41

ClaudeはXamarinを一番に推しているといった感じですかね
「一番向いている開発環境一つだけ教えていただきたいです。」って質問すると
Chat gptとBingはFlutterに絞るようです。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#3

yambejp

総合スコア116443

投稿2023/11/21 06:43

そもそもどういう動作が必要なアプリかがわからないとなんとも言えないですよね
.NET、JAVA Kotlin Groovy Scala、Dart/Flutter あたりはマルチが売りで、
ゲームに特化するならunityとかでよいような気もします

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#4

user10

総合スコア37

投稿2023/11/21 06:51

具体的にはそこまで決まっていないのですが、コピーペーストできないような文字を画面から検出してそれを扱いたいという感じですね。フォアグランドの別のアプリとかに割り込むとかそういった処理も考えてます。
ですのでunityでのメリットはあまりないかなと現状でははじけます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#5

yambejp

総合スコア116443

投稿2023/11/21 07:00

unityでのメリットはあまりないかな

ご認識のとおり、ゲームじゃなければunityの出番は少ないでしょうね

フォアグランドの別のアプリとかに割り込む

そうなるとOSごとのアプリの実装方法なんてバラバラでしょうから
マルチプラットフォームというより各プラットフォームに特化したアプリをつくって
起動OSによって切り替えるみたいな処理では?
オーバーヘッドが大きいし、むしろ各OS用に別々にリリースした方がよいような・・・

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#6

user10

総合スコア37

投稿2023/11/21 07:11

そこは部分的にはバラバラでも致し方ないので処理を分けるような書き方にするしかないですね。
その後のデータの扱いなどは共通にすると思います。
その部分がどのような規模になるかは現状未定であるため、少ないと見積もれれば特化するのが妥当かもしれませんが
開発状況次第で膨らむ可能性が大いにあるのです。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#7

YOshim

総合スコア1085

投稿2023/11/24 05:28

ゲーム開発ならUnity、その他はMAUIですね。
この組み合わせ、どちらもC#で書けるというメリットがあります。
C#さえ勉強すれば全てのプラットフォームのアプリが開発できます。

*Xamarinは2024年にサポート終了し、MAUIという後継?のフレームワークに移行。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#8

user10

総合スコア37

投稿2023/11/24 06:34

Flutterを少し触り始めたんですけどyamabeさんの言う通り、スクリーンショット一つとるようなちょっとしたものを作るにしても結局ネイティブコード?を個々に合わせて扱わないといけないことに気づくと途端に面倒って思ったんですよね。

そこで、YOshimさんのいうMAUIのことを少し調べました。

.NET MAUI は、Android、iOS、macOS、Windows の各 API を 1 つの API に統合することで、「1 度書けばどこでも動く」という開発者エクスペリエンスを実現すると同時に、それぞれのネイティブ プラットフォームのあらゆる側面に深くアクセスできるようにします。
https://learn.microsoft.com/ja-jp/dotnet/maui/what-is-maui?view=net-maui-8.0

というのはスクリーンショットを取るということを例にすると各々のプラットフォームに分けて処理までしてくれるというのであれば理想的には思えますね。
ただ現状使い方みたいな資料は少ない気がします。Xamarinを学習してれば間違いはないといった感じでしょうか

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#9

omanuke

総合スコア109

投稿2023/11/28 02:26

Xamarinは数年実案件でゴリゴリ使っていました。
.MAUIは追っていないのですが、XamarinではネイティブOSのAPIをラップしているためOSの機能を触る場合でもC#で開発できる場面が多く、またネイティブのコードの呼び出しも可能なのでそのような連携をしたい場合には有力な候補かとは思います。後継の.MAUIでもおそらくその辺については変わらないのではないかと思います。

Flutterは聞き齧りですが、そのような場合にはネイティブの開発言語で機能を実装しそれと連携する必要があったと思いますので面倒は増えると思います。

ReactNativeはわからないのですがおそらくFlutterと同じような感じになるのではないでしょうか。

ちょっと気になったのはフォアグラウンドの別のアプリの処理に割り込むなどと言ったことは可能でしょうか?少なくともAndroidやiOSでは無理なのでは・・・と思いましたがいかがでしょう

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#10

hirokin1234

総合スコア11

投稿2023/11/28 05:56

横から失礼いたします。

私も質問者さまと同じように、クロスプラットフォーム開発で、より効率的で少ない工数で実現できるフレームワークをここ数ヶ月くらい触っては次のものを探して…と段階を経て私なりの結論を書きます。

もちろんですが、他の回答者さまと同じで、言語としてはC#が最もクロスプラットフォーム開発に向いているというのは言うまでもないと思いますが、Qt(C++)というのもあります。

ただし、Qtを組み込んだアプリケーションを販売する場合は、ライセンス料を払わないといけなく、これが個人ではだいぶ高額なので、私はこの時点で選択肢から外れました…。

現時点で、私がたどり着いた答えです↓
・Avalonia UI(C#)
・Xamarin, MAUI (C#)

Avalonia UIは、使ってみましたが、非常に良いと感じました。
なんと、同じプロジェクトファイルで、Windows, Macともに動作します。
(iOSやAndroidは試してませんが、対応してるみたいです)

UIファイルは、WPFでいうXamlと全く同じ記述方法で書きます。
MAUIも構文は同じですが、WPF系のプロパティ名が変更されていたり、WPFよりも細かい部分をいじれなかったりします。
たとえば、MAUIではMacOSでウィンドウサイズの指定が未だにできません…。

私はどちらかというと、スマホ向けではなく、WinとMacで同じ動作することを基準にさがしていたので、スマホ向け優先であれば問題ないかと思います。

あと、AvaloniaUIはWPFをもとに作られているので、MAUIよりも各コントロールに対して細かい動作、デザインで書くことができます。

しかし、AvaloniaUIの欠点なのですが、
グラフィックスやゲームなどのレスポンスを重視するツールやアプリにはあまり向いてません。
AvaloniaUIはSkiaというクロスプラットフォーム向けのエンジンを採用してますが、ドラッグなどのレスポンスがネイティブコンパイルされたアプリと比較するとだいぶ遅延があり、モッサリします。

データを操作するためのUIを作ったり、Webページのようなふるまいを実装するなら、ダントツで適しています。
WinとMacで比較しましたが、同じSkiaエンジン上で動いてるので見た目の違いが全くありません。

個人の好みもありますので、最も良いのはご自身で気になるフレームワークを使ってみて、プログラミングで実装したい重要な部分が機能するか?を調べてみるのが最もいいのではないでしょうか。
その中で、自然と除外されるものがあると思います。

ぜひ参考になれたら幸いです。
それでは失礼いたしますm(_ _)m

あ、最後にですが、FlutterはC#で書けないので、私の好みから除外してますのでご了承を…。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#11

jijii39

総合スコア11

投稿2023/11/28 06:43

最近はTauriオンリーです。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#12

hirokin1234

総合スコア11

投稿2023/11/28 07:10

編集2023/11/28 07:11

すみません、補足します。
私はわりとCの構文に近い言語が好きで結構偏った回答になってしまいました。
C#はコンパイルもしますし、ネイティブに近いパフォーマンスにこだわらなければ、WEB系の言語でもいいと思います。
あと、日本の利用者が多いという点ではAvaloniaUIは適さないかもしれませんね。
しかし、理解すればとても開発がしやすく全く同じコードで動きます。

今ではAIを利用できるので、AIに聞くだけで海外から収集された学習データも参照できます。
そういった意味で、私は結構助かって利用してます。

やはり、調べて使用してみるのが一番いいかもしれません。
フレームワークは使用できる言語も分かれますし、かなり個人の好みがあると思いますので..。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#13

user10

総合スコア37

投稿2023/11/28 08:02

編集2023/11/28 09:14

omanukeさん
ReactNativeもそうでしたね・・
結局、C#での開発が一番今後や広く見据えて無難なんですね。

”フォアグラウンドの別のアプリの処理に割り込むなどと言ったことは可能でしょうか”
正確には覚えてないですがAndroidでは別のアプリやブラウザの文字を読み取ることができるアプリがありました
その程度の割り込みという認識でなら可能ではないですか

hirokin1234さん
C++はwindowsのネイティブ機能を扱えるからそれもありだと思ってはいたんですよね。
結局ライセンス料とかかかってしまうと多くの人が尻込みするので開発してる人は少なくなる=
難しくなってしまうんですよね。
「同じプロジェクトファイルで、Windows, Macともに動作します」
UI部分だけでも全くコードなど変えなくていいのならかなりいいですね。
あと、osを変えても一貫してデザインを保てるとか?これはreacrnativeで苦しんだ部分なんですよね。

jijii39さん
それは知らなかったです。結構新しいやつみたいですね。
軽量なのと処理が速いのが強みとか、クロスプラットフォームがどの程度のものなのか調べてみます。

軽く調べましたが結局は全てでネイティブ機能の使うには結局は固有の実装が必要みたいです。
そこらへん解釈してくれてってわけにはいかないようですね。
共用部分をいかに楽に構築できるかという点を考えると、皆さんの意見は非常に参考になりますね。
すでに何をまず学ぶか方向性は決まりつつあります。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#14

standard-soft

総合スコア197

投稿2023/11/28 14:21

編集2023/11/28 15:30

こういうところで、Delphi/C++Builderというのは、相当昔からクロスプラットフォームを実現できているのに紹介されないというのは、なんでだろうとは思いますが
開発環境のライセンス料の問題なんですかね。
無料版もあるのに。

RAD Studio: 概要 - エンバカデロ・テクノロジーズ
https://www.embarcadero.com/jp/products/rad-studio

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#15

user10

総合スコア37

投稿2023/11/29 05:40

編集2023/11/29 05:41

standard-softさん
ありがとうございます。
僕は個人開発なんで個人開発からの視点でしかも個人的な見解しかのべられないですが、
僕は例えばなにかをさせるソフトウェアを探すときは、最初から開発環境を絞らず目的から検索します。
そういったものに多くヒットしたものが向いているのかなあと判断してしまうので、
調べて掛からないものは自然と候補から外れてしまうんですよね。
あとおっしゃる通りラインセンス料ですかね。
所詮、個人の開発でその範疇なら無料ですよってのもわかるんですけど、だったら別探すかなということは良くあります。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#16

YOshim

総合スコア1085

投稿2023/12/15 01:35

有料のサービスは優良であることは理解できるのですが、いかんせんデバッグ時に情報が少ないのが面倒です。
MAUIのような新しいサービスでもそれは同じことが言えます。

FlutterやReact Nativeの利点はそこですね、ググればすぐにデバッグに有益な情報が見つかります。
まぁFlutterもReactもいじった経験ありますが、ビジネスツールとかマッチングアプリのような枠に嵌ったアプリを作るには便利ですが、ゲーム系はきついなぁ(というか無理)という感じです。

ゲームはやっぱりUnity!

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#17

nururi

総合スコア136

投稿2023/12/15 01:35

今後の事を考えると、Web系の技術でUI作れるフレームワークが一番無難な気がします。
フレームワーク自体が廃れたとしても、載せ替えるだけで済みそうですし。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

最新の回答から1ヶ月経過したため この意見交換はクローズされました

意見をやりとりしたい話題がある場合は質問してみましょう!

質問する

関連した質問