- Узнайте, как хранить данные на мобильном устройстве для доступа к ним из мобильного приложения
- Узнайте о различных вариантах хранения и доступа к данным в "облаке" для обмена данными между пользователями приложений
Вот задания для этого урока:
ХРАНЕНИЕ ДОЛГОСРОЧНЫХ ДАННЫХ
В предыдущем разделе вы узнали, как использовать переменные и списки для хранения информации в вашем приложении.
Когда приложение закрывается, все переменные, хранящиеся в его памяти, стираются.
Однако бывает, что вам нужно сохранить информацию между запусками приложения. Существует два типа долгосрочного хранения:
Локальное хранение
Храните информацию на мобильном устройстве, чтобы получать ее при каждом запуске приложения.
Например, адрес пользователя или высокий игровой результат.
Облачное хранилище
Храните информацию в Интернете (облаке), чтобы все пользователи приложения могли получить к ней доступ.
Например, таблица лидеров в игре или сообщения в чате.
МЕСТНОЕ ХРАНИЛИЩЕ
Как только пользователь закрывает приложение, значения всех переменных стираются из памяти устройства.
Если вы хотите хранить данные для приложения между запусками, вы будете использовать TinyDB компонент
TinyDB можно использовать для хранения личной информации пользователя, которую не нужно передавать.
Например, пользователь хочет ввести свое имя, возраст, адрес один раз, а не каждый раз, когда он использует приложение. Другой пример - отслеживание здоровых привычек с течением времени.
TinyDB расшифровывается как Tiny Database. A база данных это организованная коллекция данных. Вы, как программист, решаете, как она будет организована.
TinyDB можно найти в ящике Storage в Конструкторе.
TinyDB - это невидимый компонент, поэтому вы не увидите его на экране, когда добавите его в свой проект.
Чтобы получить доступ к данным в TinyDB, вы присваиваете каждому элементу данных тегточно так же, как вы даете имена переменным. Вы сохраняете и получаете значение тега так же, как задаете и получаете значения переменных. Это называется пара тег-значение.
TinyDB.StoreValue сохраняет новое значение в TinyDB. Вы должны указать тег и значение для сохранения.
TinyDB.GetValue получает текущее значение.
valueIfTagNotThere необходимо в том случае, если ранее с этим тегом ничего не было сохранено.
ХРАНЕНИЕ В ОБЛАКАХ
Облачное хранилище позволяет любому пользователю приложения получать доступ к данным и обмениваться ими.
В App Inventor есть три подходящих варианта облачных хранилищ.
CloudDB - это компонент и служба баз данных, предоставляемая MIT App Inventor.
CloudDB работает так же, как и TinyDB. Вы храните данные и получаете к ним доступ с помощью пар "тег-значение".
Доступ к CloudDB осуществляется из ящика Storage. Это невидимый компонент, поэтому он не появится на экране, когда вы его добавите.
Хранение данных происходит так же, как и в TinyDB.
StoreValue сохраняет новое значение в CloudDB. Вы должны указать тег и значение для сохранения.
Вы можете хранить различные типы данных. Например, в этих блоках highScore - это число. chat - это список сообщений.
Получение данных происходит аналогично TinyDB, но с дополнительным шагом. Поскольку база данных находится в облаке, приложение должно запросить значение и дождаться ответа. Поэтому необходим блок обработчика событий, чтобы сигнализировать, когда база данных ответит данными.
GetValue уведомляет базу данных о том, что приложение хочет получить информацию. valueIfTagNotThere должен быть правильный тип данных для тега. Например, число или список.
GotValue срабатывает, как только база данных получает ответ с информацией. Если в приложении несколько тегов, вам понадобится блок if для проверки правильности тега перед использованием значения.Получение данных происходит аналогично TinyDB, но с дополнительным шагом. Поскольку база данных находится в облаке, приложение должно запросить значение и дождаться ответа. Поэтому необходим блок обработчика событий, чтобы сигнализировать, когда база данных ответит данными.
GetValue уведомляет базу данных о том, что приложение хочет получить информацию. valueIfTagNotThere должен быть правильный тип данных для тега. Например, число или список.
GotValue срабатывает, как только база данных отвечает информацией. Если в приложении несколько тегов, вам понадобится блок if для проверки правильности тега перед использованием значения.
Сайт Электронная таблица Компонент позволяет читать и записывать данные из листа Google. Вам потребуется создать аккаунт разработчика Google и выполнить несколько шагов чтобы связать свое приложение с документом.
Компонент Spreadsheet доступен в ящике Storage. Это невидимый компонент, поэтому он не появится на экране, когда вы добавите его в свое приложение.
Существует множество блоков, позволяющих приложению читать и записывать ячейки, строки и столбцы вашей электронной таблицы. Это хороший вариант, если у вас есть табличные данные, к которым вы хотите получить доступ из приложения. Вы также можете просматривать и редактировать данные в Google Sheets, что очень удобно, особенно при тестировании приложения.
Совет для менторов
Лучшие практики: Всегда храните где-нибудь резервную копию своих данных! Очень легко удалить или случайно изменить свои данные, поэтому обязательно храните дополнительную копию в безопасном месте!
В App Inventor вы узнаете термин Tag-Value pair, который часто используется в реальном кодировании, хотя мы называем его Key-Value pair! Теперь вы знаете, какие термины используют эксперты!
Наводящие вопросы для учащихся: Как вы думаете, где хранятся облачные данные? Вы загружаете данные на сайт, например, google, youtube, tiktok и т.д., но где они хранятся после этого? Где находится облако? У таких компаний, как Google, есть огромные здания с компьютерами только для того, чтобы хранить данные в облаке. Так что шутка заключается в следующем: "Это хранится не в облаке, а на чьем-то компьютере". Хранилище данных Amazon:
Советы для менторов предоставлены при поддержке AmeriCorps.
ДЕЯТЕЛЬНОСТЬ: ХРАНИТЬ ИГРОВЫЕ БАЛЛЫ
Обновление игры "Быстрая викторина" для сохранения высоких оценок
- Откройте стартовый проект в галерее App Inventor.
Ссылка в видео неверна! Ссылка на стартовый проект - https://bit.ly/appinventor-quick-quiz. - Загрузите его в App Inventor, чтобы вы могли редактировать свою собственную копию.
- Следуйте приведенному ниже видео, чтобы связать лист Google с вашим приложением для хранения и обновления высоких результатов игроков.
ГЛАВНАЯ
Теперь, когда вы закодировали игру Quick Quiz для чтения, записи и обновления личных результатов, можете ли вы:
- Считайте высокие баллы всех игроков и найдите самый высокий балл среди всех игроков
- Сообщите эту информацию пользователю
- использование этикетки
- или добавьте его в сообщение оповещения
РЕФЛЕКСИЯ
Если вы собираетесь хранить данные для своего приложения, вам понадобится информация, полученная в этом уроке. Когда вы начнете разрабатывать собственное приложение для своего проекта, подумайте над этими вопросами.
в приложении,
на мобильном устройстве пользователя,
или в облаке для совместного использования
ОБЗОР ОСНОВНЫХ ТЕРМИНОВ
- База данных - организованная коллекция информации
- Облачное хранилище - Информация, которая хранится в сети, чтобы любое устройство, подключенное к интернету, могло получить к ней доступ
- Пара тег-значение - Способ хранения и доступа к информации в базе данных
ДОПОЛНИТЕЛЬНЫЕ РЕСУРСЫ
Вот другие документы и руководства по изучению облачных хранилищ в App Inventor.
- Создайте приложение для чата которое использует CloudD
- Создайте приложение для входа в систему которое использует CloudDB
- Подключите Firebase к App Inventor