Поймали трех индейцев и заперли в сарай. Через несколько дней смотрят, а они сбежали. Индейцев опять поймали и спрашивают, как им удалось сбежать. Они отвечают: – Сидим мы день, сидим другой, а на третий день Орлиный Глаз заметил, что у сарая одной стены не хватает.

Бородатый анекдот

Оглядываясь по сторонам, я наконец смог заметить и оценить уникальный по своим характеристикам онлайн сервис для создания мобильных приложений для ОС Андроид – App Inventor. Можно ли его использовать как альтернативу Delphi? Сильно ли отличается процесс создания приложений от My Visual Database? Сложно ли освоить эту среду разработки? В чем его плюсы и минусы?

Интерфейс среды разработки

Для работы используется два режима: редактор экрана (экран – это аналог формы в приложениях Windows) и редактор блоков кода.

В редакторе экрана справа расположена панель компонентов, а в центре отображается приблизительный вид приложения в выбранном разрешении (доступно три размера: телефон, планшет и компьютер). Слева находится дерево компонентов, расположенных на экране, и список свойств выбранного компонента.

Работу по созданию внешнего вида программы можно описать двумя действиями:

  • Перенести компонент на экран приложения
  • Настроить свойства компонента

В редакторе блоков слева расположено дерево категорий блоков/использованных компонентов, а в центральной части – область для компоновки блоков. Процесс компоновки напоминает сборку пазла: блоки имеют выступы и углубления различной формы, которые должны совпасть. Цветом обозначены категории блоков.

Работу по созданию функциональности программы также можно описать двумя действиями:

  • Перенести блок на рабочую поверхность редактора; при необходимости присоединить его к уже имеющимся блокам.
  • Настроить свойства блока: задать значение константам или выбрать опции из выпадающего списка.

Работа с данными

Есть несколько главных отличий App Inventor от My Visual Database и Delphi, которые обусловлены особенностями Android, а также стремлением разработчиков максимально упростить процесс создания приложения.

Типов данных всего четыре:

  • Текст
  • Число
  • Логическая величина
  • Объект

Тип переменной определяется значением, которое в него поместили.

Массивов нет, вместо них используются списки:

  • Простой – доступ к элементам осуществляется по индексу
  • Именованный – доступ к элементам осуществляется по (текстовому) ключу

Есть возможность хранения данных в памяти телефона: либо в виде именованного списка, либо в виде текстовых файлов.

Что же касается хранения данных в облачном хранилище, google-таблицах и базе данных FireBase, то всё это хорошо работало лет пять назад. В настоящее время изменились протоколы безопасности как у Andriod, так и у Google, поэтому подключение сетевых хранилищ весьма затруднена. По крайней мере мне за три недели поиска и экспериментов это сделать не удалось.

Функциональность создаваемых приложений

Несмотря на заточку App Inventor на школьников и студентов, возможности создаваемых приложений впечатляют: доступ с камере и датчикам, работа с телефонной книгой, отправка и прием SMS и совершение телефонных звонков. Можно работать с картой местности, графическими и мультимедийными данными, использовать BlueTooth и другие аппаратные возможности телефона. По крайней мере для этого имеются соответствующие компоненты. А их работоспособность во многом будет зависеть от того, какая версия Android на вашем телефоне.

Если вы фанат Lego Maindstorms, то вы получаете бонус, который превратит ваш телефон в универсальный пульт управления созданными по данной технологии игрушками.

Коммерческая разработка

Вы можете создавать файлы apk, можете размещать их на Play Market. Казалось бы, вот оно счастье. Однако, учитывая тот факт, что развитие App Inventor затормозилось лет пять назад, а многие сообщества давно распались, унеся с собой в информационную могилу кучу созданных расширений для App Inventor, считаю создание коммерческих приложений на App Inventor весьма рискованным мероприятием. А вот в качестве инструмента обучения, который логично встаёт в цепочку ScratchApp InventorFlutter Flow, очень даже рекомендую. Я даже решил добавить специальный подраздел в своем блоге, посвященный App Inventor.

Резюме

АспектПреимуществаНедостатки
ЛокализацияИмеется локализация на русский и другие языки, что позволяет быстро освоить данную среду разработки.Есть неточности перевода, сбивающие с толку.
ДокументацияНесколько видов: встроенная в среду разработки, множество руководств, книг и обучающих материалов.Руководства и видеогайды на русском языке имеются, но их нужно искать отдельно.
Визуальный редактор формРаботает в браузере, из любой точки на любом компьютере. Привычная компоновка: дерево компонентов, превью экрана, дерево элементов экрана, свойства выбранного элемента. Нет возможности перетаскивания компонентов в дереве компонент. То есть, если компонент не поместился на экране, то вы не сможете его перетащить в другое место.
Визуальный редактор кодаНе требуется ввод команд, все операторы реализованы как элементы пазла, соединяемые перетягиванием мышки. Вводятся только строковые и числовые константы. Встроенные системные комментарии по командам. Скрываемые пользовательские комментарии.Даже для простых выражений может получиться громоздкая визуальная конструкция, требующая для просмотра экран высокого разрешения.
Нельзя создать один обработчик для нескольких объектов, что порождает копипаст.
КомпонентыНабор компонент обеспечивает совместимость с устройствами 10-летней давности, доступ к аппаратным ресурсам телефона, интеграцию с важными сервисами (телефония, СМС, карты, распознавание/синтез речи и т.д.)Визуальные компоненты имеют ограниченный набор свойств. Состав и внешний вид компонентов не покрывает все современные потребности и запросы пользователей.
Хранение данныхМожно использовать файловое хранилище телефона, TinyDB (хранение именованных параметров), облачное хранилище (сервер MIT или свой RedisServer), Google-таблицы.Нет готовых решений на уровне компонентов, требуется создание кода для связывания источников данных и компонентов отображения данных. Для стандартных манипуляций с данными также нужен код.
Многие предлагаемые из коробки решения устарели и не работают.
Развертывание
и сопровождение
Создается файл .apk и QR-код для скачивания приложения.Для публикации на Google Play потребуется приобретение ключей разработчика.
ОтладкаСинхронизация с телефоном по wifi или кабелю, мгновенное отображение результата редактирования проекта на конечном устройстве. Возможность подключения эмулятора.Для отладки и логирования требуются дополнительные внешние утилиты.
Стоимость покупки и владенияБесплатно для любых целей. Всё находится на серверах MIT и Google, учитывая политическую обстановку, для Российских разработчиков это создает риски.
ДополнительноИнтеграция с LEGO MaindStorms

Ссылки

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *