{"id":891,"title":"\u0414\u0435\u0431\u044e\u0442\u043d\u044b\u0439 \u0430\u043b\u044c\u0431\u043e\u043c \u0431\u0440\u0430\u0442\u0430 \u0411\u0438\u043b\u043b\u0438 \u0410\u0439\u043b\u0438\u0448 \u2014 \u043e \u043b\u044e\u0431\u0432\u0438 \u0438 \u043a\u0443\u043b\u044c\u0442\u0443\u0440\u0435 \u043e\u0442\u043c\u0435\u043d\u044b","url":"\/redirect?component=advertising&id=891&url=https:\/\/tjournal.ru\/umg\/462096-poslushat-novoe-debyutnyy-albom-brata-billi-aylish-finneasa-o-konnela&placeBit=1&hash=2707e9d0c69f3c387278fe273fb61845d805b4456d6f8db210d40342d34b0f84","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 комментария
Популярные
По порядку
Написать комментарий...
Принятый супер_стар

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

47
Принятый супер_стар

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

21
Принятый супер_стар

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

4
Принятый супер_стар

Комментарий удален по просьбе пользователя

4
Принятый супер_стар

Вдруг когда-то можно будет продать. Это же время :)

11
Принятый супер_стар

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

11
Принятый супер_стар

Комментарий удален по просьбе пользователя

5
Принятый супер_стар

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

Тоже думал над этой функцией, кстати...

0
Принятый супер_стар

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

0
Принятый супер_стар

ноно, не надо так шутить

3
Принятый супер_стар

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

10
Принятый супер_стар

Комментарий удален по просьбе пользователя

10
Принятый супер_стар

Дурдом какой-то.

Лесники апи меняют, что дальше? Сантехники- финансовые аналитики?

5
Принятый супер_стар

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

4
Принятый супер_стар

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

9
Принятый супер_стар

никто ничего не сделал

Точных прогнозов дать нельзя

получили год платной подписки бесплатно и бесконечную благодарность от админов

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

9
Принятый супер_стар

Комментарий удален по просьбе пользователя

5
Принятый супер_стар

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

7
Принятый супер_стар

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

1
Принятый супер_стар

Нельзя перейти на профиль юзера из уведомлений, например. Не показывает новые комментарии, как веб версия. Не копируется комментарий на который нажал чтобы ответить. Да дофига. Я практически не пользуюсь им уже, сижу через браузер со смартфона, как то это неправильно

10
Принятый супер_стар

всем хорош. Единственное темной темы не хватает.

6
Принятый супер_стар

Комментарий удален по просьбе пользователя

3
Принятый супер_стар

Цитаты так и не допилили😁

1
Принятый супер_стар

дублирование комментов так и не пофиксили

0
Принятый супер_стар

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

7
Принятый супер_стар

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

2
Принятый супер_стар

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

4
Принятый супер_стар

Комментарий удален по просьбе пользователя

7
Принятый супер_стар

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

4
Принятый супер_стар

А как ты будешь тут комментить, если украинцев забанишь?

0
Принятый супер_стар

Комментарий удален по просьбе пользователя

1
Принятый супер_стар

Комментарий удален по просьбе пользователя

9
Принятый супер_стар

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

1
Принятый супер_стар

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

5
Принятый супер_стар

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

8
Принятый супер_стар

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

3
Принятый супер_стар

Комментарий удален по просьбе пользователя

3
Принятый супер_стар

На нет и суда нет ))

2

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

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

Принятый супер_стар

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

2
Принятый супер_стар

Комментарий удален по просьбе пользователя

2
Принятый супер_стар

А редактирование комментариев возможно реализовать?

1
Принятый супер_стар

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

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

2
Принятый супер_стар

Комментарий удален по просьбе пользователя

0
Принятый супер_стар

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

1
Принятый супер_стар

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

0
Принятый супер_стар

Комментарий удален по просьбе пользователя

1
Принятый супер_стар

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

0
Принятый супер_стар

замечательная веб версия?

кхе-кхем

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

1
Принятый супер_стар

Комментарий удален по просьбе пользователя

11
Принятый супер_стар

как дождь или гром

0
Принятый супер_стар

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

1
Принятый супер_стар

Никому ваш высер не нужен, тем более на qt. Сделайте нормальную кроссплатформенность на электроне и не ебите мозг. Ну и да: разработку следовало начать с разбора "фишек" вашего приложения, чтобы кто-то мог вас поддержать материально (на голом интузиазме далеко не укатишься). А так все 4 аргумента - ни о чем.

–2
Принятый супер_стар

на электроне

0
Принятый супер_стар

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

0
Принятый супер_стар

Чтобы сравнить кьют и электрон, просто вот открой два приложения: VK Messenger (electron) и Telegram (Qt)

Согласен: небо и земля по скорости. Я так понимаю VK Messenger вообще забросили, там багов больше, чем дохуя

1
Принятый супер_стар

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

0
Принятый супер_стар

и просто потому, что это прикольно. Там, на самом деле, не столь много работы... Да и потом, нас вон уже Лихачев поддержал годом подписки. А это, надо сказать, стимул весьма неплохой :)

0
Принятый супер_стар

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

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

0
Принятый супер_стар

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

6
Принятый супер_стар

Комментарий удален по просьбе пользователя

6
Принятый супер_стар

Комментарий удален по просьбе пользователя

0
Принятый супер_стар

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

0
Принятый супер_стар

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

4
Читать все 132 комментария
null