Спільне використання app inventor і web-технологій

Існує кілька способів розширити функціональність App Inventor і збільшити ефективність створення додатків в цьому середовищі розробки: за допомогою розширень, зовнішніх програмування web-технологій.

Створювати розширення для MIT App Inventor 2, можливо, не так і складно, але при цьому виникає справедливе запитання, а для чого це робити, якщо можна знайти готову і більш функціональну технологію? Писати розширення мало б сенс, якщо вихідний движок вражав своїми можливостями і продуктивністю. Але тут цього немає, а з велосипеда, як відомо, автомобіль не зробити.

Використовувати можливості сторонніх додатків є непоганою ідеєю, але це частіше відбувається на рівні якихось загальних сервісів, а хотілося б збільшити функціональність на більш низькому рівні, наприклад, компонентів. У таких випадках варто звернути увагу на використання можливостей web-технологій, які стають доступними при використанні компонента WebView. У найпростішому випадку взаємодія може бути таким: додаток передає скрипту, що знаходиться в html-файлі, дані для обробки, після якої вони передаються назад з додатком.

У використанні App Inventor спільно з іншими технологіями немає нічого дивного. Не існує універсальної мови розробки, який дозволив би ефективно вирішувати будь-які завдання на будь-якій операційній системі при будь-якому рівні доступних для цього ресурсів. Значить, для вирішення того чи іншого завдання практичніше використовувати ту технологію, яка дозволяє розв'язати цю проблему швидше і простіше. У будь-якому випадку у вас є вибір, або впертися і все робити за допомогою блоків, або щось передавати на обробку web-технологій, які можуть здійснити її простіше і швидше.

Розглянемо приклад сортування списку рядків.

Мал. 1. Сортування списку без повернення результату з додатком.

В наведеному вище прикладі дані тільки передаються скрипту, чим і пояснюється його простота. Якщо дані потрібно отримати з скрипта, то в такому випадку необхідно використовувати таймер для відстеження повертається скриптом значення (рис. 2).

Спільне використання app inventor і web-технологій

Мал. 2. Сортування списку з поверненням результатів в додаток.

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

Зверніть увагу на те, що дані в скрипт передаються в одну властивість - WebViewString, а повертаються в іншому - CurrentPageTitle. Це необхідно для розв'язки вхідних і вихідних параметрів, так як параметри в скрипт передаються по посиланню, а не за значенням.

Скрипти можна помістити в окремий html-файл і викликати їх з блоків (рис. 3).

Спільне використання app inventor і web-технологій

Мал. 3. Використання зовнішнього html-файлу, що містить скрипт.

Код файлу скрипта AppInventor.html.

Схожі статті