#ios #swift #core-data #synchronization
#iOS #swift #core-данные #синхронизация
Вопрос:
Я создал собственное приложение для продажи билетов и регистрации учащихся на наши школьные танцы. На данный момент приложение может сканировать QR-код с информацией об ученике и добавлять его имя либо в список «Продажи», либо в список «Регистрация». Затем приложение может экспортировать эти списки в CSV-файл, и мы скомпилируем все данные.
Приложение работает отлично, как и ожидалось. ТЕПЕРЬ я хочу иметь возможность синхронизировать данные между несколькими устройствами, чтобы каждое устройство видело актуальный список продаж и регистрации. Список регистрации наиболее важен, потому что тогда наши преподаватели-сопровождающие могут видеть, кто пришел на танцы в режиме реального времени. Я подумал, что мне нужно будет создать сервер для хранения всех данных, а не на отдельных устройствах, как я делаю сейчас (CoreData). Может кто-нибудь, пожалуйста, дать мне рекомендации или советы относительно того, куда идти дальше? Я использую Swift и разрабатываю для iOS 10.
Ответ №1:
Я бы просто ответил на общий подход к решению этой проблемы, поскольку реализация во многом будет зависеть от многих факторов (какая технология базы данных доступна, платформа сервера и т. Д.)
Вы абсолютно правы, вам нужен сервер для хранения данных. Технически говоря, это база данных, в которой хранятся данные. Таким образом, вам нужна база данных, работающая на вашем сервере (здесь есть множество вариантов выбора: Maria DB, SQL Server, Mongo DB и т. Д.).
Далее вам нужно создать веб-сервис поверх базы данных, чтобы приложение iOS могло взаимодействовать с базой данных (добавлять / удалять / обновлять / читать строки). Веб-сервис является очень распространенным уровнем в приложениях с полным стеком, поскольку вы обычно не обращаетесь к базе данных напрямую.
Наконец, вам нужно защитить свой веб-сервис с помощью какой-либо аутентификации. Т.Е. Вы не хотите, чтобы какой-либо случайный человек мог получить доступ к вашему веб-сервису без разрешения. Существует множество реализаций для защиты вашего веб-сервиса, и вы должны иметь возможность легко использовать Google.
Ответ №2:
Firebase может быть самым простым решением. Его довольно просто настроить, и его довольно просто настроить сохранение данных при отключении от сети. Я стараюсь придерживаться встроенных сервисов Apple, но Firebase трудно превзойти для простых приложений.
Ответ №3:
Взгляните на CloudKit или, возможно, Firebase или Azure, как на сервисы, которые предоставят вам внутренний сервер и предоставят вам протестированный SDK для сборки.