Для решения поставленной задачи было разработано нативное мобильное приложение, предназначенное для платформ iOS и Android. Ключевые компоненты данного приложения включают в себя:
- Модуль авторизации — в данном модуле пользователь вводит свои учетные данные, такие как логин и пароль, чтобы получить доступ к системе. После того как авторизация успешно пройдена, происходит загрузка персонализированного списка заявок, связанных с этим пользователем.
- Главная страница — эта страница содержит навигационное меню, которое включает в себя разделы: Главная, Показания, Заявки, Меню. На главной странице отображается основная информация: список активных заявок, их текущие статусы и даты их создания.
- Детализация заявки — когда пользователь выбирает конкретную заявку, перед ним открывается экран с ее детальной информацией: адрес объекта, описание объекта видеонаблюдения, полная история смены статусов и кнопка для перехода к просмотру видео.
- Видеонаблюдение — в приложении реализовано два основных режима просмотра:
- Одиночный просмотр — в этом режиме изображение с одной камеры занимает весь экран; также предусмотрена возможность масштабирования картинки и ее поворота.
- Мультикамерный режим — данный режим представляет собой сетку из нескольких видеоокон с возможностью прокрутки экрана; каждое такое окно показывает видеопоток с отдельной камеры. Внутри каждого окна отображается метка, указывающая на местоположение данной камеры.
- Интеграция с сервером видеонаблюдения — приложение для получения видео в реальном времени использует такие протоколы, как RTSP или HTTP-потоки. С целью экономии интернет-трафика и энергопотребления устройства предусмотрены опции, которые автоматически отключают видеопоток в момент, когда приложение сворачивается.
- Уведомления — в случае изменения статуса какой-либо заявки или при обнаружении движения в поле зрения камеры пользователь получает соответствующее push-уведомление.
- Адаптивный дизайн — пользовательский интерфейс приложения адаптирован под различные размеры экранов мобильных устройств и их ориентации, то есть корректно отображается как в портретном, так и в ландшафтном режиме.
Технологический стек, использованный для разработки: Swift, Kotlin, UIKit, AVFoundation (для работы с видео), URLSession (для выполнения сетевых запросов), CoreData (для кэширования данных на устройстве), Firebase или собственный бэкенд-сервер (для реализации аутентификации и управления заявками).