Я разрабатываю приложение, похожее на Whatsapp (с его специальными функциями, конечно), и я сейчас в точке, где, я думаю, я должен реорганизовать весь существующий код, чтобы он соответствовал шаблон проектирования MVC (из-за слишком большого количества кода клея).MVC дизайн в приложении iOS похож на Whatsapp
Если я нарушу приложение в несколько простых вещей, мы будем иметь:
- Первое сообщение:
- ID
- непрочитанные сообщение
- Источник пользователя
- Целевой пользователь
- Обычное сообщение:
- ID
- Первое сообщение (слабая ссылка)
- Полученное государство (GOT к серверу/Got клиенту/Читать клиентом)
- Am владельца я сообщения (я источник)
- Дата
- Пользователь:
- ID
- Номер телефона
- Изображение профиля Ссылка
Обратите внимание на «непрочитанные сообщения» должен быть включен, если есть какие-либо сообщения, пользователь не читал. просто оптимизация с сервера.
Я никогда не работал с шаблоном проектирования MVC должным образом, поэтому я хотел бы убедиться, что мои планы верны или, возможно, есть дополнительные/другие вещи, которые я должен делать.
Я думал о:
- Модель:
- Создать файл xcdatamodel Core-Data, которая будет содержать вышеуказанные объекты
- Используйте библиотеку mogenerator для создания сущностей файлов из ядра -data model
- Создание моделей данных для каждой операции. например: зарегистрировать модель данных, которая будет обрабатывать всю регистрацию api с сервером; Message Data-Model, которая будет обрабатывать отправку нового сообщения и получение новых сообщений; и т. д. Все они будут одноточечными.
- Вид:
- всех виды WhatsApp, как внешний UITableViewController (для отображения уникальных пользователей) и внутренней UITableViewController (для отображения сообщений от конкретного пользователя).
- Контроллер:
- использует некоторые из перечисленных выше моделей данных для извлечения новых данных явно
Я думаю, просто дать API от модели к контроллеру который он может использовать в явном виде, но не использует уведомления или конструкции с привязкой к ключевым значениям.
Я не нашел ни одного онлайн-учебника или документа, объясняющего, что лучше делать.
Любые предложения?