针对小型IDE的Cocoa Architecture建议

时间:2011-06-20 09:49:31

标签: cocoa ide project nsdocument

我已经着手开发一个个人项目,用于在Mac OSX Snow Leopard上开发一个用于微控制器编程的简单Cocoa IDE。由于编程不是一个问题,我在选择体系结构以蓝图应用程序的高级块时遇到一些困难。我在考虑:

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

如果你们中的任何人比我更有经验,那么你们会选择哪种建筑组件?相同(拆分视图,文本视图,NSTask,文件包装器,带树控制器的大纲视图,文档和文档控制器的共享实例等单独的应用程序委托),或者您会选择不同的方法吗?一个更简单的一个?

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

1 个答案:

答案 0 :(得分:0)

我想从用户界面开始。想想用户将如何使用您的IDE。

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

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

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

一旦您了解了用户界面的工作方式,您就会发现您的模型和控制器布局将遵循该模型。


听起来你已经考虑过至少其中一些,所以我只会解决你的几个特定项目:

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

使用NSScanner解析C代码将是一个伤害。您可以使用已存在的合适的文本视图/语法颜色;在我自己开始这样一项任务之前,我会做一次彻底的搜索。如果我不得不从头开始写这样的东西,我会调查what Clang can do for me

  
      
  • 将项目打包成类似文件夹的项目文件,例如NSFileWrapper(包括main.c文件,附加标题,自动生成的Makefile和项目设置的plist等);
  •   

注意:NSFileWrapper曾经不了解.svn目录。在2.x天内,这是一个关于Interface Builder的大抱怨。他们在IB年前修复了它,但我不确定NSFileWrapper是否得到了修复。