LINUX.ORG.RU

Книги/гайды по современному GTK+

 , , ,


1

3

Какие есть наиболее актуальные книги по GTK+3? Предпочтительно не печатные издания, а электронные, так как их легче обновлять до последней версии.
Конечно, хочется GTK+ 3.20, но любая пойдёт.

★★★★★

Ответ на: комментарий от CYB3R

Ценность информации в книжках постепенно теряется, так как быстро устаревает. Примеры кода перестают собираться и т.д и т. п.

Единственное, для чего пригодна книжка по тулкиту — это:
1. Подробный обзор его возможностей.
2. Примеры авторских ухищрений, трюков по реализации чего-либо интересного.

Тематические блоги разработчиков прекрасно справляются со второй задачей.

EXL ★★★★★
()
Ответ на: комментарий от EXL

Именно из-за этого я и не хочу бумажное издание, так как оно устареет до того, как попадёт к читателю, GTK развивается очень быстро. А блогов много и информация там не структурирована. Хотелось бы просто описание GLib, GTK+, GDK, Clutter, Cairo, Pango, GStreamer чуть подробнее, чем в википедии. В целом понятно, как всё это вместе работает, но с построчным разбором маленьких примеров кода было бы намного нагляднее.

CYB3R ★★★★★
() автор топика

Книг по описанию возможностей gdk/gtk и всего стека, нагороженного над gobject, нету. Да и нет смысла с такой скоростью разработки.
Максимум, что в такой ситуации разработчики смогут поддерживать актуального, мануал только.
Вообще если нужны какие-нибудь примеры - я обычно ищу на гитхабе в репозитории GNOME, некоторые мейнтейнеры в gtk пилят так же и софт, используя новые фичи. К тому же код обычно довольно читабельный.
Если же хочется просто увидеть весь функционал библиотеки, то проще reference глянуть в документации, там обычно все отлично описано, что и зачем нужно.

ykroop
()
Ответ на: комментарий от Legioner

А как же обратная совместимость?

Она по-моему существует только в Java-мирке.

Я вот давеча искал эмулятор консоли Mattel Intellivision, нашёл два старых эмуля, один на Java

v1.61 – September 7, 2001

Другой на C -> GTK+1, чуть новее.

У меня стоит Oracle JDK 8 и я почему-то подумал, что Java'овский эмуль нифига работать не будет и начал колупаться с нативной версией, которую так и не смог запустить, ибо в недрах старой библиотеки GTK+1 что-то сегфолтилось.

В итоге два раза кликнул на JAR-файлик, Java-эмуль запустился и отлично заработал, в том числе звук, да и производительность в целом. Это очень похвально для Java, если бы я сразу доверился ей, то не убил бы час на попытки запустить GTK+1 версию.

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 2)
Ответ на: комментарий от CYB3R

GTK развивается очень быстро

Да, меняется оно быстрее, чем рационально. А вот насчёт развития... Вот лучше бы на нём сконцентрировались.

но с построчным разбором маленьких примеров кода было бы намного нагляднее.

На лоре уже было, что GTK позиционируется как тулкит для разработчиков гнома, а не для всех желающих, которые, конечно, на свой страх и риск тоже могут пытаться пользоваться. И учитывая переходы с GTK на Qt, похоже, всё менее успешно. Исходя из этой позиции, становится ясно, почему так плохо с литературой/документацией.

gag ★★★★★
()
Ответ на: комментарий от peregrine

А чего это?

Там же помечается всё как Deprecated, зачёркивается, но не выкидывается.

Гугл даже AppCompat тебе дал, чтобы ты мог крутые прикладухи использующие новые API запускать на древних Android 2.2 смартфонах.

EXL ★★★★★
()
Ответ на: комментарий от gag

И учитывая переходы с GTK на Qt

Да это же всё флуктуации. MS вон Skype на GTK+ и гномовые зависимости недавно перевела, дропнув Qt, всё теперь? Qt погибает?

EXL ★★★★★
()
Ответ на: комментарий от EXL

Не знал. Но закрытый скайп под линукс - это ниша по сравнению с теми открытыми проектами. (Вообще, я за GTK, но как бы его разработчикам объяснить, что не гномом единым и не горой количественных изменений.)

gag ★★★★★
()
Ответ на: комментарий от fluorite

Лол, да новые скайпоразрабы вообще скорее всего npm-пакет заюзали, типа https://github.com/atom/node-keytar. А чо он там уже тащит, даже разбираться не стали скорее всего.

fluorite ★★★★★
()
Ответ на: комментарий от EXL

Ковырнул deb-пакет, реально keytar. Так что вертели твой gtk+ и нативную разработку для скайпа на джаваскрипте.

fluorite ★★★★★
()
Ответ на: комментарий от EXL

Что-то мне не верится, что все десятки тысяч приложений на Gtk дружно переписывают при выходе каждой новой минорной версии Gtk (или в каждом дистрибутиве тащут тысячи разных версий Gtk, которые ещё и должны работать бок о бок). Думаю, ты таки ошибаешься и у Gtk есть обратная совместимость хотя бы в пределах мажорной версии и старые примеры должны компилироваться.

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

Да, конечно, обратная совместимость есть и всё работает, так как новые версии выходят постоянно. Вот версии, которые требуют UI в твоей системе:

find /usr -name '*.ui' | xargs cat | grep 'gtk.*version'
Для скомпилированных приложений это так просто не посмотреть.

CYB3R ★★★★★
() автор топика
Ответ на: комментарий от Legioner

Думаю, ты таки ошибаешься

^^ this.

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

т.е. бинарь собранный c 3.0.0 работает на 3.20.x без пересборки, и исходники под 3.0.0 компилируются с 3.20.

думаю, он имел ввиду отсутствие стабильного API для themes. это несколько другое, и разработчиков приложений не затрагивает.

еще были кое-какие слухи, что разрабы GTK могут отказаться от этой модели разработки, и начать ломать API раз в пару месяцев, или типа того - но не в рамках мажорных версий, а посредством скорострельного выпуска GTK4, GTK5 и т.п.

waker ★★★★★
()
Ответ на: комментарий от CYB3R

это абсолютно нормальное явление — deprecated'ы будут вырезаны в GTK4. (кстати, есть GLIB_DISABLE_DEPRECATION_WARNINGS)

waker ★★★★★
()
Последнее исправление: waker (всего исправлений: 1)

Есть devhelp программа, покажет документацию к библиотеке, если gtk*-doc установлена, а гайд знаю только если найти в исходных кодах сделанных приложений, мне ответы в irc на каналах разработчиков, ( не помню уже gtk или gnome), давали ответ с примером готовой программы, где написан правильный способ решения.

u0atgKIRznY5
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.