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

Данные и переменные

Секреты Thunkable X 
23.05.2020

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

Проект с примерами

Если у вас есть опыт программирования, то приготовьтесь к тому, что некоторые известные и общепринятые понятия могут иметь иной смысл в среде разработки Thunkable X, что связано с желанием разработчиков огородить пользователей от сложных на их взгляд понятий текстового программирования. С одной стороны это упрощает разработку мобильных приложений, а с другой затрудняет её, так как создание приложений основывается не на знаниях основ программирования, а на примерах соединения блоков из документации, видеоуроков и др. В результате и через один месяц, и через один год блоки на экране будут восприниматься в виде пазла, в который нужно подставить нужный блок. Если вы хотите использовать блоки осмысленным образом, то для этого нужно затратить время и усилия на изучение основ программирования на Thunkable X, которое имеет свои особенности.

Если вы знакомы с JavaScript, то многое вам будет понятно, так как Thunkable X построен на React Native и Blockly, в которых как раз и используется JavaScript.

Для более удобной демонстрации материала в некоторых случаях будет использоваться текстовая запись, например:

y <- 12
x <- ( y ) > ( 10 ) // true

, где
<- место соединения блоков
( ) - параметр в блоке
// - комментарий

В любом приложении, которое предназначено для решения практических задач, происходит работа с данными. Для доступа к значениям данных используются переменные, которые можно воспринимать как коробку с надписью, в которую можно что-то положить, а затем достать из неё. Главное преимущество использования переменных состоит в том, что их значения можно получить в разных местах программы, что сокращает вероятность появления ошибок. Представьте, что в проекте для работы с графикой нужно 50 раз использовать значение константы. Для этого создали 50 числовых блоков со значением 3,14. После тестирования выяснилась необходимость увеличения точности значения константы до 3,1415. Для этого придётся вручную исправить значение во всех 50 блоках и можно легко пропустить какой-нибудь блок, что может привести к ошибке вычислений. В случае же использования переменной внести изменения нужно будет всего в один блок, присоединённый к этой переменной в начале программы. По этой причине старайтесь как можно реже использовать литералы (фиксированные значения, например, 10, false, ”возраст”), заменяя их на блоки переменных. Для хранения литералов можно создать данные в формате JSON, которые затем загрузить в приложение и работать с ними при помощи переменных. В этом случае литералы воспринимаются в качестве ресурсов, загружаемых в приложение, которые можно легко отредактировать или заменить, получив более гибкое программное решение. Данный подход, например, широко используется при создании интернациональных приложений, в которых пользователь может выбрать язык интерфейса.

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

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

Переменные

Название ”переменная” означает то, что её содержимое может меняться. Сначала в переменную можно записать число 10, затем 20.8 или даже строку “двадцать”. Операция записи значения в переменную называется присваиванием. Присваивание нового значения переменной приводит к потере (перезаписи) текущего её значения. Этим она отличается от незаполненной коробки, в которую можно положить несколько предметов без необходимости что-то вытаскивать из неё.

Блоки переменных находятся в разделе Variables. Это глобальные для всего проекта переменные. Локальных переменных в Thunkable X нет, но их можно создать из параметров функций, что будет показано в своё время.

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

Блоки для работы с переменными

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

Любая переменная имеет имя, при помощи которого можно обратиться к ней. Без имени будет непонятно, в какую переменную нужно сохранить данные или из какой переменной требуется получить данные.

Во всех блоках переменных на рисунке указано имя по умолчанию - name. Если переменная с именем name уже существует в проекте, то для соблюдения уникальности имён к ним будет автоматически добавлен порядковый номер - name1, name2 и так далее.

В качестве имени можно использовать любые поддерживаемые системой строки символов, включаю и те, которые недопустимы для имён в текстовых языках программирования, напрмер, 1. Проще говоря, имя переменной в Thunkable X - это псевдоним, а не реальное имя переменной.

Помимо указанных на рисунке блоков в Thunkable X есть и другие блоки для работы с переменными. Мы их рассмотрим после изучения фундаментального понятия типа переменной.

В отличие от текстового программирования, где под типом переменной понимают множество значений, которая она может принимать, в документации Thunkable X под типом переменной понимается место хранения глобальной переменной, что вносит путаницу. В Thunkable X используется динамическая типизация переменных, в рамках которой переменные могут принимать значения разных типов данных (сначала в неё можно записать число, затем строку, а после объект и т.д.). Соответственно, под типом переменной в Thunkable X понимается то, что более точно можно определить как класс памяти (или тип хранилища) глобальной переменной – места, где хранится значение глобальной переменной (в оперативной памяти устройства, в  постоянной памяти устройства или в облачной базе данных Firebase). Чтобы окончательно не запутаться предлагаю при чтении официальной документации под типом переменной понимать тип блока.

Для работы с переменными используются следующие блоки:

  • app
  • stored
  • cloud
  • параметры функций

Выбор типа блока переменной app, stored или cloud производится из выпадающего списка блока инициализации переменной.

Выбор типа глобальной переменной

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