Разработка приложений для Linux

Если вы являетесь технически грамотным пользователем, вы наверняка рано или поздно задумаетесь о том, как разработать то или иное приложение, которого вам не хватает в Linux. При этом следует принимать во внимание один важный нюанс: в большинстве дистрибутивов Linux не регламентируются технологии, которые могут использоваться для разработки программного обеспечения для них (исключением является разве что дистрибутив elementaryOS). Это означает, что вы можете использовать любой доступный язык программирования, графический тулкит, мультимедийный фреймворк или сервер базы данных, заботясь лишь о том, чтобы ваше приложение корректно функционировало в большинстве дистрибутивов. По этой причине я буду описывать лишь те инструменты и технологии, которые использую сам.

1. Языки программирования

1.1. Язык C

C LogoC является простым, переносимым языком программирования, который используется для разработки программного обеспечения для широкого спектра устройств, начиная с серверов и заканчивая встраиваемыми устройствами. Этот язык иногда называют языком «среднего уровня» из-за того, что он занимает нишу между языком ассемблера, который сложен для изучения и практического использования и такими языками высокого уровня, как Python и Java, которые просты в использовании, но не позволяют добиться сопоставимой скорости работы приложений.

Краткое описание возможностей данного языка программирования:

  1. Введение
  2. Hello World
  3. Вывод информации
  4. Переменные
  5. Константы
  6. Строки
  7. Массивы
  8. Структуры
  9. Объединения
  10. Условные инструкции
  11. Операторы
  12. Циклы
  13. Перечисления
  14. Приведение типов
  15. Функции
  16. Указатели
  17. Препроцессор
  18. Заголовочные файлы
  19. Программная обработка файлов
  20. Компиляция
  21. Работа с временными файлами
  22. Модуль стандартной библиотеки time.h
  23. Модуль стандартной библиотеки math.h
  24. Модуль стандартной библиотеки unistd.h

2. Графические тулкиты

2.1. GTK

0t3493t4 0

GTK является мультиплатформенным тулкитом для создания графических интерфейсов. Он предоставляет полный набор виджетов и подходит для создания как простейших утилит, так и сложных программных продуктов. В основе тулкита лежит язык программирования C, но благодаря его простому и понятному API, существует множество оберток, позволяющих использовать его возможности при работе с другими языками программирования. GTK распространяется в соотвествии с условиями лицензии LGPL, что означает, что вы можете использовать данный тулкит как при разработке свободного программного обеспечения с открытым исходным кодом, так и при разработке пропиетарного программного обеспечения с закрытым исходным кодом.

Краткое описание возможностей данного тулкита:

  1. Введение
  2. Hello, World!
  3. Иерархия виджетов
  4. Виджет окна (GtkWindow)
  5. Виджет контейнера (GtkBox)
  6. Виджет сетки (GtkGrid)
  7. Виджет метки (GtkLabel)
  8. Виджет кнопки (GtkButton)
  9. Виджет кнопки-переключателя (GtkToggleButton)
  10. Виджет флажка (GtkCheckButton)
  11. Виджет радио-кнопки (GtkRadioButton)
  12. Виджет поля для ввода числовых значений (GtkSpinButton)
  13. Виджет кнопки-гиперссылки (GtkLinkButton)
  14. Виджет кнопки для показа меню (GtkMenuButton)
  15. Виджет кнопки для разблокировки возможностей (GtkLockButton)
  16. Виджет переключателя (GtkSwitch)
  17. Виджет поля ввода строки (GtkEntry)
  18. Объект автодополнения поля ввода строки (GtkEntryCompletion)
  19. Объект буфера поля ввода строки (GtkEntryBuffer)
  20. Виджет поля ввода поискового запроса (GtkSearchEntry)
  21. Виджет панели мню поиска (GtkSearchBar)
  22. Виджет строки ускрителя (GtkAccelLabel)
  23. Виджет контейнера для кнопок (GtkButtonBox)
  24. Виджет разделителя (GtkSeparator)
  25. Виджет индикатора исполнения задачи (GtkSpinner)
  26. Виджет календаря (GtkCalendar)
  27. Виджет ползунка (GtkScale)
  28. Виджет кнопки для показа ползунка (GtkScaleButton)
  29. Виджет кнопки для установки уровня звука (GtkVolumeButton)
  30. Виджет меню (GtkMenu)
  31. Виджет главного меню окна (GtkMenuBar)
  32. Виджет элемента меню (GtkMenuItem)
  33. Виджет эелемента меню, являющегося флажком (GtkCheckMenuItem)
  34. Виджет элемента меню, являющегося радиокнопкой (GtkRadioMenuItem)
  35. Виджет элемента меню, являющегося разделителем (GtkSeparatorMenuItem)
  36. Виджет панели инструментов (GtkToolbar)
  37. Виджет палитры инструментов (GtkToolPalette)