Тема: РАЗРАБОТКА БИБЛИОТЕКИ ЧАТОВ ДЛЯ ПЛАТФОРМЫ IOS
Характеристики работы
Закажите новую по вашим требованиям
Представленный материал является образцом учебного исследования, примером структуры и содержания учебного исследования по заявленной теме. Размещён исключительно в информационных и ознакомительных целях.
Workspay.ru оказывает информационные услуги по сбору, обработке и структурированию материалов в соответствии с требованиями заказчика.
Размещение материала не означает публикацию произведения впервые и не предполагает передачу исключительных авторских прав третьим лицам.
Материал не предназначен для дословной сдачи в образовательные организации и требует самостоятельной переработки с соблюдением законодательства Российской Федерации об авторском праве и принципов академической добросовестности.
Авторские права на исходные материалы принадлежат их законным правообладателям. В случае возникновения вопросов, связанных с размещённым материалом, просим направить обращение через форму обратной связи.
📋 Содержание
Перечень условных обозначений 4
Введение 5
1 Выявление и анализ требований 6
1.1 Анализ существующих аналогов чатов 6
1.2 Описание нефункциональных требований 9
1.2.1 Производительность 9
1.2.2 Совместимость 10
1.2.3 Расширяемость 10
1.3 Варианты использования приложения-примера 11
1.3.1 Возможности чатов 11
1.3.2 Возможности сообщений 12
1.3.3 Вспомогательные возможности 15
1.4 Основные процессы библиотеки 15
1.4.1 Синхронизация локального и удаленного хранилищ 16
1.4.1.1 Синхронизация списка чатов 16
1.4.1.2 Синхронизация сообщений 18
1.4.2 Синхронизация систем предпросмотра и выбора вложений 21
1.5 Схема конфигурации библиотеки 23
2 Проектирование и архитектура библиотеки и приложения-примера 27
2.1 Выбор стека технологий 27
2.2 Архитектурный подход MVVM 28
2.3 Паттерн Coordinator 29
2.4 Слой сервисов 29
2.5 Внедрение сервисов в виде зависимостей 30
2.6 Применение MVVM, координаторов и сервисов 31
2.7 Диаграмма пакетов библиотеки 32
2.8 Диаграмма пакетов приложения-примера 33
2.9 Диаграммы классов библиотеки 33
2.9.1 Система библиотеки 37
2.9.2 Конфигурация библиотеки 37
2.10 Генерация ячейки сообщения 37
2.10.1 Блоковая система создания ячейки 38
2.10.2 Типы промежуточных LayoutBlock 38
2.10.3 Типы конечных MessageLayoutBlock 38
3 Реализация библиотеки 40
3.1 Используемые технологии 40
3.2 Сервисы библиотеки 41
3.2.1 Сервисы для внутренней работы библиотеки 41
3.2.1.1 Сервис для хранения сущностей CoreDataStorageService 41
3.2.1.2 Сервис для хранения вложений AttachmentsStorageService 43
3.2.1.3 Сервис для управления локальными данными CacheService 43
3.2.1.4 Сервис для реализации запросов к удаленному серверу RemoteService 44
3.2.1.5 Сервис для работы с доступом к фотографиям устройства MediaService 44
3.2.2 Сервисы для контроля библиотеки 44
3.2.2.1 Сервис контроля ControlService 44
3.2.2.2 Сервис событий EventService 44
3.2.3 Демонстрация работы сервисов на примере отправки сообщения 45
3.3 Список сообщений 47
3.3.1 Коллекция сообщений 47
3.3.2 Создание и доставка LayoutBlock для ячейки сообщения 47
3.4 Тестирование библиотеки 49
3.4.1 Динамическое изменение настроек конфигурации 49
3.4.2 Генерация ячейки сообщения 50
3.4.3 Синхронизация выбора и предпросмотра вложений 50
3.4.4 Синхронизация локального и удаленного хранилищ в списке сообщений 51
3.4.5 Действия над сообщениями 51
3.4.6 Пример реализации теста 52
4 Реализация приложения-примера 54
4.1 Главный экран настроек 54
4.2 Визуальные элементы настройки чатов и настройки сообщений 55
5 Требования к удаленному серверу 56
5.1 Типы соединений для списка чатов 56
5.2 Типы соединений для списка сообщений 56
5.3 Логика работы с сущностью «Сообщение» 57
5.4 Общие требования 57
Заключение 58
Список использованных источников и литературы 59
Приложение 63
📖 Введение
Компаниям, работающим в различных отраслях, необходимо создавать чаты для общения с клиентами и внутрикорпоративного общения, однако создание собственного мессенджера может быть дорогостоящим и времязатратным процессом. Примечательно, что при этом большинство чатов имеют схожие функционал и реализацию.
По этой причине наша компания приняла решение разработать универсальную библиотеку чатов, которая содержит набор особенностей, необходимых для создания чата. Эти особенности покроют все запросы большинства компаний. Особенности можно включать и выключать в зависимости от требований конкретного проекта. Мы также планируем использовать эту библиотеку в своих будущих продуктах, чтобы ускорить процесс разработки и снизить затраты на создание собственного мессенджера.
В рамках данной дипломной работы описываются анализ, проектирование и разработка библиотеки чатов для iOS [1], а также приложения-примера, использующего библиотеку. Для приложения-примера приводится анализ и проектирование удаленного сервера, необходимые для корректной эксплуатации библиотеки. Также следует отметить, что для удобства потенциальных пользователей разработана и Android-версия [2], которая способна взаимодействовать с удаленным сервером аналогично iOS-клиенту, однако в рамках данной работы она не рассматривается.
Таким образом, цель работы заключается в разработке библиотеки чатов и приложения-примера для платформы iOS, а также составлении требований для серверной части, которая сможет корректно взаимодействовать с библиотекой. В задачи проекта входит анализ требований, выбор архитектуры и реализация библиотеки и приложения- примера, а также составление требований для удаленного сервера
✅ Заключение
Для разработанной библиотеки были написаны UI, Unit и Integration тесты с целью выявить потенциальные слабости системы, закрепить имеющийся функционал и сохранить качество кода.
Для демонстрационных целей было спроектировано и разработано приложение- пример, способное полностью отобразить все реализованные возможности библиотеки.
Библиотека готова к интеграции с удаленным сервером, для которого были составлены и обозначены требования, соблюдение которых обеспечит корректную синхронизацию локального и удаленного хранилищ.
Реализованная библиотека готова к применению, однако текущая версия не является конечной. В будущем планируется расширение функциональности, например, добавление возможности предпросмотра не только фотографий, но и видеофайлов.
В ходе работы был получен уникальный опыт составления и анализа требований, проектирования и реализации библиотеки, возможности которой должны быть гораздо более гибкими, чем в обычном приложении. В том числе был получен ценный опыт написания тестов, создания визуальных элементов, зависящих друг от друга, и определения контрактных обязательств для удаленного сервера.





