Привет, TJ. С момента выхода первого и последнего на данный момент кастомного клиента для TJ прошел уже почти год, и вот сейчас нам с Kat Vance (не слушайте его! Это всё он, я ни сном ни духом вообще был!) пришла идея сделать новый десктопный клиент.
На этот мы решили использовать Qt и C++, а это значит, что клиент будет доступен не только для Windows, но и для macOS и Linux (а ещё для BSD, ReactOS, Haiku и чего угодно, под что вам удастся его собрать).
Kat Vance уже удавалось создать полноценный рид онли клиент для TJournal, однако отсутствие возможности комментировать или хотя бы читать комментарии, а также залоченность на специфическую среду для запуска, для многих стало главным предпятствием на пути использования его как основного инструмента взаимодействия с TJ.
И возможность данная отсутствовала вовсе не по вине разработчика, а по вине администрации TJ, которая не захотела предоставить доступ к приватным методам API сайта.
На этот раз мы основательно подготовились, разобрали Android-приложение и написали документацию к закрытым методам API своими силами (надеюсь, нам за это ничего не будет :), поэтому теперь мы точно сможем реализовать всю оригинальную функциональность мобильных приложений TJ в полной мере. Но скорее всего этим мы даже не ограничимся, и добавим туда еще много клевых штук.
Зачем?
Возможно, многие из читающих этот пост зададутся вопросом: зачем нужен клиент, когда есть замечательная веб версия?
Отвечаем:
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.