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

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

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

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

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Q&A

解決済

9回答

4536閲覧

Windows OS、Mac OSの両方で動作するネイティブアプリの開発に適した開発言語やツール

skmtkt

総合スコア7

Windows

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

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

0グッド

1クリップ

投稿2018/03/28 09:35

前提・実現したいこと

下記のような条件下で動作するアプリケーションの開発をしたいと考えています。

 ・Windows OSのネイティブアプリとして動作する ※コンソールではなくフォームあり想定
・Mac OSのネイティブアプリとして動作する   ※コンソールではなくフォームあり想定
・どちらもスマートフォンやタブレット端末からの利用はなし

 ※ネイティブでなくてもノートPC上でインターネット等外部に接続することなく動作すれば問題ないです。
※Windows向けも、Mac向けも全く同じ機能を実装する想定です。

解決したいこと・教えてほしいこと

このような条件の場合にどの言語およびツールで開発するのがおすすめかを知りたいです。

Xamarinは使えないですし、.Net CoreだとWebアプリになってしまいますし、
WindowsはVisual Studioの「Windowsフォームアプリ」、Macは「Cocoaアプリ」と分けてしまうと、
ビジネスロジック含めて同じことをそれぞれに書かなければならないし…という状況で、
どのような構成、言語、ツールの組み合わせでやると良いのかを悩んでいます。

こんな組み合わせはどう?とか、こんな組み合わせがおすすめですよレベルでも構いませんので、
情報を提供していただけるとありがたいです。

手段はわかっていませんが、
理想はビジネスロジック部分などを共通化できて、
画面のデザインおよび画面イベント等のOS依存のところを、
OS判断で分岐出来れば…とか考えています。

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

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

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

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

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

guest

回答9

0

ベストアンサー

Java(あるいはJVM上の言語)で書くのも1つの選択肢かと思います。

JavaFXなど、クロスプラットフォームで使えるGUI環境がJavaランタイムに標準でついてきます。

投稿2018/03/28 09:47

maisumakun

総合スコア145121

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

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

skmtkt

2018/03/29 01:11

ありがとうございます! JavaはSwingになるから面倒だなって思ってたのですが、JavaFXってものがあるんですね… Scene Builderと併せて使えば画面開発も楽にできそうなので試してみたいと思います!
guest

0

こんにちは。私はWinndows/Mac両方で動くアプリケーションを作成しております。
私は、時間があるときはWindowsアプリケーションはWPF/UWP、MacはXamarin.Mac、時間がないときはElectronを使用しております。
こうすることによってのメリットとしてはビジネシロジックをC#という共通言語で統一することができます。
デメリットとしてはビルドする際、Windows/Mac両方が必要になってくること、UIはそれぞれのPFで開発することが挙げられます。
上記のデメリットを解決するにはXamarin.Formsというフレームワークを使う手もあります。
C#が難しいのであれば、JavaScript/HTMLで開発するElectron、C++で開発するQtが挙げられます。
いかがでしょうか。

投稿2018/04/05 07:18

Takkiii0204

総合スコア21

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

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

0

こんにちは。

マルチプラットフォームでGUIをネイティブに開発できるベストな選択肢としては Qt ではないかと思います。私自身は Qt をほとんど使ってませんが、その条件で GUI プログラムを開発する時には Qt を使うだろうと思います。

他に C++BuilderFireMonkeyを使うという選択肢もあります。C++BuilderのVCLはかなり使い込んでいたのですが、FireMonkeyは全く触ったことがありませんので使い勝手はよく分かりません。Windows, Mac, Android, iPhoneに対応してますが、linuxに対応していないことは要注意です。
因みに、VCLはC#のプログラミング・モデルにそっくりです。といいますか、C++Builder(もしくはDelphi)を開発していた人たちがマイクロソフトへ移籍して開発したのがC#のようにも聞きます。

投稿2018/03/28 12:42

編集2018/03/28 12:50
Chironian

総合スコア23272

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

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

skmtkt

2018/03/29 01:56

Qt…結構前に遊びで使ってみた記憶が蘇ります…久々にインストールしてみます… C++Builderは製品ページ見たら良さそうに見えましたが、お金が…(ただの私都合) FireMonkeyは初めましてです!ちょっと調べたりしてみます!
guest

0

ネイティブとはちょっと違ってきますが、Win/Mac/Linux共通で使える、として
Adobe AIR
なんかも使われているようですね(某ラベルメーカーの印刷ソフトとか、無料で使える年賀状ソフトとか)。

投稿2018/03/28 11:31

KoichiSugiyama

総合スコア3041

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

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

skmtkt

2018/03/29 01:28

Adobeでもクロスプラットフォームなアプリ作れるんですね… デザインとかFlashで遊び心組み込んだりしやすそうですし、開発ツールやSDKなどもAdobeから提供されているものがあるみたいなのでこちらも試してみたいと思います!
guest

0

まずは、「ネイティブ」の定義をきちんとしてくれないと。

投稿2018/03/28 11:24

y_waiwai

総合スコア87719

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

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

skmtkt

2018/03/29 01:15

回答いただく際にあまり制限したくなかったので、これで動作環境のイメージは伝わるかな…というレベルの記載にさせていただきました。 幅広くご意見いただけるとありがたいです。
y_waiwai

2018/04/05 07:22

JavaやらC#がネイティブってことになるとPythonでもいいんじゃね?ってはなしになるんじゃw もーなんでもあり ネイティブってなんだろうねえ。。
guest

0

OS ネイティブ、ということは、OS に依存する、ということです。
つまりその時点で、マルチOS対応とは矛盾してしまいます。

Java や .NET、あるいはインタプリタ系の言語(Perl、Ruby、PHP など)は、OS に依存する部分を実行エンジンで吸収することで、アプリケーションは OS から独立しているのです。

まあ、実行ファイルのフォーマット自体はマルチOS/アーキテクチャ対応できる(Windows や UEFI、Linux ブートローダなどの PE フォーマットや、macOS の Mach-O など)ものもありますが、それは複数のプログラムを一つにまとめているだけで、同じバイナリが動作しているわけではありません。

投稿2018/03/28 11:40

tacsheaven

総合スコア13703

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

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

skmtkt

2018/03/29 01:43

伝わりづらくて申し訳ないです…矛盾になるので一応※で「ネイティブでなくても…」と書かせていただきました。 同一プログラム内でOSに依存する処理(特に画面など)は、OS毎に実行される処理を分けたりすることが出来ないかなと思ってた次第です。 (みなさんの回答を見て、私が当初考えていた方法はいまいちだなと実感した次第です。) 私の知っている範囲では良い組み合わせが思いつかなかったのですが、新しい技術は日々出てきているので、みなさんの知恵をお借り出来たらなという思いと、そんな組み合わせが出来るのかという発見が私含め、みなさんの回答を見る人たちにもあればと思い今回質問を投稿させていただきました。
guest

0

Electronはだめでしょうか?

投稿2018/03/30 10:46

m0a

総合スコア708

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

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

0

Xamarinは使えないですし

なぜ使えないのか判りませんが、Visual Studio for Macが公開されているので、そちらは検討されたのでしょうか? Visual Studio for Macの中身は実質Xamarin Studioだそうです。

Macは所有していないし仕事でも使ったことがないので試したことはないのですが、LinuxではMonoDevelop(Xamarin Studioのサブセット版みたいなもの)を使えばWindowsと相互開発可能(同じソースをビルド可能)なGUIアプリが作れることは確認済みです。

投稿2018/03/29 01:29

catsforepaw

総合スコア5938

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

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

skmtkt

2018/03/29 02:12

Visual Studio for Mac は既にインストールしていて調べたりはしてみました。 私の調査が足りないだけかもしれませんが、クロスプラットフォームの対象として「iOS、Android」の組み合わせは提供されているようなのですが、「Mac OS、Windows OS」の組み合わせが出来ないように見受けられました。 ただ、下記のサイトの構想にすれば出来そうな気はしているので試してみようとしているところです。 https://qiita.com/okajima/items/8ca53ff00a825f28dbc6
guest

0

エクセルシートのことでしょうか?

html+javascriptでもできなくはなさそうですが。

投稿2018/03/28 15:16

編集2018/03/28 15:34
mkgrei

総合スコア8560

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

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

skmtkt

2018/03/29 01:59

エクセルシートではないです。 HTML + JavaScriptは最近本を買ったばかりで試そうとしてたところです!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問