Эффективная работа в App Inventor 2 позволит проще и быстрее создавать и отлаживать приложения под Android. А разве можно работать в этой простой среде разработки неэффективно? Конечно! Разработчики любого программного обеспечения дают нам инструменты с описанием того, как с ними работать, а то, насколько эффективно мы ими пользуемся, во многом будет зависеть уже от нас.
В настоящее время можно найти немало материалов по использованию MIT App Inventor, включая статьи, пошаговые руководства на видео или в печатном виде, справки, примеры, книги и др., но в большинстве из них упор делается простоту подачи материала для начинающих пользователей. Мы же пойдём другим путём и посмотрим на App Inventor с позиции программиста. Да, эта среда не предназначена для редактирования кода, что является одним из снижающих её эффективность факторов, но некоторые подходы и возможности, использующиеся в других средах разработки и языках программирования, можно попробовать реализовать и здесь.
После изучения основ возникает вопрос, в какую сторону двигаться дальше? В сторону разработки более сложных приложений с использованием уже имеющихся навыков или повышения качества навыков с тем, чтобы в дальнейшем использовать их для разработки более сложных приложений? Мы выбираем второй путь.
Разработка простых и сложных приложений имеет отличия. С увеличением сложности и объёма данных многие моменты, которые неплохо работали в простых случаях, становятся не просто неэффективными, но приводят к путанице и необходимости выполнения большого объёма лишней работы. Одно дело работать с несколькими десятками блоков и совсем другое, когда их тысячи.
Эффективность нашей работы зависит не только от наших знание и умений, но и от функциональности среды разработки. Среда разработки App Inventor является простой, а это естественным образом ограничивает её возможности.
Если вы работали в какой-либо интегрированной среде визуального проектирования интерфейса, например, Embarcadero RAD Studio, Visual Studio или Android Studio, то интерфейс дизайнера Inventor 2 покажется знакомым.
Рис. 1. Интерфейс App Inventor 2 в режиме дизайнера.
Здесь также присутствует палитра компонентов, рабочее поле, панель компонентов проекта и панель свойств. Но при этом нет возможности выделить несколько компонентов для выполнения операций над ними. С одной стороны, это удобно, так как проще работать с одним компонентом, но представим ситуацию, когда нужно изменить размеры 10 кнопок. Для этого придётся последовательно выделить каждую кнопку и изменить нужные свойства. Если результат не понравился, то нужно будет опять последовательно изменить значения свойств для каждой кнопки. Индивидуальная настройка компонента характеризуется простотой, но при их большом количестве работа быстро превращается в рутину.
Другой пример. В режиме редактирования блоков дополнительно к уже имеющимся нужно создать 10 глобальных переменных и присвоить им разный текст. Добавляем в редактор 10 блоков, и в каждое из них последовательно вводим нужный текст. Затем нужно эти блоки скопировать в рюкзак. Для этого придётся перетащить каждый блок по отдельности.
Можно ли назвать показанные примеры работы эффективными? Нет. При помощи программного кода эти задачи решаются просто, но написание программного кода сложнее перемещения блоков. Выигрыш в простоте разработки приложений на App Inventor 2 достигается за счёт проигрыша в эффективности работы с ним.
Если эффективность работы в среде разработки невысока, то за счёт чего она позволяет создавать весьма интересные и функциональные приложения под Android? За счёт использования готовых компонентов. Например, для подключание Arduino к мобильному телефону или планшету по Bluetooth здесь нужно соединить всего несколько блоков, тогда как при использовании языков программирования это может занять десятки и даже сотни строк кода. Использование блоков компонентов упрощает создание приложений, но для реализации требуемой функциональности не всегда можно обойтись только ими. Приходится использовать встроенные блоки. К сожалению, встроенные возможности текущей версии Mitt App Inventor 2 не позволяют полностью автоматизировать работу с блоками для её упрощения. В данной среде разработки используется строгая типизация и возможность работы только с уже созданными компонентами, а также заранее выбранными компонентами и их свойствами в блоках. Но кое-что для оптимизации работы сделать можно.