ДжетЧат
Простая имитация приложения чата WeChat, написанная на Swift5.0, с идеальной поддержкой клавиатуры смайликов, одиночного чата, группового чата, кэша локального сеанса сообщений, круга друзей, режимов дневной и ночной темы.
Примеры
чат | Моменты |
---|
| |
Ночной режим | режим дня |
---|
| |
Основные технические применения
- Функция чата использует адаптивную архитектуру RxSwift+MVVM и разумно передает данные сообщений через ViewModel, чтобы уменьшить бизнес-расчеты на уровне контроллера.
- UITableView+FDTemplateLayoutCell реализует адаптивный расчет и кэширование высоты ячеек, улучшая плавность скольжения списка.
- WCDBSwift реализует быстрое кэширование всех сообщений сеанса.
- На основе драйвера данных IGList реализовано скольжение списка друзей с высокой частотой кадров.
- RxTheme адаптируется к ночному режиму и совместим с iOS13 в соответствии с настройками системного режима.
- Автоматическая компоновка чистого кода SnapKit
Основные функции
- Обработка инкапсуляции управления клавиатурой чата, поддержка многострочного ввода смайлов и поддержка iOS13.
- Пользователь: добавление друзей, добавление групп, изменение заметок и имен пользователей, локальная синхронизация в реальном времени.
- Чат: индивидуальный чат, групповой чат «один ко многим», поддерживает текст, видео, отправку и пересылку изображений, просмотр изображений и видео.
- Разговор: последние записи разговоров в чате, отображаются в списке, отсортированном по времени последнего времени.
- Уголок: отображение количества непрочитанных сообщений в одном разговоре, отображение количества всех непрочитанных сообщений.
- Очистить: удалить одно сообщение, выйти из группы, удалить друзей, очистить значки сеанса сообщений, удалить записи.
На данный момент основные функции завершены. Чтобы узнать о конкретных функциях, вы можете скачать исходный код и запустить его по адресу https://github.com/developerjet/JetChat.
Новые возможности
- Моменты: IGList реализует скольжение списка моментов с высокой частотой кадров.
- Темный режим: RxTheme реализует переключение дневного и ночного режима темы и совместим с iOS13 после настроек системного режима.
- Виджет: добавьте виджет недавнего чата. Нажмите на виджет, чтобы перейти в комнату чата [обратите внимание на конфигурацию AppGroupsID].
- Многоязычное переключение: добавлен английский перевод.
Советы
- Если у вас есть лучшие предложения и решения по оптимизации для этого проекта или вам нужно добавить какие-либо интересные функции, отправьте их в lssues.
- Ошибка запуска Xcode15: SDK не содержит «libarclite», решение https://www.jianshu.com/p/6f3798d1de0e
Лицензировано по лицензиям MIT.
- Если вас заинтересовал этот проект или он вам помог, надеюсь, вы дадите мне «Звезду», большое спасибо❤️