我已经着手开发一个个人项目,用于在Mac OSX Snow Leopard上开发一个用于微控制器编程的简单Cocoa IDE。由于编程不是一个问题,我在选择体系结构以蓝图应用程序的高级块时遇到一些困难。我在考虑:
NSScanner
进行语法着色/检查的未来发展;
stdout
或其他更好的方法将编译器详细程度记录到日志记录视图(文本视图?)中;
NSOutlineView
进行文件浏览(类似于左窗格中的XCode项目文件);
NSFileWrapper
(包括main.c文件,附加标题,自动生成的Makefile和项目设置的plist等) ;
NSUserDefaults
通过应用程序共享单例(例如)为项目设置和应用程序首选项设置持久性;
NSTask
与微代码编译器连接,并在日志文本视图中显示编译和上传结果;
如果你们中的任何人比我更有经验,那么你们会选择哪种建筑组件?相同(拆分视图,文本视图,NSTask
,文件包装器,带树控制器的大纲视图,文档和文档控制器的共享实例等单独的应用程序委托),或者您会选择不同的方法吗?一个更简单的一个?
我很感激任何可能的暗示。感谢您抽出宝贵时间。如果有兴趣,我会随时了解进展情况。
答案 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是否得到了修复。