CloudKit - нет серверной логики?
С CloudKit вы можете сосредоточиться на разработке приложений на стороне клиента и позволить iCloud избавиться от необходимости писать серверное приложение логика. CloudKit предоставляет вам аутентификацию, частную и общедоступную базу данных, структурированные и услуги хранения активов - все это бесплатно с очень высокими лимитами.
Вы не можете загрузить какой-либо код для запуска на серверах Apple?
Я слышал, что он сравнивается с Google App Engine и другими облачными вычислительными платформами, но без возможности запуска вашего собственного кода не все это довольно ограничено и не очень сопоставимо?
Например, если я хочу создать новостное приложение, которое периодически выталкивает истории на темы, которые интересует пользователя, то это невозможно сделать с помощью CloudKit, потому что мне нужны запланированные задания и обработка данных на сервере.
Любые мысли?
Ответы
Ответ 1
на стороне сервера
Как вы сказали, CloudKit не разрешает серверный код.
Но есть возможности.
Crons
Вы не хотите каждый день подключаться к панели iCloud Dashboard, чтобы выполнить нажатие, добавив запись. Одним из решений здесь является кодирование приложения на Mac-сервере (я думаю, что mac mini, поскольку сервер станет более популярным с CloudKit), каждый день добавляет новый Daily
CKRecord
.
Подписки
Концепция подписки заключается в том, что клиент регистрируется для определенных обновлений. Например, вы можете создать тип записи, называемый Daily
, и заставить пользователей зарегистрироваться на него. Вы должны проверить документацию Apple и видео WWDC14 (даже если подписки не детализированы, это хорошая начальная точка).
Хорошо, что push-уведомления связаны с концепцией подписки. Итак, в основном вы говорите: добавьте уведомление о каждом новом CKRecord
типа Daily
.
Сторона BaaS
Какой смысл использовать CloudKit (vs Parse и другие?)
- Цена: CloudKit имеет действительно приятную цену.
- Готов к работе: 2 клика внутри XCode, и вы готовы к работе.
- Согласованность пользователей: вы получаете бесплатный вход пользователя для всех своих устройств через свою учетную запись iCloud. С очень хорошей системой конфиденциальности. И вы можете получить отношения с интеллектуальной системой.
Но:
- Вы играете на платформе Apple. Мы даже не знаем, можем ли мы экспортировать данные.
- Только для данных (без серверного кода)
- Линейка CloudKit слишком ограничена
Будущее
CloudKit все еще довольно новый. На WWDC некоторые ребята за этим заставило меня понять, что они все еще активно работают над этим. Мои ставки заключаются в том, что они работают над двумя важными моментами:
- Выполнение серверного кода через удаленные запланированные задачи
- CloudKit для Google Analytics (сторона визуализации)
Изменить. Ребята из Apple полностью осознают и обеспокоены отсутствием доступа к веб-данным для данных. Это означает, что в один прекрасный день он будет доступен с других платформ. Я прочитал в комментарии, что Apple, вероятно, купила бы Parse, если CloudKit не был бы лучше, AFAIK они пытались купить Parse (навыки купили его, но мы действительно не знаем).
Обновление WWDC15
CloudKit теперь доступен в JS, и некоторые панели доступны. Подождите и посмотрите.
Обновление февраля 2016 года
CloudKit теперь поддерживает Запросы веб-служб от сервера к серверу
Справка по веб-службам
Ответ 2
В некоторых случаях нам не нужна логика на стороне сервера, и просто хранение статических данных может охватывать весь сценарий использования.
В этом случае было бы очень полезно, если бы имелось свободное хранилище, которое вы можете хранить. CloudKit предоставляет такие продукты, а не полную сервисную платформу.
Да, он ограничен. В любом случае, это может быть полезно для некоторых людей. Например, ваш случай может быть поддержан CloudKit. Хотя CloudKit - это просто статическое хранилище, поддерживает подписку. Которая контролирует набор условий и подталкивает уведомление о событии клиенту. Ему повезло, что единственная функция фонового задания, поддерживаемая CloudKit, - это именно то, что вам нужно.
В любом случае, если вам нужно больше, вам может потребоваться полноценный сервер. Обычно простые веб-службы с простой поддержкой выполнения кода на стороне сервера также ограничены.
Ответ 3
Вы не можете загрузить какой-либо код для запуска на серверах Apple?
Вы можете и не можете. Вы не можете загружать веб-сервисы на основе кода /SOAP на сервер, вместо этого вы можете загружать/хранить наблюдателей на сервере, называемых подпиской.
целая вещь довольно ограничена и не совсем сопоставима?
Я бы сказал, что в CloudKit
и в MBaas
клиент взаимодействует с сервером, хотя более узкий, более надежный интерфейс: вы не можете загружать экзотический веб-сервис для обработки XML-данных, манипуляций с базами данных и на основе на нем инициируются push-уведомления, но архитектура RestFull
позволяет выполнять 4 основные операции в хранилище данных, а клиент подписки может получать уведомления об операциях INSERT/UPDATE/DELETE, выполняемых в таблицах.
Я думаю, что MBaas
- это всего лишь следующий шаг в эволюции архитектуры сервер-клиент. Сначала кажется, что это ограничение, но вы можете делать все как в мире веб-сервисов на основе SOAP. Разработка чрезвычайно быстра/масштабируема/удобна в использовании и упрощает управление такими вещами, как разрешения/настройки, обслуживание сервера, безопасность почти не требует усилий.
Ответ 4
Верьте или нет, вы действительно можете получить ДЕЙСТВИТЕЛЬНО далеко с этим подходом.
Я не использовал CloudKit, но я могу описать для вас свой стек приложений:
AngularJS (или ваша любимая инфраструктура рендеринга HTML на стороне клиента): на одной странице будет размещена серия шаблонов/контроллеров, выбранных маршрутизатором, и управляемая пользователями, изменяющая привязку, чтобы выбрать, на какой странице они " re on.
Firebase.io (или ваше любимое облачное хранилище): любые динамические данные поступают в хранилище облачных документов. Контроллер должен загружать данные и отображать шаблон на клиенте, а когда данные изменяются, отправьте данные обратно. Это также обеспечивает аутентификацию и авторизацию, поскольку вы можете ограничить доступ к данным.
Теперь вам нужно место для обслуживания HTML/CSS/JS/изображений... которое не требует "выполнения кода на стороне сервера", просто веб-сервера, на котором вы можете поместить активы.
Используя этот метод, вы можете сохранить все пользовательские темы в базе данных для этого пользователя, а при загрузке страницы перейдите и соберите все источники для этих тем (также хранящихся в базе данных) полностью на стороне клиента. В вашем примере приложения ничего нет, что на самом деле требует выполнения на стороне сервера, если у вас есть облачное хранилище, которое предоставит вам службы аутентификации и авторизации и "немой" веб-сервер для обслуживания статических активов.
Ответ 5
CloudKit не является полноценным веб-хостингом. Вместо этого это SDK для iCloud. Вы не должны размещать там веб-сайт, просто сохраняя пользовательские данные, которые вы можете использовать в нескольких приложениях или платформах.
API iCloud позволяет вашим приложениям хранить данные приложения в iCloud, сохраняя ваши приложения в актуальном состоянии автоматически. Используйте iCloud, чтобы обеспечить пользователям постоянный и беспрепятственный доступ к устройствам с поддержкой iCloud.