0

我已经着手开发一个用于在 Mac OSX Snow Leopard 上进行微控制器编程的简单 Cocoa IDE 的个人项目。由于编程不是问题,因此我在选择架构来绘制应用程序的高级块时遇到了一些困难。我在想:

  1. 可以设置项目详细信息,类似于用户创建新项目时 XCode 所做的;可能包含可能存储在用户默认值或 plist 中的项目详细信息的附件视图。
  2. 可以将项目保存为自定义的特定文件类型,并具有应用程序将拥有的特定扩展名(基于文档的应用程序)。
  3. 可以将新文件添加到项目中,特别是将自动包含以进行编译的 h 文件头;选择新文件时,可以选择文件类型(类似于 XCode);
  4. 有一个简单的编辑器,基于文本视图,例如,没有语法着色、检查、突出显示;但是,以这样的方式设计它,以允许未来开发语法着色/检查,NSScanner例如,通过 ;
  5. 可以根据选择的任何持久性方法自动生成 Makefile 进行编译。
  6. stdout有可能通过或其他更好的方法 将编译器详细程度记录到日志视图(文本视图?)中;
  7. 使用NSOutlineView带有树控制器(例如)进行文件浏览(类似于左窗格中 XCode 的项目文件);
  8. 将项目打包到类似文件夹的项目文件中,NSFileWrapper例如(包括 main.c 文件、附加头文件、自动生成的 Makefile 和用于项目设置的 plist 等);
  9. NSUserDefaults通过应用程序共享的单例(例如) 将设置持久性用于项目设置和应用程序首选项;
  10. 使用模型组件中的一些类通过微码编译器连接NSTask,并在日志文本视图中显示编译和上传结果;
  11. ETC

如果你们中的任何人,比我有更多的经验,会开始这样一个项目,你会选择什么架构组件?相同(拆分视图、文本视图、NSTask文件包装器、带有树控制器的大纲视图、将应用程序委托与文档分开以及文档控制器的共享实例等),还是您会选择不同的方法?一个更简单的?

我将不胜感激任何可能的提示。感谢您抽出宝贵的时间。如果有人有兴趣,我会随时了解进展情况。

4

1 回答 1

0

我会说从用户界面开始。考虑用户将如何使用您的 IDE。

它会像 Xcode 3 一样工作吗?Xcode 4?两者的简化版本?另一个现有的 IDE?大部分或完全原创的东西?

绘制草图,无论是在纸上还是在您最喜欢的图像编辑器中。尝试不同的布局。用不同的方式画出相同的东西并进行比较。

想想用户需要做的不同事情。他们将如何做?一种方法会以牺牲另一项任务为代价吗?这值得么?

一旦您了解了用户界面的工作方式,您会发现您的模型和控制器布局将随之而来。


听起来您至少已经考虑过其中的一些,所以我将只讨论您的几个具体项目:

  • 有一个简单的编辑器,基于文本视图,例如,没有语法着色、检查、突出显示;但是,以这样一种方式设计它,以允许未来开发语法着色/检查,例如通过 NSScanner;

用 NSScanner 解析 C 代码会很麻烦。可能已经存在您可以使用的合适的文本视图/语法着色器;一方面,我会在自己开始执行这样的任务之前进行彻底的搜索。如果我必须从头开始写这样的东西,我会研究Clang 可以为我做什么

  • 将项目打包到类似文件夹的项目文件中,例如使用 NSFileWrapper(这将包括 main.c 文件、附加头文件、自动生成的 Makefile 和用于项目设置的 plist 等);

注意: NSFileWrapper 过去不理解 .svn 目录。这是 2.x 时代对 Interface Builder 的一大抱怨。他们几年前在 IB 中修复了它,但我不确定 NSFileWrapper 是否得到了修复。

于 2011-06-20T12:14:42.060 回答