App Inventor родился как академический эксперимент MIT и превратился в устойчивый конструктор мобильной логики. Я применяю его для экспресс-прототипирования, когда нативный код Kotlin избыточен, а сроки поджимают.

Инфраструктура запуска
Платформа живёт в браузере. Достаточно открыть ai2.appinventor.mit.edu, авторизоваться через Google-аккаунт и подключить телефон по Wi-Fi или через ADB. Для полноты опыта устанавливаю Companion APK: он отображает интерфейс в реальном времени, обновляя UI каждого изменения без перекомпиляции.
Слева панель компонентов: кнопки, поля ввода, датчики, веб-запросы. Я перетаскиваю компонент, настраиваю свойства справа, определяю мерки в dp. Для точной верстки применяю контейнер TableArrangement, а для плотных рядов — горизонтальный LinearArrangement.
Блоки и события
Сцену кодирования заменяет цветной редактор Blockly. Каждый блок — пластиковая деталь, снабжённая пазами, ограничивающими типы данных. Ошибку статической природы почти исключает ортогональность конструкции: несовместимые типы физически не стыкуются. Событие Button1.Click запускает сериализацию модели в JSON, служебный блок cal Web 1.Post Text отправляет полезную нагрузку серверу.
Для взаимодействия между активностями подключаю блок ActivityStarter. Он принимает строку intent и flags, схожие с параметрами android.content.Intent. Нужен прямой вызов камеры? Указываю action android.media.action.IMAGE_CAPTURE и получаю Bitmap в событии After Activity. Грани пользовательского сценария расширяет компонент Extension: через Java или Kotlin пишу jar, загружаю его в IDE, и новая функциональность возникает в палитре.
Отладка и выпуск
Лайфцикл Companion снабжён логом Logcat, доступным в браузере. Фильтрую теги, отслеживаю исключения. Для профилирования времени кадра встраиваю метод SystemClock.elapsedRealtime в блок Clock.Timer. При физическом лаге интерфейса рассматриваю индекс Константы Тьюринга — число блоков, исполняемых за кадр.
Экспорт APK запускается опцией Build → App (save apk). Сервер MIT компилирует dex, подписывает одной-двумя парами ключ/хэш и выдаёт ссылку. Для распределения через Google Play скачиваю keystore, переименовываю его в release.keystore, а затем выполняю jarsigner. Ограничения: единственный процесс, отсутствие глубокого доступа к NDK, вес рантайма около 7 МБ. Зато время до MVP измеряется часами, а не спринтами.
App Inventor занимает нишу учебного прототипирования и закатанного разгона. Он не заменит Sublime-Kotlin-Gradle стек при серьёзной задаче, зато экономит когнитивную нагрузку там, где главенствует идея, а не синтаксис. Я часто сравниваю блоки с лего-пластинками: дизайн-мышление торжествует, суровая герменевтика платформы скрыта за ярким графическим фасадом.



Цветная фольга и рельеф, которые делают поздравление заметнее
Как фольга помогает типографике
Ошибки, которые портят впечатление



















