Исходные коды
Со временем будет доступно больше исходных кодов. Следите за обновлениями.
Telegram для Android
Официальное приложение для Android.
Telegram для iOS
Официальное приложение для iPhone и iPad.
Telegram Web
Javascript-клиент для Mac, Windows и Linux.
TDesktop
Кроссплатформенное приложение для Windows, OS X и Linux.
Telegram для OS X
Официальное приложение для устройств на Mac OS X.
Telegram CLI
Интерфейс командной строки для Telegram.
Telegram для Windows Phone
Официальное приложение Telegram для Windows Phone.
Библиотеки для работы с Telegram
Telegram Database Library
TDLib (Telegram Database Library) — простое и гибкое средство для разбработки клиента Telegram на Java.
Доступен в качестве библиотеки под Android (в будущем — и под другие платформы) в виде so-файла и интерфейсных Java-классов.
Telegram-S
Библиотеки, использовавшиеся в S-версии Telegram для работы с языком TL, MTProto и API Telegram. Лицензия: MIT.
На чем написан десктоп-клиент telegram?
По исходникам понял, что сама программа написана на плюсах. И, скорее всего, программа писалась в Qt. Но с помощью каких средств создан gui, я разобраться не смог. Буду благодарен за подробные ответы и/или ссылки о том как всё это создавалось (именно десктопная версия клиента), особенно инетересует gui.
- Вопрос задан более трёх лет назад
- 22374 просмотра
Комментировать
Решения вопроса 0
Ответы на вопрос 4

На Qt, рисуется прям по хардкору через QPainter. Вообще от кода впечатления негативные, он очень специфичен, огромные функции, большая вложенность, не надо так. Я бы рекомендовал писать такие кастомные интерфейсы на QML, ну или в крайнем случае на QtWidgets + QSS.
Ответ написан более трёх лет назад
Нравится 4 8 комментариев
makholin @makholin Автор вопроса
Да, возможно код не идеален, но визуально все выглядит достаточно приятно. Еще хотелось бы спросить, для разработки десктоп-приложения (Windows), что кроме qt и С++ можно попробовать? Кроме Java + JavaFX и С# + WPF почти ничего не советуют.

makholin: приятно? Файлы по 8к строк? Семь вложенных операторов? Функции на много экранов? Вложенность if в case? Кучи подчеркиваний везде? Это приятно?
По поводу советов — больше вариантов нет: Qt, C#, Java.
Telegram Desktop 1.0: десктоп-версия мессенджера Telegram «созрела»

Команда разработчиков популярной системы обмена сообщениями Telegram объявила о выпуске первой крупной версии своего десктоп-приложения — Telegram Desktop 1.0.
Версия Telegram для настольных компьютеров и ноутбуков существовала с 2013 года, а со вчерашним релизом 1.0 обрела новый дизайн, который соответствует подходу Material Design, обладает гладкой анимацией и поддержкой произвольных тем оформления. Приложение автоматически синхронизирует все сообщения (включая тексты, документы, фотографии и видео) с телефона на компьютер через зашфированное облако Telegram*. Для интерфейса используются возможности графического тулкита Qt 5.
Telegram Desktop 1.0 доступен для платформ GNU/Linux (заявлена официальная поддержка Ubuntu от 12.04 до 16.04 и Fedora 22—24), Mac OS X и Windows. Для десктоп-пользователей существуют ещё Telegram Web и Telegram Mac, но разработчики настаивают на использовании Telegram Desktop как более универсальном решении. Исходный код Telegram Desktop написан на языке C++, распространяется на условиях свободной лицензии GNU GPLv3 (с исключением для OpenSSL) и опубликован на GitHub.
* Вчера, 11 января, также стало известно, что Федеральная служба безопасности (ФСБ) взломала систему шифрования, используемую в сообщениях Telegram, — такое утверждение содержится в докладе бывшего агента британской разведки. Однако в WikiLeaks опубликованный отчет назвали фиктивным.
Исходный код Телеграма: на каком языке программирования написан

FAQ
Автор fast12v0_steleg На чтение 5 мин Просмотров 12.6к. Опубликовано 11.04.2020
Высокая безопасность мессенджера Telegram – это его визитная карточка. Для обеспечения анонимности людей используется особая авторская технология кодирования, которая уже стала признана в профессиональной среде разработчиков и программистов. Однако о языке программирования Telegram говорят намного меньше, и это незаслуженно. Разберемся, на каком языке написан Телеграм и что делает его таким безопасным.
Технические характеристики Telegram

Павел Дуров утверждает, что история с настоящим творчеством для разработчика начинается тогда, когда он применяет разные способы программирования в своей работе, чтобы достигнуть поставленную цель. Эта идея полностью реализована при разработке Телеграма, поэтому при обычном техническом анализе мессенджера можно сразу заметить, что ставка была сделана в первую очередь на функционал, а не на внешний вид.
Язык программирования
Официально считается, что написан Telegram на языке С++. Это логично, ведь он прямо совместим с обычным С, который принят и используется для написания мобильных приложений на базе Android и iOS. Однако ряд программистов высказывает предположения, что для запуска мессенджера было произведено смешение Java, C++ и фреймворков Java. Насколько это убеждение верно, неизвестно из-за того, что команда разработчиков не комментировала данный вопрос.
Важно! На базе С++ мессенджер существует с 2013 года. С регулярными свежими обновлениями приложения он только немного дорабатывается, а не создается с нуля. Полностью код переписывался лишь раз для официального веб-клиента Telegram X на языке программирования Swift.
Интерфейс
Интерфейс мессенджера выглядит достаточно просто и лаконично в соответствии с принципами. На главном экране отображаются последние личные диалоги с другими пользователями, новости из Телеграм-каналов, уведомления от ботов, здесь же можно провести поиск и т. п. В левом боковом меню доступны быстрые настройки, там же включается редактирование расширенных функций. Можно выбрать одну из четырех тем оформления, включить автоматический ночной режим, который будет активироваться при наступлении темного времени суток по умолчанию, или же поставить любую картинку в качестве фонового изображения. В компьютерном варианте Телеграма интерфейс выглядит иначе с той разницей, что в левой части экрана по умолчанию отображаются активные контакты либо последние переписки с другими пользователями. По желанию в правую часть дисплея можно сместить окно эмодзи, чтобы смайлики были под рукой.
Технология шифрования

Для передачи сообщений используется протокол шифрования MTProto. Для авторизации и аутентификации – алгоритмы RSA-2048, DH-2048. При коммуникации одного человека с другим содержание текста личных сообщений шифруется при помощи симметричного AES (Advanced Encryption Standard) и случайно генерируемого ключа, который есть только у сервера и адресата. Ключ навсегда удаляется примерно через 10 минут после получения сообщения и не хранится постоянно на сервере. С переходом на протокол MTProto два точка ноль применяется криптографический хеш-алгоритм SHA-256. Режим секретных чатов использует более надежный тип end-to-end кодирования, при котором ключ для чтения сообщений вообще не пересылается на сервер и доступен только для отправителя и получателя. Для реализации этой функции пользуются алгоритмом AES-256 в режиме IGE.
Внимание! При удалении сообщения в переписке оно также совсем стирается с сервера.
Исходный код «Телеграм»
Telegram open source – это открытый клиентский код API, который постоянно доступен для скачивания бесплатно в сети интернет. Несмотря на то что серверная часть остается закрытой, все функции мессенджера остаются рабочими.
Предназначение
Благодаря открытому программному интерфейсу приложения любой заинтересованный человек может получить доступ к сервису библиотеки данных TDLib и заняться созданием на его основе собственного веб-клиента. При этом не надо решать проблему того, на каком языке программирования написан Телеграм, поскольку предлагается сразу несколько версий с поддержкой Javascript, C++ и C#. Передача сообщений, кодирование и локальная база данных будут работать идентично оригинальному Телеграмму. Возможность редактирования кода дана для того, чтобы популяризировать политику компании и развивать свободу слова, защиту прав человека и анонимность общения. Также это дает стимул и ресурсы для разработки новых технологий в сфере коммуникаций и масс-медиа.
Как пользоваться
Предварительно для запуска Telegram клиента исходный код необходимо скачать со страницы официального сайта telegram.org или в другом источнике и установить. Также нужно ознакомиться с прилагающейся инструкцией о шифровании данных. Затем можно приступать к работе (естественно, без необходимых специальных знаний и навыков в программировании ничего сделать не удастся).
Справка! Скачать код для последнего обновления приложения невозможно, потому что именно его никогда даже не публикуют. К скачиванию доступны только старые варианты официальных клиентов для всех платформ.
Кастомные веб-клиенты могут писаться при использовании любого языка программирования и фреймворков, поэтому вы не ограничены в выборе.
Официальные и неофициальные клиенты

Среди официальных клиентов доступны следующие:
- Вариант для мобильных устройств:
- Telegram для Андроид;
- Telegram для ios;
- Telegram для Windows Phone.
- Desktop-вариант:
- Telegram для Windows/Linux;
- Telegram для macOS.
- Веб-вариант:
- Telegram Web-version;
- Telegram Chrome app.
Единственный официальный веб-клиент группы разработчиков под эгидой Павла Дурова – это проект Telegram X.
Неофициальных кастомных клиентов в разы больше, например:
- Plus Messenger;
- Vidogram;
- Loopy for Telegram;
- TechGram;
- Mobogram;
- Unigram и др.
Их можно использовать для решения частных целей: например, для обхода блокировки официального Телеграма, записи уроков, администрирования каналов, поддержки видеозвонков, расширенных функций дизайна.
Таким образом, Телеграм имеет мощный движок, составленный на основе нескольких языков программирования и сложных протоколов кодирования. Каждый желающий может воспользоваться этими разработками бесплатно, если собирается сделать проект лучше и удобнее и предложить свои нововведения.
Детальная информация видна на видео: