【iOS】Дизайн платформы обмена мгновенными сообщениями для приложений (на основе стороннего SDK)

【iOS】Дизайн платформы обмена мгновенными сообщениями для приложений (на основе стороннего SDK)

предисловие

При разработке приложений для социальных чатов функция обмена мгновенными сообщениями является незаменимой, и службы обмена мгновенными сообщениями многих компаний подключены к сторонним компаниям, и используются лишь немногие собственные разработки.Отечественные производители обмена мгновенными сообщениями также очень зрелы.Решения также основаны на сторонних сервисах. party SDK; я использовал службы обмена мгновенными сообщениями собственной разработки, Tencent, Huanxin, Rongyun и Shengwang.

Платформа APP IM должна иметь следующие преимущества или отдавать приоритет нескольким моментам:

  • 1. Идеальная поддержка бизнес-сценариев;

  • 2. Сильная масштабируемость (способность, пользовательский интерфейс), способная справляться с различными «трудностями» продакт-менеджеров;

  • 3. Сторонний IM SDK мало связан с бизнесом приложений и может быть заменен в любое время;

  • 4. Удобно хранить локализованные данные, обычно информацию о пользователях и записи чатов;

возможность обмена мгновенными сообщениями

Когда мы подключаемся к стороннему IM SDK, нам нужно сначала создать пакет на основе стороннего SDK, чтобы, если мы сменим поставщика в будущем, нам нужно было только изменить наше достижение пакета, что в основном не имеет никакого влияния. на нашем бизнес-API и пользовательском интерфейсе; Позвольте мне взять в качестве примера мой запечатанный SMTXIMManager:
SMIMManager

QA: 2. Сильная масштабируемость (возможности, UI), способная справляться с различными «трудностями» продакт-менеджеров,
спрос: продакт-менеджеры хотят добавить в интерфейс чата спрос на заказ песен пользователями.
Анализ: пользователь A заказывает песню для пользователя B, а пользователь A выбирает песню и отправляет ее B. Пользовательское сообщение будет добавлено в списки сообщений A и B, а затем появится контроллер воспроизведения для воспроизведения песня; разработка:
1.
Во-первых, мы просто добавляем пользовательский тип сообщения в SMIMManager;
2. Подождите минутку...

QA: 3. Сторонний IM SDK мало связан с бизнесом приложений и может быть заменен в любое время;

Затем мне нужно только изменить привязку между SMIMManager и SDK.На самом деле, мне не нужно изменять другие бизнес-модули, или вы также можете интегрировать два IM SDK в приложение одновременно, так что вам нужно принять решение в СМИМменеджере.

Фреймворк пользовательского интерфейса

Как правило, есть только два контроллера, связанных с IM, один — интерфейс списка сеансов, а другой — интерфейс чата.Я также добавил сюда контакты, поскольку контакты также являются частью APPIM, как показано ниже:
Платформа пользовательского интерфейса обмена мгновенными сообщениями

Интерфейс диалогового чата (SMChatViewController)

Список сообщений (SMMessageController)

Это в основном отвечает за отображение сообщений IM.Инкапсулированный SMIMManager API отвечает за вызовы здесь, такие как получение кэшированных исторических записей чата, отображение новых сообщений, отзыв сообщений и т. д.
SMMessageController в основном использует ячейку и данные сообщения, как показано на рисунке ниже:
вставьте сюда описание изображения
вставьте сюда описание изображения
вышеприведенный иерархический режим, многие новички Xiaobai могут понять его с первого взгляда.
QA: 2. Сильная масштабируемость (возможности, UI), способная справляться с различными «трудностями» продакт-менеджеров,
спрос: продакт-менеджеры хотят добавить в интерфейс чата спрос на заказ песен пользователями.
Анализ: пользователь A заказывает песню для пользователя B, а пользователь A выбирает песню и отправляет ее B. Пользовательское сообщение будет добавлено в списки сообщений A и B, а затем появится контроллер воспроизведения для воспроизведения песня; разработка:
1.
Во-первых, мы добавляем пользовательский тип сообщения в SMIMManager;
2. Добавляем пользовательский SMMusicMessageCell и SMMusicMessageCellData, а затем регистрируем и анализируем его в списке;
3. После нажатия на сообщение SMMusicMessageCell он вызовет пакет Плеер песен играет.

SMInputController (поле ввода)

Поле ввода объединяет ввод текста, языковой ввод, пакеты смайликов, изображения, видео, подарки и т. д. следующим образом:
вставьте сюда описание изображения

Соответствующая структурная схема выглядит следующим образом:
вставьте сюда описание изображения

SMShowVipGiftView (подарок, заказ песни, членство и т. д. платные услуги)

Это инкапсулированный всплывающий слой, который вызывается на подарочной кнопке SMInputBar, и сказать тут нечего.

Список друзей (SMContactsListViewController)

Об этом нечего сказать, SMUserRelationship уже инкапсулировал соответствующий API.

Список бесед (SMConversationListViewController)

Есть системные сообщения, агрегация сообщений, удаление сеанса, пометка сеанса как непрочитанного, SMIMManager и SMUserRelationship также инкапсулировали соответствующие API.

QA: 1. Он отлично поддерживает бизнес-сценарии,
может ли приведенный выше дизайн идеально подойти для вашего бизнеса?

хранилище

Нижний уровень локального хранилища данных, используемый в проекте, использует sqlite и сторонний фреймворк с открытым исходным кодом FMDB GitHub.Также в Интернете есть много вторичных пакетов на основе FMDB, которые также очень хороши.IM в основном предназначен для хранения информации о пользователе и данных чата. Если вы хотите рассмотреть Когда дело доходит до безопасности, вы можете выбрать шифрование базы данных. Я не буду говорить здесь о шифровании. Когда-нибудь у меня будет время поговорить о безопасности мобильных терминалов.

QA: 4. Локализованное хранение данных удобно, в основном информация о пользователях и записи чатов,
здесь я думаю удобство в простоте использования упаковки, безопасности доступа и локальной безопасности данных.

другой

При отправке сообщений, таких как изображения или видео, мы обычно загружаем их в облачное хранилище (Qiniu, OSS и т. д.), а затем помещаем ссылку на облачное хранилище в пользовательский формат сообщения и отправляем ее другой стороне.

При именовании файла ресурсов лучше всего добавить такую ​​информацию, как ширина, высота и формат изображения или видео, поэтому, когда мы получим ссылку, даже если сеть не очень хорошая, мы можем сначала установить контейнер, который способствует отображению пользовательского интерфейса страницы.

Supongo que te gusta

Origin blog.csdn.net/u014220518/article/details/129026495
Recomendado
Clasificación