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

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

ただいまの
回答率

90.50%

  • MacOS(OSX)

    2233questions

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

  • Windows

    1634questions

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

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

解決済

回答 9

投稿

  • 評価
  • クリップ 1
  • VIEW 2,079

skmtkt

score 1

 前提・実現したいこと

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

・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ページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 9

checkベストアンサー

+5

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/03/29 10:11

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

    キャンセル

+2

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/03/29 10:15

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

    キャンセル

  • 2018/04/05 16:22

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

    ネイティブってなんだろうねえ。。

    キャンセル

+2

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/03/29 10:28

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

    キャンセル

+2

こんにちは。

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

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

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/03/29 10:56

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

    キャンセル

+1

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

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/03/29 10:43

    伝わりづらくて申し訳ないです…矛盾になるので一応※で「ネイティブでなくても…」と書かせていただきました。
    同一プログラム内でOSに依存する処理(特に画面など)は、OS毎に実行される処理を分けたりすることが出来ないかなと思ってた次第です。
    (みなさんの回答を見て、私が当初考えていた方法はいまいちだなと実感した次第です。)

    私の知っている範囲では良い組み合わせが思いつかなかったのですが、新しい技術は日々出てきているので、みなさんの知恵をお借り出来たらなという思いと、そんな組み合わせが出来るのかという発見が私含め、みなさんの回答を見る人たちにもあればと思い今回質問を投稿させていただきました。

    キャンセル

0

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

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

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/03/29 10:59

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

    キャンセル

0

Xamarinは使えないですし

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/03/29 11:12

    Visual Studio for Mac は既にインストールしていて調べたりはしてみました。
    私の調査が足りないだけかもしれませんが、クロスプラットフォームの対象として「iOS、Android」の組み合わせは提供されているようなのですが、「Mac OS、Windows OS」の組み合わせが出来ないように見受けられました。

    ただ、下記のサイトの構想にすれば出来そうな気はしているので試してみようとしているところです。
    https://qiita.com/okajima/items/8ca53ff00a825f28dbc6

    キャンセル

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が挙げられます。
いかがでしょうか。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

同じタグがついた質問を見る

  • MacOS(OSX)

    2233questions

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

  • Windows

    1634questions

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