私は、Mac OSX Snow Leopard でマイクロコントローラーをプログラミングするための単純な Cocoa IDE を開発するという個人的なプロジェクトに着手しました。プログラミングは問題ではないので、アプリケーションの高レベル ブロックを設計するためのアーキテクチャを選択するのに多少の困難があります。私は考えていました:
- ユーザーが新しいプロジェクトを作成するときに XCode が行うことと同様に、プロジェクトの詳細を設定する可能性があります。おそらく、ユーザーのデフォルトまたは plist に保存される可能性のあるプロジェクトの詳細のアクセサリ ビューを含める可能性があります。
- アプリが所有する特定の拡張子を持つカスタムの特定のファイルタイプでプロジェクトを保存する可能性があります (ドキュメントベースのアプリ)。
- プロジェクトに新しいファイルを追加する可能性があります。特に、コンパイルのために自動的に含まれる h ファイル ヘッダーです。新しいファイルを選択するときに、ファイルの種類を選択できるようにする (XCode と同様)。
- たとえば、構文の色分け、チェック、強調表示のない、テキストビューベースのシンプルなエディターを用意します。
NSScanner
ただし、たとえば、 を介して、構文の色付け/チェックの将来の開発を可能にするような方法で設計する。 - 選択した永続化方法に基づいて、コンパイル用の Makefile を自動生成する可能性があります。
stdout
または他のより良いアプローチ を介して、コンパイラの冗長性をログ ビュー (テキスト ビュー?) に記録する可能性があります。NSOutlineView
ファイルの参照にツリー コントローラー (たとえば) を使用する (左側のペインにある XCode のプロジェクト ファイルと同様) 。- たとえば、プロジェクトをフォルダーのようなプロジェクト ファイルにパッケージ化します
NSFileWrapper
(これには、main.c ファイル、追加のヘッダー、自動生成された Makefile、プロジェクト設定の plist などが含まれます); - アプリケーション共有シングルトンを介してプロジェクト設定とアプリケーション設定を使用して設定を永続
NSUserDefaults
化する (たとえば)。 - モデル コンポーネントのいくつかのクラスを使用してマイクロコード コンパイラに接続し、
NSTask
コンパイルとアップロードの結果をログ テキスト ビューに表示します。 - 等
私よりもはるかに経験豊富な方がそのようなプロジェクトに着手するとしたら、どのアーキテクチャ コンポーネントを選択しますか? 同じ (分割ビュー、テキスト ビュー、NSTask
ファイル ラッパー、ツリー コントローラーを使用したアウトライン ビュー、ドキュメントからアプリ デリゲートを分離し、ドキュメント コントローラーの共有インスタンスなど)、または別のアプローチを選択しますか? はるかに単純なものですか?
これに関するヒントをいただければ幸いです。お時間をいただきありがとうございます。興味のある方がいらっしゃいましたら、進捗状況をお知らせします。