Как стать автором
Обновить

Релиз 0.1.36 Nem мессенджера

Время на прочтение2 мин
Количество просмотров4K

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

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

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

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

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

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

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

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

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

nem desktop клиент

Серверная программа

Исходники десктопной версии

Теги:
Хабы:
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
Всего голосов 18: ↑15 и ↓3+14
Комментарии54

Публикации

Истории

Работа

Программист С
49 вакансий

Ближайшие события

19 августа – 20 октября
RuCode.Финал. Чемпионат по алгоритмическому программированию и ИИ
МоскваНижний НовгородЕкатеринбургСтавропольНовосибрискКалининградПермьВладивостокЧитаКраснорскТомскИжевскПетрозаводскКазаньКурскТюменьВолгоградУфаМурманскБишкекСочиУльяновскСаратовИркутскДолгопрудныйОнлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
24 – 25 октября
One Day Offer для AQA Engineer и Developers
Онлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань