Оскільки нативний фреймворк в 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 містить велику кількість функцій для зміни стану об’єктів, отримання відгуку від елементів, наприклад, як сигнал натискання на об’єкт чи його видалення.
Всі віджети бібліотеки 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-му уроку.