Поскольку нативный фреймворк в Tizen в основном построен на библиотеках EFL, во время разработки нам необходимо разобраться в каком из модулей искать необходимые функции, чтобы, допустим, не пытаться найти таймеры в модуле, содержащем графические компоненты.
В этом уроке мы поверхностно разберемся, из каких базовых элементов состоят нативные приложения EFL в Tizen.
Elementary – очень простая библиотека для создания виджетов и контейнеров, с помощью которых можно совершать управление или просматривать различное содержимое вашего приложения. Elementary содержит в себе такие стандартные виджеты как: кнопки, флажки, списки, элементы для ввода текста, календарь, прогрессбары и многое другие. Этот модуль использует в себе Edje, Evas, Ecore и Eina для создания и отрисовки виджетов.
Edje – библиотека для управления, создания и редактирования графических тем и стилей виджетов Elementary. Все эти темы пишутся при помощи скриптового языка EDC, о нем мы будем говорить очень подробно в следующих уроках. Это очень гибкий язык для задания компоновки и анимации отдельных элементов виджетов. Если вы хотите изменить внешний вид вашего приложения, то EDC именно то, что вам нужно.
Весь процесс создания внешнего вида приложения можно выполнить используя Edje инструменты. Кроме того, этот инструмент очень гибок в создании анимаций графических элементов. Очень удобно в Edje то, что вы можете полностью отделить внешний вид от логики приложения, и в случае если вы хотите изменить компоновку виджетов вашего приложения, это может быть сделано в отдельном месте всего несколькими операциями. Для редактирования файлов EDC существует встроенный в Tizen Studio инструмент - Enventor.
Evas – библиотека отображения на холсте. Она хранит все графические элементы в виде геометрических параметров, используя которые, Evas визуализирует содержимое экрана на каждом цикле прорисовки.
В приложении Tizen все графические элементы являются объектами Evas (Evas Object). Evas cодержит большое количество функций для изменения состояния этих объектов, получения отклика от элементов, например, как сигнал нажатия на объект или его удаление.
Все виджеты библиотеки Elementary являются объектами Evas, и называются умными объектами (Evas Smart Object).
Ecore – библиотека, которая в основном используется для запуска событий с задержкой по времени, применяя таймеры, а также, для распараллеливания задач, используя потоки.
Eina – библиотека в которой содержатся контейнера для данных, таких как: списки, массивы или хешы. Также в этой библиотеке находятся функции преобразований форматов, например строки в число или наоборот. С помощью этой библиотеки можно производить логирование вашей программы.
Если вы зайдете на репозитории с исходным кодом EFL, то вам он может показаться необычным. Более подробную информацию о требованиях к стилю кода EFL можно найти здесь.
Зачем мы вам об этом рассказываем?! Если вы будете использовать EFL фреймворк в вашем приложении, вам нужно будет ориентироваться в его функциях. Как минимум, чтобы найти необходимую вам функцию, нужно понимать, как приблизительно она называется. Иначе вам придется каждый раз искать ответ в Интернете или заголовочных файлах. В требованиях к стилю кода об именовании функций говорится следующее:
Первым словом идет имя модуля, в котором находится функция, например: evas, edje или elm (для elementary).
Вторым - имя объекта, для которого вызывается эта функция.
Дальше идут специализации, здесь, по сути, может быть имя параметра или же специализация может отсутствовать вообще.
Последним - всегда идет название действия (set, get, hide и т. д.).
Из выше сказанного функция для установки текста в виджет Elementary соответственно будет состоять из:
elm – имя модуля
object – объект из elementary
text – то, что будем менять
set – будем устанавливать новый текст
В следующем уроке мы поймем с чего начинать создавать ui приложения, рассмотрим основные элементы экрана, и разберем пользовательский интерфейс шаблона, созданного в 7-м уроке.