Windows OS、Mac OSの両方で動作するネイティブアプリの開発に適した開発言語やツール
解決済
回答 9
投稿
- 評価
- クリップ 1
- VIEW 4,213
前提・実現したいこと
下記のような条件下で動作するアプリケーションの開発をしたいと考えています。
・Windows OSのネイティブアプリとして動作する ※コンソールではなくフォームあり想定
・Mac OSのネイティブアプリとして動作する ※コンソールではなくフォームあり想定
・どちらもスマートフォンやタブレット端末からの利用はなし
※ネイティブでなくてもノートPC上でインターネット等外部に接続することなく動作すれば問題ないです。
※Windows向けも、Mac向けも全く同じ機能を実装する想定です。
解決したいこと・教えてほしいこと
このような条件の場合にどの言語およびツールで開発するのがおすすめかを知りたいです。
Xamarinは使えないですし、.Net CoreだとWebアプリになってしまいますし、
WindowsはVisual Studioの「Windowsフォームアプリ」、Macは「Cocoaアプリ」と分けてしまうと、
ビジネスロジック含めて同じことをそれぞれに書かなければならないし…という状況で、
どのような構成、言語、ツールの組み合わせでやると良いのかを悩んでいます。
こんな組み合わせはどう?とか、こんな組み合わせがおすすめですよレベルでも構いませんので、
情報を提供していただけるとありがたいです。
手段はわかっていませんが、
理想はビジネスロジック部分などを共通化できて、
画面のデザインおよび画面イベント等のOS依存のところを、
OS判断で分岐出来れば…とか考えています。
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
+5
Java(あるいはJVM上の言語)で書くのも1つの選択肢かと思います。
JavaFXなど、クロスプラットフォームで使えるGUI環境がJavaランタイムに標準でついてきます。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
+2
まずは、「ネイティブ」の定義をきちんとしてくれないと。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
+2
ネイティブとはちょっと違ってきますが、Win/Mac/Linux共通で使える、として
Adobe AIR
なんかも使われているようですね(某ラベルメーカーの印刷ソフトとか、無料で使える年賀状ソフトとか)。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
+2
こんにちは。
マルチプラットフォームでGUIをネイティブに開発できるベストな選択肢としては Qt ではないかと思います。私自身は Qt をほとんど使ってませんが、その条件で GUI プログラムを開発する時には Qt を使うだろうと思います。
他に C++Builder のFireMonkeyを使うという選択肢もあります。C++BuilderのVCLはかなり使い込んでいたのですが、FireMonkeyは全く触ったことがありませんので使い勝手はよく分かりません。Windows, Mac, Android, iPhoneに対応してますが、linuxに対応していないことは要注意です。
因みに、VCLはC#のプログラミング・モデルにそっくりです。といいますか、C++Builder(もしくはDelphi)を開発していた人たちがマイクロソフトへ移籍して開発したのがC#のようにも聞きます。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
+1
OS ネイティブ、ということは、OS に依存する、ということです。
つまりその時点で、マルチOS対応とは矛盾してしまいます。
Java や .NET、あるいはインタプリタ系の言語(Perl、Ruby、PHP など)は、OS に依存する部分を実行エンジンで吸収することで、アプリケーションは OS から独立しているのです。
まあ、実行ファイルのフォーマット自体はマルチOS/アーキテクチャ対応できる(Windows や UEFI、Linux ブートローダなどの PE フォーマットや、macOS の Mach-O など)ものもありますが、それは複数のプログラムを一つにまとめているだけで、同じバイナリが動作しているわけではありません。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
エクセルシートのことでしょうか?
html+javascriptでもできなくはなさそうですが。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
Xamarinは使えないですし
なぜ使えないのか判りませんが、Visual Studio for Macが公開されているので、そちらは検討されたのでしょうか? Visual Studio for Macの中身は実質Xamarin Studioだそうです。
Macは所有していないし仕事でも使ったことがないので試したことはないのですが、LinuxではMonoDevelop(Xamarin Studioのサブセット版みたいなもの)を使えばWindowsと相互開発可能(同じソースをビルド可能)なGUIアプリが作れることは確認済みです。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
Electronはだめでしょうか?
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
こんにちは。私はWinndows/Mac両方で動くアプリケーションを作成しております。
私は、時間があるときはWindowsアプリケーションはWPF/UWP、MacはXamarin.Mac、時間がないときはElectronを使用しております。
こうすることによってのメリットとしてはビジネシロジックをC#という共通言語で統一することができます。
デメリットとしてはビルドする際、Windows/Mac両方が必要になってくること、UIはそれぞれのPFで開発することが挙げられます。
上記のデメリットを解決するにはXamarin.Formsというフレームワークを使う手もあります。
C#が難しいのであれば、JavaScript/HTMLで開発するElectron、C++で開発するQtが挙げられます。
いかがでしょうか。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 89.98%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
2018/03/29 10:11
JavaはSwingになるから面倒だなって思ってたのですが、JavaFXってものがあるんですね…
Scene Builderと併せて使えば画面開発も楽にできそうなので試してみたいと思います!