DroidScript
DroidScript
разработка мобильных приложений

Thunkable X: введение

Thunkable X 
07.01.2020

Thunkable ✕ - это платформа для разработки нативных мобильных приложений под iOS 10 и выше, а такжэе под Android 5.0 и выше, в основе которой лежит React Native и Blockly. Разработка проектов производится в браузерной среде Thunkable IDE, а тестирование - в клиентском приложении Thunkable Live, устанавливаемом на устройстве iOS или Android.

Уникальность данного инструмента разработки состоит в том, что он позволяет устанавливать неограниченное количество приложений на Android и одно приложение на каждое iOS устройство, например, iPhone, без использования Xcode. Это достигается за счёт использования конфигурационного профиля предприятия-разработчика платформы Thunkable, который нужно будет установить в настройках устройства.

Для установки приложения в среде разработки формируется запрос на генерацию apk-файла (для Android) и отправку письма с ссылкой на приложение (для iOS). В первом случае ссылка на apk-файл для скачивания будет доступна через несколько секунд после его формирования, а во втором случае на указанный пользователем почтовый адрес будет отправлено письмо с ссылкой на приложение. Это письмо нужно открыть на устройстве iOS и по ссылке в нём скачать и установить приложение.

Диалог для отправки письма с ссылкой на приложение для iOS

Рис. 1. Диалог для отправки письма с ссылкой на приложение для iOS.

Установка одного приложения на iOS кажется большим ограничением, но на самом деле всё немного интереснее. Для тестирования проектов используется клиентское приложение Thunkable Live, содержащее список всех проектов аккаунта. При наличии связи с сервером Thunkable X это даёт возможность открыть любой проект аккаунта. Для перехода к данному списку нужно запустить Thunkable Live и нажать кнопку BACK, которая отображается на системной панели над экраном запущенного приложения.

Для связи Thunkable IDE и Thunkable Live не требуется нахождение компьютера и устройства в одной сети. Она осуществляется посредством облачного сервера с доступом через Google-аккаунт. Всё это позволяет, в отличие от React Native, Phonegap, V-Play, App Inventor и др., демонстрировать приложения заказчику на устройстве без необходимости запуска локального сервера.

В Thunkable ✕ можно создавать приложения размером до 50 Mb, в пределах размера бесплатного аккаунта, который ограничен 200 Mb. Размер 50 Mb для приложения кажется большим значением, но при наличии большого количества ресурсных файлов, добавленных в проект, его можно быстро исчерпать. Если для хранения активов (ресурсных файлов) требуется больше места, то можно перейти на платный аккаунт или использовать облачные хранилища или базы данных - Firebase, AirTable и др. Ограничения на количество аккаунтов нет.

Создание приложений в базовом аккаунте является бесплатным, но при этом можно создавать только общедоступные приложения. Для возможности создания закрытых частных проектов необходимо приобрести подписку на pro-аккаунт.

Разработка приложений основана на визуальном программировании с использованием блоков, как это происходит в Scratch, App Inventor и других аналогичных средах разработки.

Визуальное программирование при помощи блоков

Рис. 2. Визуальное программирование при помощи блоков.

Данный подход внешне выглядит как собирание пазла из доступных элементов для получения требуемой логики работы приложения. Это упрощает создание приложений тем, кто не знаком с текстовым программированием и языками программирования.

Если у вас есть опыт работы с похожими средами (App Inventor, AppyBuilder, Kodular, Sketchware и др.), то возникает вопрос о преимуществах и недостатках Thunkable X по сравнению с ними.

Преимущества Thunkable X

  • Возможность создавать и тестировать приложения под iOS без XCode и Mac
  • Официальная установка одного приложения на iOS
  • Вход в аккаунт при помощи учётной записи Google
  • Движок построен с использованием React Native, благодаря чему при помощи блоков можно создавать компоненты и изменять их свойства на этапе выполнения приложения
  • Нет ограничения по количеству создаваемых экранов
  • Нет жестких ограничений на размер приложения, как это имеет место быть в похожих средах

Общие недостатки платформы Thunkable X

  • Закрытость проекта со всеми вытекающими из этого последствиями
  • Большое количество багов, вызывающих краши на Android
  • Недостаточно полное и глубокое тестирование обновлений платформы. Бывали случаи падания рабочих проектов после очередного обновления или что-то на экранах просто перестаёт работать
  • Отсутствие информации по обновления платформы, в результате чего совершенно непонятно какие баги были исправлены в новом выпуске и были они исправлены вообще
  • Невозможно сохранить проект на своём компьютере
  • Нет поддержки расширений
  • Крайне ограниченная функциональность - недостаточно компонентов, мало свойств, очень мало блоков. По функциональности в части Android, Thunkable X уступает по возможностям создания интерфейса и программной логики на 2 порядка похожим средам разработки.
  • Нет возможности использовать JavaScript и осуществлять обмен данными между App и WebViewer
  • Многие компоненты имеют сильно урезанную функциональность
  • Огромный размер файлов apk и ipa
  • Крайне низкая производительность ядра платформы с компонентами. Если со встроенными блоками движок справляется неплохо, то при использовании компонентов производительность резко падает. На телефоне с Android 8.1 и процессором MTK6739WA, 4 ядра, 1.3 ГГц блоки переменных, которые рекомендуют использовать разработчики, работают в 1000 раз медленнее настоящих переменных из параметров функций, а для создания всего 100 кнопок требуется 22 секунды!
  • Нет механизма для отладки проектов
  • Недостаточно полная документация даже по базовой функциональности. Если же говорить о свойствах на панели Advanced, то описания эти свойств вообще нет в официальной документации

Недостатки среды разработки IDE

  • Неудобный редактор вида. Панель компонентов проекта, палитра компонентов, панель добавления экранов, панель свойств реализована неоптимальным образом по причине чего образуется большое количество пустого пространства на экране, а для взаимодействия с элементами интерфейса приходится совершать много лишних движений
  • Перетаскивание компонентов происходит не так гладко, как в похожих средах разработки
  • Рабочая область для создания интерфейса экрана сильно отличается от того, как всё будет выглядеть на экране мобильных телефонов
  • При выделении компонента на рабочем поле не происходит переход к нему в дереве компонентов проекта

Недостатки редактора блоков

  • Низкая производительность. В одноэкранном проекте заметное торможение при перетаскивании блоков могут начаться от 100-300 блоков, а в многоэкранном приложении фриз на десяток секунд можно получить при размещении на экране даже одного "тяжелого" блока. Производительность редактора блоков слабо зависит от мощности компьютера. Предел по количеству блоков на одном экране находится где-то в районе 1500-2000 блоков. Дальше работа просто невозможна, так как приходится ждать по 20-30 секунд после каждой попытки перетащить блоки
  • Нет рюкзака - невозможно копировать блоки между проектами
  • Нет операций отмены удаления блоков

Недостатки приложения для тестирования Thunkable Live

  • Обновление приложения в Live происходит автоматически при изменении данных в IDE. При этом возникает просто гигантский трафик между клиентом b сервером Thunkable X, посредством которого и происходит обмен данными. В случае подвисания канала связи (или сервера) обновления будут становиться в очередь, по причине возникнет такая ситуация: в IDE и редакторе блоков сделано 5 изменений, а в Live в текущий момент времени отображается только второе изменение, затем через несколько секунд от сервера в Live поступит третье обновление и так далее.
  • На экране в Live присутствуют посторонние панели из-за которых интерфейс установленных приложений будет отличаться от тестируемо в Live интерфейса. К сожалению, исправить это невозможно из-за требования Apple к размеру приложения для тестирования. Оно не должно занимать более 80% экрана.

С учётом сказанного выше Thunkable X представляет собой платформу для энтузиастов.

Thunkable X 
© 2016-2020  Александр Страшко