Нужен совет по синхронизации данных между устройствами iOS в одном приложении

#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 для сборки.