У цьому уроку ми розберемо структуру програмного коду додатку, розглянемо основні і додаткові події додатку шаблона, на прикладі, який був створений в 7-му уроку.
Як і в будь-якій програмі, написані на С/C++, робота програми починається з функції main().
У першому рядку тут ініціалізується структура appdata. Зазвичай в ній зберігається вказівники на всі важливі об’єкти додатку, такі як: вікно чи макет (layout). Далі відбувається ініціалізація обробників подій.
Tizen UI додаток, протягом свого життєвого циклу, може знаходитись в п’яти різних станах: створення, відновлення, призупинення, завершення, управління. При переході додатку з одного стану в інший, система викликає методи зворотного виклику:
app_create() – викликається при створення додатку. Тут ви можете створити основу інтерфейсу користувача вашого додатку (створити вікно, встановити його розмір, завантажити макет та інше) та ініціалізувати компоненти моделі додатку;
app_terminate() – викликається при видаленні додатку. Коли головний потік додатку закінчив свою роботу, в цій функції необхідно прослідкувати за видаленням виділених в програмі ресурсів, якщо такі наявні;
app_pause() – викликається, коли вікно додатку повністю невидиме для користувача;
app_resume() – викликається кожного разу, коли вікно додатку показується користувачу;
app_control() – викликається, коли додаток отримує запит на запуск від іншого додатку.
Тепер перейдемо до обробників системних подій. Функція ui_app_add_event_handler() реєструє обробник наступних системних подій:
APP_EVENT_LOW_MEMORY – недостатньо пам’яті.
APP_EVENT_LOW_BATTERY – низький заряд батареї.
APP_EVENT_LANGUAGE_CHANGED – на пристрої була змінена мова введення.
APP_EVENT_DEVICE_ORIENTATION_CHANGED – змінена орієнтація екрану пристрою.
APP_EVENT_REGION_FORMAT_CHANGED – змінені налаштування локалізації.
Функція ui_app_main() – запускає головний цикл додатку, після того як відпрацює app_create(). Якщо app_create() повертає false, головний потік не запускається, а відразу викликається app_terminate().
У наступному уроку ми розберемо з яких базових модулів складається Tizen.