Любой из вас получил ответ на вопрос о том, какая модель более тривиальна для приложений, управляемых облачными приложениями iOS?Restkit + Rails API или TouchDB + CouchDB?
Restkit + RESTful API или TouchDB + CouchDB?
Любой из вас получил ответ на вопрос о том, какая модель более тривиальна для приложений, управляемых облачными приложениями iOS?Restkit + Rails API или TouchDB + CouchDB?
Restkit + RESTful API или TouchDB + CouchDB?
Существует очень трудно ответить на ваш вопрос, не зная, что вы хотите сделать. Вы можете сделать обе работы для разных случаев использования.
Есть несколько вещей, чтобы рассмотреть следующие вопросы:
TouchDB является полнофункциональным хранилищем данных nosql, работающим на устройстве, и позволяет пользователю читать и записывать данные даже без подключения. Для полной работы Restkit требуется соединение.
TouchDB будет копировать данные на устройство, и это будет проще, если у вас есть относительный небольшой набор данных. Размер измеряется количеством документов в вашей базе данных, а также размером документов.
Кроме того, большую часть времени устройство должно выполнять полную репликацию при запуске приложения (первоначальная репликация), поэтому вы можете обойти это (например, встроить большую часть данных в приложение apk) и только реплицировать delta.
Кстати, вы, безусловно, можете использовать оба варианта и получить преимущества обоих.
Использование CouchDB + TouchDB полностью отменяет синхронизацию. Вам не нужно заботиться о синхронизации, это просто работает. Вы получаете уведомление по синхронизации, обновляете свой пользовательский интерфейс, вот и все.
Замена базового стека данных TouchDB также довольно проста. Объекты модели в основном остаются неизменными, только они теперь наследуются от CouchModel вместо NSManagedObject. Это почти тривиально.
Querying немного отличается от данных Core. Вы определяете набор представлений (индексов), которые разрезают и сортируют ваши данные по различным критериям, а затем запрашивают эти индексы с ключом начала и конца. Итак, нет явного языка запросов, но на самом деле это неудобство.
Я переместил приложение Core Data в TouchDB, и это было совершенно безболезненно. Примерно через 3 дня у меня была CRUD и синхронизация.