• ベストアンサー

マルチプラットフォームで動き、データ保存を行うことができるGUIアプリを作るには、現在どのような選択肢がありますか?

いつもお世話になっています。 アウトラインエディタのようなものを作ってみようと思っています。 いろいろ考えたのですが、疑問点が多々あり、アドバイスをいただけたら幸いです。 また、プラットフォームに依存したくないので、VCやDelphiは避けたいです。 アプリ概要 左にディレクトリペインがあり、右にメモやTODOなどを書いて保存できるアウトラインプロセッサ。(既存のWindowsアプリですと、nami2000のようなものを作りたいです) [nami2000のHP] http://www.geocities.jp/my_ultraseven/mozart/_start.htm 案1 ・Webブラウザを画面としたアプリにする ネック ・Windows依存にはしたくないのでVBScriptやJScriptは使わない。JavaScriptで書くことになるかと思いますが、JavaScriptではファイル入出力はセキュリティ上サポートされていないので、別途Webサーバを立て、CGI経由でDBに保存するか、XMLテキストなどに保存する必要がある。Ajaxを使ったとしても、Webサーバが必要。単なるアイデア整理、日記、購入書籍整理、通院記録整理といった目的に使うアプリ程度にWebサーバを立てる必要が生じるのは大げさなのではないか。。いや、大げさだろう・・・。。 案2 ・C/C++を用いてGUIアプリ開発を行う。 ネック(&疑問点) ・C/C++でGUIアプリを作るには、(VC等を除くと)QtとOpenGLがあるようです。 Qtは非商用利用ではGPLなのですが、もしQtを使用してGUIアプリを開発しフリーソフトとして公開することになった場合、当然アプリのソースコードをすべて公開する必要があるのでしょうか?(wikipediaによるとGPLライセンス準拠なら公開するべきとされているようですがはっきりわかりませんでした) OpenGLはxDグラフィックスインターフェイスなので、いわゆるGUIアプリと聞いてイメージするような、メニューバーがあり、ウィンドウ領域があり・・・といったアプリ開発には向いていないのでしょうか? ・案3 Java - Swingを使って開発する。 いちばん現実的な選択肢のような気がします。。 ・案4 Firefoxなどのアドオンのように、コアはC++で記述し、XULを用いてユーザーインターフェイス部分の開発をする。 いろいろと調べたのですが、結局よくわからないままです。。難しい・・・。 その他、言語やライブラリ、フレームワークなどでアイデア・アドバイスがありましたらぜひお教えください。 個人的にはブラウザベースのアプリにしたい気持ちがあるのですが、Webサーバが必要になるのがネックです。ブラウザ画面で入力したデータをWebサーバを必要とせずにそのままローカルに保存・参照できるような機能を持つ言語はないみたいですね。XULならできるようですがよくわかりません。。 C/C++でマルチプラットフォームのGUIアプリ開発環境があればそれが一番いいと思っていますが、見つかりません。(ないなら作ればいい、というのがエンジニア魂なのでしょうが、そこまでのスキルがありません。。) また、フリーソフトとして公開するときにソースコードを公開するのは抵抗があります。 マルチプラットフォームで動き、データ保存を行うことができるGUIアプリを作るには、現在どのような選択肢があるのか、アドバイスいただけたら幸いです。 私自身も整理できていないので、わかりにくくてすみません。。 要はアウトラインプロセッサを作りたいのですが、画面をブラウザにするとWebサーバが必要になってしまい大げさ、C/C++で作るとQtなどが必要になり、ソースコード公開しなければならなくなる?(というよりも、GPLライセンスの下に他人による改変を認めてしまう)のでそれは避けたい。 XULで作る場合、Firefoxなどのアドオン化できるのは魅力だけれど、結局はjarファイルなのでソースコードそのままだしてるのと同じ、その前に概念が難しいのでよくわからない。。 JavaはGUI開発はまだまだ発展途上とのことなのでJavaにするのもどうなのか。。 混乱してます。。。

質問者が選んだベストアンサー

  • ベストアンサー
noname#208124
noname#208124
回答No.1

C/C++のライブラリでGTK+ ならLGPLです wxWidgets もLGPLに近いです

miraise
質問者

お礼

ご回答ありがとうございます。 長文・駄文をお読みいただき感謝です。 wikipediaで調べてきました。 GPLとLGPLの明確な違いがはっきりとはわかりませんでしたが、 いまの時流ではライセンスはコピーレフトなのですね。 何で作っても、所詮リバースコンパイルされてしまえば同じですし、販売までは考えていませんので、ソースコードに対するこだわりはやめようと思うようになりました。 アドバイス、ありがとうございます。 あとは、ブラウザベースにするか、C/C++で作るか、Javaで作るか、ですが・・・選択が難しいです。。 ブラウザベースにしたいのですが、マルチプラットフォーム対応でデータ保存をするには、Webサーバを立てないといけないのがネックですね。。 wxWidgetsのwikipediaを見てみたところ、「JavaのSwingを使ったときのように事前にインストールするソフトもなく高速に実行できる利点がある。」とありましたので、使うまでに手間がかかるならJavaは止めようかと思いました。 また、GTK+について見てみたところ、ソフト例にFirefoxとありましたので、GTK+を使ってもWindowsで動くのかとわかりました(無知ですね。。)。 一企業(トロールテック社)のライブラリ?であるQtではなく、GNUのGTK+を使ってみようと思います。 いろいろ考えていても仕方がない、まずは行動、ということでC/C++ - GTK+で作ってみようかと思っています。 もし、アドバイスがあればまたぜひお願いします。 余談ですが、 Qtのwikipediaのページに、Qtを使用しているアプリケーションとしてOperaがあったのですが、Operaってオープンソースではないですね。Qtを使用する=ソースコードを公開するという認識でしたので、何かGPLに対して(またはQtに対して)認識違いをしているのかもしれません。それにしても、どういうことなんだろうか・・・。

その他の回答 (1)

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.2

>Qtを使用する=ソースコードを公開するという認識でしたので、何かGPLに対して(またはQtに対して)認識違いをしているのかもしれません。 QtはQt Softwareに金を払えばGPLに従わないという選択ができます。 Qt Softwareについて ― Qt Software - Code Less. Create More. Deploy Everywhere. http://trolltech.com/about-jp

miraise
質問者

お礼

ご回答ありがとうございます。 私が、サイト中の「標準的な商用ライセンス」の意味がうまくつかめていなかったようです。 >Qtの商用ライセンス契約では、オープンソースライセンスでプロプライエタリソフトウェアを開発することを認めていません。 なるほど、と納得しました。 ライセンスモデルは難しいですね。。 英文の中に、「3D Graphics with OpenGL」を見つけました。 OpenGLと連携できるのですね。 個人で使うだけなので私には関係ないですが、商用ライセンスはかなり高いようでびっくりしました。 Operaがオープンソースではない理由がわかりすっきりとしました。 ありがとうございました。

関連するQ&A