Привет, 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.
Может лучше истории?
Ребята, спасибо, вы охрененны. Обоим по скромному подарочку от команды разработки.
Год подписки! Спасибо :3
Комментарий недоступен
Было бы круто, я бы юзал!
А сделайте ещё вызов конкретных юзеров в тред, чтобы у тех уведомление выскакивало. Этого очень не хватает.
Комментарий недоступен
это и без приложения сделать можно прям на сайте.
А потом придёт лесник и поменяет API.
Комментарий недоступен
Можем держать в курсе изменений.
Желаю Вам успехов парни. С нетерпением жду первых новостей :3
Точных прогнозов дать нельзя
получили год платной подписки бесплатно и бесконечную благодарность от админов
... ¯\_(ツ)_/¯
Комментарий недоступен
На ведроид бы клиента нормального, вот это реально было бы ништяк
А чем существующий плох?
Обколятся своей анашой и пилят
Я бы при таких раскладах помог, не в части пилить приложение, конечно же, но в части обколоться анашой.
посоны, почему бы вам свой браузер не запилить? он будет мочь отображать только проекты Комитета. по-моему идея охуенная. я конечно желаю вам удачи, потому как когда делать нехуй, и не такое можно придумать.
Комментарий недоступен
Комментарий недоступен
@vadim.kraev — тоже могу че нибудь по интерфейсам пофигачить
А нет, без точечки.
Готов запилить интерфейс, если по срокам есть люфт.
Комментарий недоступен
Комментарий удален модератором
Комментарий удален модератором
В срачах лагать как веб-версия не будет?
Комментарий недоступен
Крутота, я С++ учу и как раз с QT познакомился
Комментарий недоступен
Нужно уведомление, когда пост набирает овер 100 комментов.
Вряд ли получится сделать. Разве что чекать количество комментов у всех новых постов пользователя раз в X минут...
Лучше, когда проект наберет больше 100 коммитов
кхе-кхем
Удачи, господа, одно время ковырялся в qt из интереса, буду послеживать за репозиторием. Времени помочь к сожалению особо нет.
Комментарий недоступен
Фух, опять субботу пробухал, все срачи (2) пропустил.
Комментарий недоступен
А если серьезно, то востребованность этой штуки (судя по фидбеку, а именно лайкам, комментариям и количеству желающих принять участие в разработке) даже превзошла мои ожидания.
Что касается фишек, то мы вроде как описали все, что хотим сделать.
Ну а в электроне я ничего "нормального" не вижу. Десктопные приложения на яваскрипте и хтмле — это просто какой-то цирк.
Вот Qt мне пока нравится — быстро, удобно и кроссплатформенно. Много стоящих проектов его используют и все у них хорошо.
Чтобы сравнить кьют и электрон, просто вот открой два приложения: VK Messenger (electron) и Telegram (Qt), и сразу станет ясно, куда этому электрону дорога. Ни одного нормального приложения на нем я так и не встретил. Даже этот Atom несчастный лагает и работает нестабильно.
А что касается материальной поддержки, то мы это делаем для опыта работы с Qt и просто
А как же очередная приложенька на движке хрома? Чому не соотвествуете моде? Кому нужны быстрые приложения на плюсах, когда есть есть Electron на js+css+html?!
Шучу, конечно. Прекрасное начинаение, особенно учитывая опенсорсность. Хоть у кого-то будет клиент не на хроме.
Нука, где репа? Я уже готов швырятся issue-сами.
Первый уже настрочил.
Комментарий недоступен
C++ я бы мог, но танцы с бубном у меня потом будут
Да мы сами первый раз пишем Qt приложение. Чтобы понимать масштаб трагедии, мы только на днях узнали, что такое слоты и сигналы :) Но сейчас вот уже разобрались и по крайней мере знаем, что делать дальше.