いつもお世話になっています。
アウトラインエディタのようなものを作ってみようと思っています。
いろいろ考えたのですが、疑問点が多々あり、アドバイスをいただけたら幸いです。
また、プラットフォームに依存したくないので、VCやDelphiは避けたいです。
アプリ概要
左にディレクトリペインがあり、右にメモやTODOなどを書いて保存できるアウトラインプロセッサ。(既存のWindowsアプリですと、nami2000のようなものを作りたいです)
[nami2000のHP]
http://www.geocities.jp/my_ultraseven/mozart/_st …
案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にするのもどうなのか。。
混乱してます。。。
No.1ベストアンサー
- 回答日時:
C/C++のライブラリでGTK+ ならLGPLです
wxWidgets もLGPLに近いです
ご回答ありがとうございます。
長文・駄文をお読みいただき感謝です。
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に対して)認識違いをしているのかもしれません。それにしても、どういうことなんだろうか・・・。
No.2
- 回答日時:
>Qtを使用する=ソースコードを公開するという認識でしたので、何かGPLに対して(またはQtに対して)認識違いをしているのかもしれません。
QtはQt Softwareに金を払えばGPLに従わないという選択ができます。
Qt Softwareについて ― Qt Software - Code Less. Create More. Deploy Everywhere.
http://trolltech.com/about-jp
ご回答ありがとうございます。
私が、サイト中の「標準的な商用ライセンス」の意味がうまくつかめていなかったようです。
>Qtの商用ライセンス契約では、オープンソースライセンスでプロプライエタリソフトウェアを開発することを認めていません。
なるほど、と納得しました。
ライセンスモデルは難しいですね。。
英文の中に、「3D Graphics with OpenGL」を見つけました。
OpenGLと連携できるのですね。
個人で使うだけなので私には関係ないですが、商用ライセンスはかなり高いようでびっくりしました。
Operaがオープンソースではない理由がわかりすっきりとしました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- アプリ swiftでスマホアプリを開発した時の動作確認 1 2023/02/14 11:37
- IT・エンジニアリング SEとWebエンジニアの業務内容の違いについて 3 2023/06/22 23:23
- YouTube 新しく買ったデスクトップPCを使用すると、今までのGoogleのアカウントが使えなくなった。 1 2023/01/07 00:41
- システム 古いWEBシステム。もう追加プログラムは作れない? それともできる? 6 2022/06/08 13:41
- HTML・CSS WEBサイトの構築。表示データとWEBデザインを分離する考え方を専門用語・業界用語では何と言うか? 8 2022/09/27 09:16
- Chrome(クローム) 入力フォームの履歴を消したい 2 2023/06/29 13:02
- アプリ Edgeを操作するアプリについて 4 2023/05/11 22:48
- その他(プログラミング・Web制作) プログラムの起動、利用について、使用期間を設定する方法 3 2023/08/06 21:03
- その他(プログラミング・Web制作) プログラミング 処理速度 1 2022/11/25 11:05
- その他(クラウドサービス・オンラインストレージ) Onedriveで実現したい事。2台のPC間で。 2 2023/04/10 20:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Linuxでの開発環境構築や設定の...
-
VB.NETで、システムのレジスト...
-
WindowsDefender以外のウイルス...
-
vbsでデバッグしながらコードを...
-
wineでゲームを起動したい
-
InstallShieldウィザードでのエ...
-
VB.net webアプリケーション 戻...
-
自動構成スクリプト(proxy.pac...
-
フォルダーに緑のレ点と赤の✖が...
-
回復ドライブに保存されるもの
-
Windows10SモードってOfficeは...
-
決められた時間間隔で処理を繰...
-
特定ユーザに対してのみアプリ...
-
HULFT for LINUX
-
Android スマホ、SDカードのフ...
-
ituneダウンロード時 iphone 5.1
-
xアプリを起動すると再試行とキ...
-
gcc13.2のバグ?
-
パソコンに表示されるAOSBOXfor...
-
explore excelというものについ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Linuxでの開発環境構築や設定の...
-
日本に、Microsoftのような会社...
-
オブジェクト指向開発とコンポ...
-
MFCでデータベースを
-
VB.NETで、システムのレジスト...
-
linuxでipadアプリを開発できる...
-
gitの開発のすすめ方について
-
ipadにipadアプリの開発環境を...
-
oppo reno 7A
-
フォルダーに緑のレ点と赤の✖が...
-
gcc13.2のバグ?
-
WindowsDefender以外のウイルス...
-
windows10のアプリと機能にyout...
-
回復ドライブに保存されるもの
-
レイノルズ数が4000より大きい...
-
特定ユーザに対してのみアプリ...
-
Beckyのアドレス帳を上下に移動...
-
VB.net webアプリケーション 戻...
-
インストールが不要なソフトは...
-
keygen.exeが実行されない
おすすめ情報