Встановлення додатків на БАД 2.0 можливі помилки. Samsung Apps для ОС Bada – враження злісного користувача. Власне створення програми

08.12.2019 Цікаве

Вітаю. Хотілося б перш за все привітати всіх з Новим Роком, що настав, і відразу перейти до справи. Ця стаття буде присвячена питанню створення простих програмдля Bada - операційної системи для мобільних пристроїв, які випускає корейська Samsung. Заздалегідь хочу сказати, що під катом простий рецепт виготовлення простого додатка без великих міркувань про оптимальність та стрункість коду.
На Хабре вже є досить ґрунтовні статті, які присвячені Bada, наприклад ця і ця, але ось покрокового описустворення програми для новачків немає. Кому цікаво – прошу під кат.


Тема для написання виникла випадково – знайомий активно займається встановленням меж земельних ділянок за допомогою GPS у геодезичній фірмі; специфіка роботи (звідки взялася - гарне питання) полягає в тому, що одержувані геодезичні координати (дозволю собі пояснити, що мається на увазі широта і довгота) треба переводити прямокутні прямо після їх отримання. На фірмі ноутбуків, здатних витримати 8 годинний робочий день немає і не планується, зате знайомий нещодавно купив собі смартфон, що активно просувається в Україні від Samsung з операційною системою Bada, далі було питання - якщо можна скачати ігри для телефону, то чи немає програми, здатної вирішити описану суто інженерну задачу? Такої програми, звичайно, не знайшлося, і я отримав люб'язну пропозицію таку написати за відому плату.

Інструментарій
Для розробки програм для Bada використовується Bada SDK 1.2.0, скачати який можна, зареєструвавшись на сайті для розробників Bada . У цьому процесі немає нічого складного, але на етапі вибору файлів для завантаження я, чесно сказати, «протупив», завантаживши тільки SDK, а так званий мовний пакет (language pack) немає, сподіваючись, що, як написано на сайті, його завантаження відбудеться після встановлення SDK автоматично. Однак, на етапі установки щось йшло не так, установка тривала без завантаження мовного пакета, що в подальшому призводило до неможливості виконати будову (build), ні, тим більше, запустити додаток.
Завантаживши SDK і мовний пакет, їх слід покласти в одному місці, і при установці SDK або її модифікації, установник підхопить мовний пакет і виконає інсталяцію його самостійно.
Власне створення програми

Середовище розробки засноване на Eclipse, використовувану мову програмування С++. Почнемо з того, що перейдемо до створення нової програми очевидною командою File -> New -> bada Application Project. У вікні слід визначити назву проекту в полі Project name, у списку Project Type вибрати тип програми - bada Form Based Application.

Далі середа попросить визначити технічні характеристикипристрою, для якого буде призначено програму (дозвіл екрану, наявність GPS тощо). Ці параметри визначаються в спеціальному файліманіфесту Manifest.xml, який можна вибрати серед файлів SDK, створити та завантажити з сайту Bada Developers або створити свій. Не мудруючи лукаво, я використовував файл маніфесту з папок з прикладами Samples, які встановлюються разом з SDK, оскільки моя програма не вимагала наявності «наворотів», а була важлива лише роздільна здатність екрану.

Далі середа попросить вказати кореневу директорію SDK, із цим проблем виникнути не повинно. Після вибору у списку з'явиться назва моделі пристрою та його API, яка буде використовуватися надалі для програмування.

Наступний крок – визначення імені форми за умовчанням, яка з'явиться відразу після запуску програми. За цим ім'ям буде згенеровано *.h і *.cpp файли.

Далі потрібно визначити додавати чи ні підтримку авто-масштабування та найкращу роздільну здатність екрана, якщо ця можливість буде додана. Я так розумію, що це краще зробити, оскільки програма зможе працювати на різних пристрояхз різним дозволом і його не доведеться переробляти.

Наступна ланка в довгому ланцюжку налаштувань - визначення Application ID, щоб засвідчити функції програми, якщо йому потрібно виконувати читання і запис в захищені папки. Мені це не потрібно, тому я цей крок опустив.

Майже кінець - визначення очевидних властивостей програми Name, Vendor та Description.

І ось вже майже кінець - це визначення необхідних конфігурацій для розробки: рекомендую залишити все за замовчуванням, а зараз найважливішою конфігурацією є Simulator-Debug - це можливість налагодження коду на симуляторі пристрою, Target-Release - конфігурація для компілювання програми перед вивантаженням його на реальний пристрій.

Останній крок - зведена за всіма налаштуваннями інформація у вікні Підсумків (Summary), яку можна ще раз прочитати та переконатися, що все вибрано правильно.

Після фіналу налаштувань майбутня програма з'являється в Project Explorer, клацання по якому призводить до розкриття файлів ресурсів у вікні Resources і появи наступного вікна:

Після клацання на формі (і взагалі на будь-якому елементі керування) на вкладці Properties можна змінити очевидні властивості програми, такі як текст у заголовку, колір тла, наявність та назву софт-клавіш.

Я одразу переніс уже готову кнопку, яку люб'язно згенерувало середовище, нижче та написав на ній Calculate. Маючи в своєму розпорядженні GUI Editor легко отримати наступний інтерфейс, який добре підходить для мого завдання (вважаю, що процес перенесення елементів управління на форму і встановлення їх властивостей ніяких труднощів не викликає); як підписи до полів введення використаний очевидний Label, як поля введення - EditField; для показу результату обчислень також використано Label, оскільки їх редагування не передбачено:

Тепер власне кодування.

Додаток, що виконується, проходить кілька етапів (Допомога дуже докладна, там можна дізнатися деталі), зараз в першу чергу нас цікавить етап ініціалізації програми, за який відповідає метод OnInitializing(void) класу форми, який можна знайти у файлі<ВАША_ФОРМА>.cpp у папці src проекту.

За замовчуванням цей метод виглядає так:

Result Form1::OnInitializing(void) ( result r = E_SUCCESS; // TODO: Add your initialization code here // Get a button via resource ID __pButtonOk = static_cast