{"id":2175,"url":"\/distributions\/2175\/click?bit=1&hash=803b6e1bcbd9dfc4ba9456fda887a878c80d24df8d3a575913b14876e18923a5","title":"TJ \u0437\u0430\u043a\u0440\u043e\u0435\u0442\u0441\u044f 10 \u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f \u2014\u00a0\u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0430\u043d\u043e\u043d\u0441 \u0441 \u0434\u0435\u0442\u0430\u043b\u044f\u043c\u0438","buttonText":"\u0427\u0438\u0442\u0430\u0442\u044c","imageUuid":"d1d355d8-93a3-5140-aeae-14b03046b760","isPaidAndBannersEnabled":false}
Офтоп
Kolyanok

Делаем десктопный клиент TJournal на Qt! Потому что можем

Привет, TJ. С момента выхода первого и последнего на данный момент кастомного клиента для TJ прошел уже почти год, и вот сейчас нам с Kat Vance (не слушайте его! Это всё он, я ни сном ни духом вообще был!) пришла идея сделать новый десктопный клиент.

На этот мы решили использовать Qt и C++, а это значит, что клиент будет доступен не только для Windows, но и для macOS и Linux (а ещё для BSD, ReactOS, Haiku и чего угодно, под что вам удастся его собрать).

Kat Vance уже удавалось создать полноценный рид онли клиент для TJournal, однако отсутствие возможности комментировать или хотя бы читать комментарии, а также залоченность на специфическую среду для запуска, для многих стало главным предпятствием на пути использования его как основного инструмента взаимодействия с TJ.

И возможность данная отсутствовала вовсе не по вине разработчика, а по вине администрации TJ, которая не захотела предоставить доступ к приватным методам API сайта.

На этот раз мы основательно подготовились, разобрали Android-приложение и написали документацию к закрытым методам API своими силами (надеюсь, нам за это ничего не будет :), поэтому теперь мы точно сможем реализовать всю оригинальную функциональность мобильных приложений TJ в полной мере. Но скорее всего этим мы даже не ограничимся, и добавим туда еще много клевых штук.

Успешное получение списка комментариев через API

Зачем?

Возможно, многие из читающих этот пост зададутся вопросом: зачем нужен клиент, когда есть замечательная веб версия?

Отвечаем:

1) Это быстрее! В вебе после клика на какую-либо ссылку мы обычно наблюдаем загрузку страницы. И эти доли секунды нам приходится наблюдать скучную и унылую отрисовку страницы "рывками". В приложении макет страницы рисуется мгновенно. Вместо рывка может быть показана анимация, а данные из API подгружаются значительно быстрее, нежели веб страница с разметкой, стилями и скриптами. В отличие от мобильных приложений TJ, мы не будем использовать веб-браузер для рендеринга статьи (это принципиальная позиция, мы даже твиты и прочий embed-контент будем забирать через официальные REST-апи соответствующих платформ), поэтому выглядеть все это будет красиво и органично.

2) Более тесная интеграция с системой. Например, в приложении мы можем реализовать полноценные уведомления, прямо как на смартфоне, или даже реализовать возможность ответить на комментарий прямо из шторки окружения GNOME (на macOS тоже реализуем подобное, на Windows – если такая возможность присутствует).

3) Исправим проблемы, которые мучают пользователей тж годами, такие как не воспроизводящиеся гифки в списке твитов, дублирующийся "лучший комментарий", выбранный редакцией и многое другое. Вернее, у нас этих проблем просто не будет (будут другие).

4) Будут дополнительные фишки. К примеру, кастомизация интерфейса, черный список. А еще анализ СМИ вернем (если его не закроют в ближайшее время, конечно).

5) Понты. Вы сможете выбирать, ставить около своего комментария "яблочко", "робота", или не ставить ничего :) Эта информация, как выяснилось, отсылается в заголовке POST-запроса, и ничего не стоит заменить её на любую угодную строку (мы всё же надеемя на добавление пиктограмм также для Windows и GNU/Linux, но пока так).

Что планируете сделать в первую очередь?

В первую очередь мы планируем реализовать базовую функциональность: это просмотр списка статьей, чтение самой статьи, авторизацию по QR-коду и чтение комментариев.

Затем уже потихоньку будем добавлять написание комментариев, твиты, настройки и все прочее. Если возможно, то мы добавим и авторизацию с помощью соцсетей (на данный момент авторизация происходит через qr-код, потому что это единственный быстрый и универсальный метод, а все остальные нужно будет реализовывать различными способами, что для этапа тестирования просто излишне).

В последнюю очередь мы будем делать то, что нельзя реализовать средствами API TJ, а именно уведомления, полноценный редактор статей и всяческие фишки от себя.

Зачем нужен этот пост, если самого приложения еще нет?

Цель поста — "разделить горе со всеми, так вместе ведь веселее".

Если ты хоть что-то понимаешь в разработке и хоть как-то знаком с C++, вебсокетами, либо же с дизайном интерфейсов, то милости просим в нашу команду :) В награду за старания твое имя обязательно будет красоваться в окне About.

Будет ли исходный код клиента открыт?

Разумеется. Все будет выложено под свободной лицензией и разработка будет вестись в открытом виде.

Когда ждать первую версию?

Точных прогнозов дать нельзя, C++, как известно, богат на неожиданные грабли. Но учитывая, что от первой лампочки в голове у Колянка до готового разобранного апи и этого поста прошло всего двое суток... Думаю, всё будет достаточно оперативно.

Впрочем, если вы хотите убедиться в работоспособности затеи, можно уже сейчас собрать тестовый вариант. Он не пригоден для использования, конечно же, но является работающей реализацией авторизации и нескольких закрытых методов API, что подтверждает успешность операции по реверс-инжинирингу мобильных приложений как минимум.

Как часто будут выходить посты с новостями о разработке?

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

На этом пока все. Ждем вопросов и фидбека в комментариях по поводу того, какие функции вы бы хотели увидеть в приложении.

Kat Vance и Kolyanok.

0
132 комментария
Написать комментарий...
Органический фитиль

Может лучше истории?

Ответить
Развернуть ветку
Партийный кот

Ребята, спасибо, вы охрененны. Обоим по скромному подарочку от команды разработки.

Ответить
Развернуть ветку
Передовой пёс_анон

Год подписки! Спасибо :3

Ответить
Развернуть ветку
Федеральный микроскоп

Комментарий недоступен

Ответить
Развернуть ветку
2 комментария
Всероссийский чайник

Было бы круто, я бы юзал!
А сделайте ещё вызов конкретных юзеров в тред, чтобы у тех уведомление выскакивало. Этого очень не хватает.

Ответить
Развернуть ветку
Федеральный микроскоп

Комментарий недоступен

Ответить
Развернуть ветку
9 комментариев
Локальный теркин30см

это и без приложения сделать можно прям на сайте.

Ответить
Развернуть ветку
3 комментария
Соседний холод

А потом придёт лесник и поменяет API.

Ответить
Развернуть ветку
Федеральный микроскоп

Комментарий недоступен

Ответить
Развернуть ветку
9 комментариев
Солдатский микрофон

Можем держать в курсе изменений.

Ответить
Развернуть ветку
Левый Данила

Желаю Вам успехов парни. С нетерпением жду первых новостей :3

Ответить
Развернуть ветку
Способный цветок
никто ничего не сделал
Точных прогнозов дать нельзя
получили год платной подписки бесплатно и бесконечную благодарность от админов

... ¯\_(ツ)_/¯

Ответить
Развернуть ветку
Федеральный микроскоп

Комментарий недоступен

Ответить
Развернуть ветку
Приличный Слава

На ведроид бы клиента нормального, вот это реально было бы ништяк

Ответить
Развернуть ветку
Передовой пёс_анон

А чем существующий плох?

Ответить
Развернуть ветку
17 комментариев
Положительный холод

Обколятся своей анашой и пилят

Ответить
Развернуть ветку
Кривой череп

Я бы при таких раскладах помог, не в части пилить приложение, конечно же, но в части обколоться анашой.

Ответить
Развернуть ветку
Локальный теркин30см

посоны, почему бы вам свой браузер не запилить? он будет мочь отображать только проекты Комитета. по-моему идея охуенная. я конечно желаю вам удачи, потому как когда делать нехуй, и не такое можно придумать.

Ответить
Развернуть ветку
Федеральный микроскоп

Комментарий недоступен

Ответить
Развернуть ветку
3 комментария
Предельный микроскоп

Комментарий недоступен

Ответить
Развернуть ветку
9 комментариев
Солнечный будильник

@vadim.kraev — тоже могу че нибудь по интерфейсам пофигачить

Ответить
Развернуть ветку
Солнечный будильник

А нет, без точечки.

Ответить
Развернуть ветку
Драгоценный Кирилл

Готов запилить интерфейс, если по срокам есть люфт.

Ответить
Развернуть ветку
Федеральный микроскоп

Комментарий недоступен

Ответить
Развернуть ветку
4 комментария

Комментарий удален модератором

Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Трудящийся цветок

В срачах лагать как веб-версия не будет?

Ответить
Развернуть ветку
Федеральный микроскоп

Комментарий недоступен

Ответить
Развернуть ветку
9 комментариев
Нежный франт
Разумеется. Все будет выложено под свободной лицензией и разработка будет вестись в открытом виде.

Крутота, я С++ учу и как раз с QT познакомился

Ответить
Развернуть ветку
Федеральный микроскоп

Комментарий недоступен

Ответить
Развернуть ветку
Изящный мангал

Нужно уведомление, когда пост набирает овер 100 комментов.

Ответить
Развернуть ветку
Передовой пёс_анон

Вряд ли получится сделать. Разве что чекать количество комментов у всех новых постов пользователя раз в X минут...

Ответить
Развернуть ветку
10 комментариев
Печатный холод

Лучше, когда проект наберет больше 100 коммитов

Ответить
Развернуть ветку
Должный единорожек88
замечательная веб версия?

кхе-кхем

Удачи, господа, одно время ковырялся в qt из интереса, буду послеживать за репозиторием. Времени помочь к сожалению особо нет.

Ответить
Развернуть ветку
Федеральный микроскоп

Комментарий недоступен

Ответить
Развернуть ветку
6 комментариев
Компьютерный крюк

Фух, опять субботу пробухал, все срачи (2) пропустил.

Ответить
Развернуть ветку
Невыносимый завод

Комментарий недоступен

Ответить
Развернуть ветку
Передовой пёс_анон
на электроне
Ответить
Развернуть ветку
Передовой пёс_анон

А если серьезно, то востребованность этой штуки (судя по фидбеку, а именно лайкам, комментариям и количеству желающих принять участие в разработке) даже превзошла мои ожидания.
Что касается фишек, то мы вроде как описали все, что хотим сделать.
Ну а в электроне я ничего "нормального" не вижу. Десктопные приложения на яваскрипте и хтмле — это просто какой-то цирк.
Вот Qt мне пока нравится — быстро, удобно и кроссплатформенно. Много стоящих проектов его используют и все у них хорошо.
Чтобы сравнить кьют и электрон, просто вот открой два приложения: VK Messenger (electron) и Telegram (Qt), и сразу станет ясно, куда этому электрону дорога. Ни одного нормального приложения на нем я так и не встретил. Даже этот Atom несчастный лагает и работает нестабильно.

Ответить
Развернуть ветку
1 комментарий
Передовой пёс_анон

А что касается материальной поддержки, то мы это делаем для опыта работы с Qt и просто

Ответить
Развернуть ветку
2 комментария
Уникальный турник

А как же очередная приложенька на движке хрома? Чому не соотвествуете моде? Кому нужны быстрые приложения на плюсах, когда есть есть Electron на js+css+html?!

Шучу, конечно. Прекрасное начинаение, особенно учитывая опенсорсность. Хоть у кого-то будет клиент не на хроме.
Нука, где репа? Я уже готов швырятся issue-сами.

Ответить
Развернуть ветку
Уникальный турник

Первый уже настрочил.

Ответить
Развернуть ветку
1 комментарий
Федеральный микроскоп

Комментарий недоступен

Ответить
Развернуть ветку
1 комментарий
Входной турник

C++ я бы мог, но танцы с бубном у меня потом будут

Ответить
Развернуть ветку
Передовой пёс_анон

Да мы сами первый раз пишем Qt приложение. Чтобы понимать масштаб трагедии, мы только на днях узнали, что такое слоты и сигналы :) Но сейчас вот уже разобрались и по крайней мере знаем, что делать дальше.

Ответить
Развернуть ветку
3 комментария
Читать все 132 комментария
null