Безопасность
Чат использует собственный TCP-протокол, основанный на сквозном шифровании в связке с алгоритмами Диффи-Хеллмана и ChaCha20-Poly1305.
Ключи генерируются каждый раз при обращении к серверу, что делает невозможным расшифровать перехваченные сообщения.
Режим безопасного просмотра ссылок, полученных в сообщениях от других пользователей исключает возможность фишинга и трекинга. Данный режим позволяет полностью отключить работу программных сценариев, навигацию, загрузку каких-либо файлов. Минимальный набор ресурсов, таких как фотографии, стилистика при этом остается и по желанию может быть загружена через прокси, что исключает фиксацию реального ip - адреса. При этом так же существует возможность открыть ссылку в обычном режиме.
Мониторинг системной информации, такой как нагрузка процессора, расход памяти и температура позволит зафиксировать аномальное поведение системы и при желание включить режим блокировки в случае подозрения кибер атаки.
Минимализм и простота
Чат сконструирован максимально просто и аскетично. Интерфейс позволит разобраться даже не опытному пользователю. Исключены все лишние функции и сделан упор исключительно на основной концепции приложения- общение и безопасность.
Избирательное кеширование позволяет ускорить загрузку, но при этом не заполняя локальную память устройства чрезмерно.
Мониторинг сетевых подключений позволит адаптироваться для загрузки в случае даже слабых сигналов сети.
Низкое энергопотребление
Упрощенная модель позволяет сократить ресурсы потребления энергии при использовании приложения. Так же сведены до минимума вычислительные процессы, что позволяет избежать нагревания устройства. Фоновые процессы обрабатывают исключительно сетевой обмен данными и не включают в себя графические задачи, которые не используются в данном проекте. Так же минимизирована анимация и ресурсоемкие визуальные эффекты.
Был разработан специальный сервер для конкретный задач со своим собственным протоколом, спроектирована база данных. Серверная часть была разработана для Linux-систем, так же для северной части были собраны специальные контроллеры, которые обеспечивают стабильность работы и в случае повышенной нагрузки - перераспределяют ее.
Мобильная часть приложения была написана с использованием встроенных библиотек Apple на языке программирования Swift
Задача была решена и проект был опубликован в AppStore