Я бы сказал, начать с пользовательского интерфейса.Подумайте, как пользователь будет использовать вашу IDE.
Будет ли она работать как Xcode 3?Xcode 4?Упрощенная версия либо?Еще одна существующая IDE?Что-то в значительной степени или полностью оригинальное?
Нарисуйте эскизы, будь то на бумаге или в вашем любимом графическом редакторе.Попробуйте разные макеты.Нарисуйте одно и то же разными способами и сравните их.
Подумайте о разных вещах, которые пользователь должен будет сделать.Как они это сделают?Один метод приходит за счет другой задачи?Стоит ли это того?
Как только вы поймете, как будет работать ваш пользовательский интерфейс, вы обнаружите, что из этого будут следовать ваша модель и компоновка вашего контроллера.
ЭтоПохоже, вы уже подумали хотя бы об этом, поэтому я расскажу только о нескольких ваших конкретных элементах:
- Есть простой редактор на основе текстового представления,например, без подсветки синтаксиса, проверка, подсветка;однако, чтобы спроектировать его таким образом, чтобы в будущем можно было разработать раскраску / проверку синтаксиса, например, с помощью NSScanner,
Анализ кода C с помощью NSScanner будет мешать.Возможно, уже существует подходящий текстовый просмотр / синтаксис-колорер, который вы можете использовать;Я бы, например, провел бы тщательный поиск, прежде чем сам приступить к такой задаче.Если бы мне пришлось написать что-то подобное с нуля, я бы посмотрел на , что Clang может сделать для меня .
- Упаковка проекта в подобный папке проектфайлы, например, с NSFileWrapper (которые будут включать файл main.c, дополнительный заголовок, автоматически созданный Makefile и plist для настроек проекта и т. д.);
Осторожно: NSFileWrapper используется, чтобы не понимать.svn каталоги.Это была большая жалоба на Интерфейсный Разработчик в 2x днях.Они исправили это в IB несколько лет назад, но я не уверен, что NSFileWrapper когда-либо получал это исправление.