Каким образом реализовать хранение данных в мобильном приложении 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 файл?  

На сервере или в самом приложении?  

Все таки запросы к файлу, который лежит самом приложении, будут быстрее, чем к удаленному серверу, но в первом случае есть возможность изменить что-то в случае ошибки(Или сломать все). 

**Конечно JSON**, даже не сомневайся.   

Архитектура правильная, чуть шлифануть:  
  

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

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

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

  

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

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

   
  

В этом случае можно и в коде всё прописать, а компилятор в значительной степени будет проверять корректность введённых данных ещё на этапе компиляции, а не парсер сыпать ошибками в рантайме. На парсинг не будет тратиться лишнее процессорное время. Усложнится жизнь хитрецов, которые решат достать ответы из приложения. 

 Если из предложенных вами вариантов - я бы выбрал JSON  

Если предполагается в дальнейшем наворачивание параметров на элементы - то тут надо БД и я бы выбирал Realm