[recovery mode] Релиз 0.1.36 Nem мессенджера

За последние 14 дней я разработал мессенджер, у которого отличительная черта от остальных мессенджеров — это то, что серверную программы вы контролируете сами. Вы можете скачать исходные коды серверной программы и установить на свой сервер. Клиентская часть доступна для linux на flathub — приложение называется Nem.

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

image-loader.svg

Как видно из интерфейса, есть кнопка отправки файлов, она расположена слева от строки ввода. Отправка файла — медленная операция, это будет заметно, если отправлять файлы, размеры которых исчисляются мегабайтами. Я стараюсь сделать так, чтобы всё помещалось в 4096 байт. Для этого программа клиент делит по частям весь файл. Вместе с файлом передаются несколько других данных, которые нужны для расшифровки файла. То есть, файл, который передаёт программа — шифруется и в зашифрованном виде отправляется в базу данных. Каждый файл может расшифровать только тот собеседник, кому предназначен файл. Из-за того что в каждом пакете json помещается только 1280 байт зашифрованных данных — скорость загрузки кажется медленной.

Сервер уже может выполнять нужную работу, но документация по api ещё не готова полностью. Там даже авторизация прямо в коде прописана к базе данных. Позже в новых версиях будет авторизация либо в файле настроек, либо через терминал.

Отображения текста — это кастомный виджет. Также я реализовал копирование текста из этого виджета.

Приложение написано с использованием таких библиотек как gtk4, json-glib, openssl.

Также хочу сделать приложение для android, но сначала я хочу закончить с серверной частью, чтобы было нормальное документирование api —, а это будет когда я точно пойму что все нормально работает. Приложение для android разработать ещё сложнее, потому что у меня мало опыта в разработке для android. Но если будет открытое api, то возможно найдутся желающие, кто могут сделать приложение самостоятельно. Ну, а пока буду делать сам. Надо ещё решить как в android сделать так, чтобы можно было выложить в google play приложение и чтобы в это же время мог принимать самоподписанный сертификат. Так как опыта в этом почти нет, но я с этим сталкивался, будет наверное главной проблемой, когда займусь вплотную android разработкой.

Кому то может не понравиться интерфейс программы, но я почти всё делал сам. Иконку приложения сделал сам и интерфейс программы свой. Иконки кнопок скачаны в свободном доступе или же выбраны из linux. Мне нравиться интерфейс, я вижу дизайн этой программы именно таким, как он представлен.

Но ещё раз повторюсь. Вы сами можете написать клиента для этой программы и если вы это захотите сделать, то желаю вам удачи. Спасибо за внимание.

https://flathub.org/apps/details/io.github.xverizex.nem_desktop — nem desktop клиент

https://github.com/xverizex/nem-server — серверная программа

© Habrahabr.ru