"Чем cmd-шки запускать, лучше прогу написать ", или как я на Flutter-е GUI для goodbyedpi писал.
Или опять обходим замедление YouTube.
Ссылки
Введение
Время, когда для простого просмотра видосиков на ютубе нужно вокруг компьютера нужно потанцевать с бубном и сделать расклад таро на загрузку видео в full hd качестве, настало. Когда то я мог подумать, что для меня это конец света и жизнь моя больше не будет иметь смысла, но для меня это чувство давно ушло, и я даже немного рад, что на такой волне траура я смогу немного поднять с пола свой GitHub(да, очевидно, что для программиста, как и для блогера, это время новых возможностей, разница лишь в том, что пока блогеры чешут языком и собирают просмотры на чьих то программах, показывая одни и те же способы миллиарды раз, а небольшая каста прогеров смогла найти себе занятие - написать удобную программу с GUI для обхода и/или написать backend для нее). Ну так вот, я признаюсь, что хоть я и позиционирую себя больше бэком, чем фронтендером, но в сетевом программировании я ноль без палочки, а вот в последнее время стал интересоваться флаттером. До программы, про которую сейчас пойдет речь, я написал еще Android клиент для анилибрии *ссылка*, кому интересно, посмотрите. В итоге, я решил прикола ради написать графический интерфейс для GoodbyeDPI. О нем как раз и пойдет речь.
Разработка
Так как goodbyedpi только для windows, целевая система стала как раз win64. Так что я просто создал flutter проект и написал простой интерфейс (расписывать, как я это сделал, не буду, кому интересен код, ссылка на гитхаб в начале статьи). Единственное, что отмечу, так это способ запуска / остановки. Все это было реализовано при помощи двух методов и библиотеки 'dart:io':
Так же хотелось бы посоветовать способ работы с треем, я использовал библиотеку system_tray, а так же для работы с окном использовал window_manager. Window_manager мне больше всего пригодился, чтобы не сразу закрывать программу при нажатии на крестик, а дать возможность свернуть ее в трей методом onWindowClose():
И последнее, что скажу в блоке разработка. Чтобы сделать так, чтобы программа на flutter запускалась только с повышенными привилегиями (правами администратора), нужно в файле windows/runner/CMakeLists.txt добавить вот такую строку:
На этом переходим к блоку осмотра программы, т.е блок для рядового пользователя.
Обзор программы
Начну с интерфейса. Он интуитивно понятный и современный:
Интересный факт: программа называется DPIшиканокер в честь Шиканоко, вымышленного персонажа из аниме 'Моя подруга олениха, Нокотан'. Почему? Шиканоко умеет выносить мозги и иногда делает полную чушь, и название символизирует вынос Deep Package Inspection.
Программу можно установить через установщик или использовать портативно (оба варианта можно скачать на гитхабе). После открытия приложения не надо разбираться в кнопочках - просто оставьте использовать лучший конфиг и нажмите запустить, а так же в браузерах на основе chromium отключите TLS 1.3 hybridized Kyber support на странице flags (интернет вам в помощь) - все, goodbyedpi работает, как и ютуб. На этой прекрасной ноте я завершаю статью - больше мне сказать нечего.