Задать вопрос
@Mirzamorph

Каким образом реализовать хранение данных в мобильном приложении ios с вопросами и ответами на них?

Добрый день!

Я новичок в мобильной разработке и хотел бы узнать как лучше организовать хранение данных в приложении.
Мобильное приложение на базе ios, с использованием языка программирования swift 5.
Приложение будет состоять из регистрации(которая будет реализована с использованием firebase) и вопросов с ответами на них.
Например, предположим будет вопрос "Какой формы земля?" и внизу будет представлены ответы в виде кнопок "Круглая", "Квадратная", "Плоская", "Ромбовидная".
Также будут другие типы вопросов, например, вопрос о форме земли тот же, но вместо правильных ответов, будет text label, куда нужно будет вписать ответ.

Вопрос заключается в том, как именно лучше всего реализовать хранение этих вопросов с ответами на устройстве, я пока нашел несколько вариантов, но не знаю, какой из них лучше:
  • Plist файл
  • Json файл

Возможно есть и варианты получше.
То есть если реализовывать json файл, то будет выглядеть примерно так(пока еще думаю):
{
   "id": "1",
   "title": "Какой формы земля?",
    "type": "buttons",
    "right-answer": "Плоская",
    "wrong-answers": "Круглая, Квадратная, Ромбовидная"
}


И потом парсить все этот json в зависимости от поля type.

UPD:
Вопросы и ответы будут редактироваться только разработчиком, то есть в теории, чтобы пользователь увидел новые вопросы ему нужно будет обновить приложение в App Store.

UPD2:
А где правильнее хранить json файл?
На сервере или в самом приложении?
Все таки запросы к файлу, который лежит самом приложении, будут быстрее, чем к удаленному серверу, но в первом случае есть возможность изменить что-то в случае ошибки(Или сломать все).
  • Вопрос задан
  • 1097 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 3
ivanvorobei
@ivanvorobei
iOS разработчик, канал https://t.me/sparrowcode
Конечно JSON, даже не сомневайся.
Архитектура правильная, чуть шлифануть:

{
   "id": "1", //  всё отлично
   "title": "Какой формы земля?", // можно question
   "type": "buttons", // Если это стиль отображения, тогда сделай массив. Если тип вопроса - всё ок
   "answers" {
      "correct": "Плоская"
      "incorrect": ["Круглая", "Квадратная", "Ромбовидная"]
   }
}


Для ответов обновил иерархию, неправильные ответы в массив. Правильные ответы хорошо бы тоже в массив.

UPD2:
А где правильнее хранить json файл?

Если вопросы добавлять редко, то локально. Ради потенциальной возможности исправить ошибку мучать http не стоит)
Ответ написан
@RomanKerimov
Вопросы и ответы будут редактироваться только разработчиком, то есть в теории, чтобы пользователь увидел новые вопросы ему нужно будет обновить приложение в App Store.


В этом случае можно и в коде всё прописать, а компилятор в значительной степени будет проверять корректность введённых данных ещё на этапе компиляции, а не парсер сыпать ошибками в рантайме. На парсинг не будет тратиться лишнее процессорное время. Усложнится жизнь хитрецов, которые решат достать ответы из приложения.
Ответ написан
Комментировать
briahas
@briahas
ObjC, Swift, Python
Если из предложенных вами вариантов - я бы выбрал JSON
Если предполагается в дальнейшем наворачивание параметров на элементы - то тут надо БД и я бы выбирал Realm
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы