Подтвердить что ты не робот

Почему я должен использовать Core Data для своего iPhone-приложения?

Я работаю над своим вторым приложением для iPhone и интересуюсь Core Data. Время на проект ограничено, как и мое время в целом.

Я единственный разработчик, и я чувствую, что Core Data будет полезен, но я не могу четко объяснить, почему.

Извините, пожалуйста, следующее обфускация. Приложение должно получить список foos с центрального сервера. Затем пользователи могут добавить панель, из списка баров, в foos, а затем добавить baz из списка bazes (!?) в панель, а затем добавить некоторые дополнительные фотографии и описания в baz.

После того, как пользователь доволен своей работой в баре и базе, они затем нажали кнопку синхронизации, чтобы загрузить свои данные на центральный сервер.

Как вы можете видеть, это простое древовидное приложение, основанное на данных, но я все еще не уверен, что могу оправдать использование Core Data с нашими временными ограничениями - кривая обучения выглядит крутой.

Если спорить с моим боссом о том, что мы должны использовать Core Data, какие пулевые моменты я могу застрелить? Логические гранаты также приветствуются.

4b9b3361

Ответ 1

Основные данные в основном помогут во вспомогательных аспектах приложения - такие вещи, как сохранение данных, презентация и т.д. Некоторые маркеры для вашего босса:

  • Core Data управляет функциями сохранения и отмены. Он имеет постоянное хранилище, которое отслеживает изменения и может автоматически очищаться на диске в любое время (приложение закрывается и т.д.).
  • Основные данные и связанные классы предоставляют простые способы получения ваших объектов в UITableViews, например NSFetchedResultsController.
  • Core Data абстрагирует многие беспорядочные вещи, которые вам в противном случае приходилось иметь дело с собой, такие как списки объектов, отношения "один ко многим" или "многие ко многим" или ограничения атрибутов объектов, в один хороший чистый объектно-ориентированный интерфейс.
  • Core Data поставляется с красивым графическим редактором объектных моделей, который может помочь вам продумать свой дизайн объекта/объекта и усовершенствовать его, когда вы идете. (Он также поддерживает миграцию, поэтому, если позже вы решите, что хотите использовать разные атрибуты для своих объектов, вы можете сделать это относительно легко.)

Конечно, кривая обучения может быть немного крутой, но примеры Apple хороши для начала, а документация Core Data очень полна и полезна. После того, как вы потеряете Core Data, вам будет легко создавать ваше приложение.

Ответ 2

Чтобы использовать CoreData, вам нужно знать, сколько технологий, концепций и шаблонов Cocoa. Кривая обучения не очень крутая, если вы знаете эти вещи. Если он выглядит крутым, я бы не стал критическим для вашего проекта, а затем просто учился во время простоя, наконец, используя его, как только вам станет удобно с ним. Это определенно не новичок. вам понадобится хорошая основа программирования, включая Cocoa конкретные технологии и концепции. Многие видят это и думают, что им будет легко, потому что они могли бы получить много бесплатно. Это похоже на генератор кода, довольно близкий к бесполезному для кого-то, кто использует его, чтобы сделать именно это (испускать код), а не использовать его умело в ответ на заданный набор.

Ответ 3

Что касается кривой обучения, я не думаю, что это так плохо, как вы думаете. Используя примерные классы Apple и шаблон проекта по умолчанию CoreData, я смог иметь рабочее приложение CoreData (довольно простое, но не тривиальное) за один день, и мне потребовалось всего пару дней, когда мы играли с кодом, прежде чем я действительно хорошее понимание того, что все движущиеся части (все при разработке остальной части приложения, поэтому не было потрачено время на возиться).

CoreData работает очень... логично, я думаю, и это невероятно удобно. Это экономит вам много накладных расходов, и я знаю, что это, безусловно, спасло меня много времени, написав это приложение. Короткий первоначальный вклад в изучение новой технологии стоит того, чего стоит в долгосрочной перспективе, теперь, когда у меня есть такой мощный инструмент в моей кобуре.

Ответ 4

Я все еще в области знаний X-Code 101, но первое приложение, которое я взяло на себя, использовало основные данные ядра (после прочтения хорошего учебника).

Существует много программного обеспечения для шаблонов, которое уже написано в пустом шаблоне приложения, но фактическое взаимодействие программиста с функциональностью базы данных минимально и просто.

Сделайте снимок: это проще, чем вы думаете.

Ответ 5

У вас есть несколько различных вариантов для постоянного локального хранилища, но вам все равно нужно использовать один из них, поэтому почему бы не использовать Core Data?

Что касается кривой обучения, в примерах есть приложения, которые помогут вам здесь. Это довольно просто, как только вы проходите через образцы.

-t

Ответ 6

Объект, управляемый основными данными, может иметь все свои данные, сохраненные в базе данных, и ссылается только на идентификатор в памяти. Таким образом, Core Data может сэкономить массу памяти, особенно когда у вас много данных модели. После использования Core Data вам больше не нужно беспокоиться о проблемах с памятью данных модели.

Ответ 7

Другие ответы здесь объясняют, почему вы можете использовать основные данные, но поскольку его кривая обучения, похоже, является общей проблемой, может быть полезно для тех, кто наткнулся на этот вопрос, чтобы знать, что существует альтернатива со значительно "менее крутой" кривой обучения: Realm.

Вот краткий пост Quora о том, почему вы можете рассматривать Realm over Core Data: https://www.quora.com/Why-would-you-use-Realm-over-Core-Data