Core Data и mogenerator

Давно я хотел написать этот пост, но все руки не доходили. А все потому, что хотел все подробно рассказать со скринами, тестовыми проектами и прочими радостями. Потом решил сделать этот анти-пост, в котором не будет ни одного скрина и ни строчки кода.

Я очень люблю фреймворк Core Data.  Он мне нравится своей простотой и красотой одновременно. Там безусловно есть свои тонкости, но в целом штука очень удобная, и не зря Apple старается нам ее подсунуть почти в каждый ваш проект с данными. Так как я уже делал несколько проектов с использованием Core Data, то стараюсь периодически посматривать что-то интересное на эту тему. И чуть ли не полтора года назад я напал на mogenerator. Что же это такое? Это скрипт, который на основе вашей модели данных в проекте генерирует код классов сущностей. Но ведь мы можете делать все тоже самое сами в Xcode? Конечно да, но этот скрипт генерирует не один, а два класса на каждую сущность (entity). Один класс генерируется для поддержки вашей модели данных, и его может править только сам скрипт — вы туда не лезете. А второй класс, являющийся подклассом предыдущего, как раз служит для нас разработчиков, где мы вольны описывать любые манипуляции с этим NSManagedObject. Настроив вашу систему на работу с этим скриптом в проекте, вы забываете о перегенерации класса вашей entity — скрипт делает это за вас, и одновременно с этим скрипт не переписывает ваш «человеческий» файл, в котором у вас расписано кастомное поведение объекта. Причем удобно сделать в проекте новый aggregate target, в него вписать выполнение скрипта, а ваш основной тарджет поставить в зависимость. Благодаря этому какие бы изменения вы не вносили в свою модель данных, кроме добавления новых entity — вы автоматически получаете рабочий проект (при прочих равных условиях). В случае добавления новой сущности, вам надо будет добавить эти файлы к проекту, как впрочем и без использования mogenerator.

Основные три ссылки на эту тему вот:

https://github.com/rentzsch/mogenerator

http://rentzsch.github.com/mogenerator/

http://raptureinvenice.com/getting-started-with-mogenerator/

Кому будет интересно, разберется сам — там все супер просто. Если же все-таки будут вопросы, то пишите, и я расскажу подробнее.

Для меня плюсы очевидны — я получаю гораздо лучше читаемый и управляемый код. Остальные несколько плюсов в третьей ссылке.

Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s