Приложение «Шагомер»

Концепция приложения: Измерение шагов, сохранение результата за прошедший день.

Состав приложения:

Настройка приложения

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

  • Название приложения — Шагомер.
  • Можно подобрать иконку на свой вкус.
  • Остальное оставить по умолчанию.

Дизайн-макет

Интерфейс, как уже было сказано выше, будет довольно простой. Вы можете сами добавить в него звуки или картинки по желанию. Здесь же нам важно сделать функционал.

Выглядеть экран будет примерно так:

Компоненты:

Как видите, основное содержимое — это надписи.

Настроим Экран.

  • Выравнивание по горизонтали и вертикали — Центр Центр.
  • Скрыть показ заголовка и статус-бара.
  • Ориентация — альбомная.
  • Можно добавить какой-нибудь цвет фона, чтобы не было все белое. А можно и не добавлять.

Добавим Надпись. В нее будет выводиться текущая дата. Настроим:

  • Название компонента — Дата.
  • Текст — Сегодня.
  • Оформление (цвет, размер, начертание) по желанию.

Добавим еще одну Надпись. Сюда будет выводиться количество шагов. Настройки:

  • Название компонента — Шаги.
  • Текст — шагов.
  • Оформление (цвет, размер, начертание) по желанию. Но здесь, возможно, лучше чуть выделить, т.к. это главная информация на экране: можно сделать шрифт крупнее и выделить жирным.

Добавим третью Надпись. Она будет скрыта на макете, потому что будет показываться только тогда, когда количество шагов превзойдет 10 000 — именно столько врачи советуют проходить в день. Надпись чисто декоративная, поздравляющая нас с достижением цели. Поэтому настройки такие:

  • Название компонента — Цель.
  • Текст — Цель достигнута!
  • Оформление можно сделать ярким, например, красного цвета, шрифт крупнее или жирный.
  • Видимый — снять галочку.

Добавим последнюю Надпись. Сюда будет выводиться количество шагов вчера, чтобы было с чем сравнивать.

  • Название компонента — Шаги_вчера.
  • Текст — Вчера.
  • Оформление — любое.

Теперь перейдем к невидимым компонентам. Их понадобиться три. Первый — Педометр, или Шагомер. Находиться во вкладке «Сенсоры». Вообще как такового сенсора шагомера в телефоне нет, компонент работает на основе акселерометра, реагируя на вибрацию. Для удобства выделен в отдельный блок.

Настройки его просты:

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

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

И последний компонент — База Данных TinyDB. Необходим, чтобы данные о шагах не стирались при закрытии приложения. Здесь настроек нет, кроме пространства имен, под которыми будет сохранятся информация в памяти.

Макет закончен, можно переходить к программированию.

Программирование

Предварительно разберем, как работает сохранение в память телефона с помощью TinyDB. Данный компонент позволяет сохранять информацию из приложения в памяти телефона, записывая её в ячейку с соответствующим именем. Работает с извлекаемыми данными по такому же принципу: находит в памяти ячейку с заданным именем и считывает из нее информацию. Вот так, если кратко, описывается принцип работы не только TinyDB, но и пространства имен.

Мы будем записывать в память данные шагомера за текущий день, и извлекать за предыдущий.

Сначала мы должны настроить, чтоб будет происходить при инициализации приложения. Для этого возьмем блок Когда Screen1 инициализировать.

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

Поскольку текст в надписи перезаписывается полностью, слово «Сегодня» пропадет. Чтобы такового не случилось, мы с помощью блока соединения текста совместим слово «Сегодня» и дату, которую мы получили выше. Не забудьте поставить после «Сегодня» пробел, иначе эти оно приклеится к дате.

И уже результат соединения мы присвоим тексту надписи Дата.

Далее на всякий случай уберем надпись Цель с экрана.

И запустим компонент Педометра.

А также извлечем из памяти смартфона количество пройденный шагов за вчерашний день. Для этого:

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

Зачем мы получали вчерашнюю дату? Потому что количество шагов записывается в ячейку с именем текущей даты день.месяц.год. То есть количество шагов, пройденных за 25 января 2025 года будет сохранено в ячейке с именем 25.01.2025. А если нам нужно узнать шаги за предыдущий день, мы обратимся к ячейке 24.01.2025.

  1. Запросим в памяти содержимое ячейки с именем вчерашнего дня. Если таковой не будет обнаружено, то пусть нам выдается текст «нет».
  1. Соединим полученные значения с текстом, чтобы получилось связное предложение «Вчера *** шагов»
  1. И всю полученную конструкцию присвоим надписи Шаги вчера

В итоге у нас должен получится вот такой блок инициализации экрана.:

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

Содержит две локальные переменные — собственно зафиксированное количество шагов и пройденное расстояние (зависит от длины шага). Вот как раз шаги-то мы и будем выводить в надпись Шаги, добавив к этому слово «шагов» (не забудьте пробел перед словом, чтобы оно не слиплось с числом).

Теперь нам нужно записывать шаги в память телефона. мы можем это сделать следующим образом:

  1. Получим текущую дату
  2. Приведем её к формату день.месяц.год.
  3. Сохраним полученное значение шагов в ячейку с именем текущей даты.

То есть когда включается приложение, запускается педометр и начинает считать шаги, сохраняя значение в память телефона. Но может случится такое, что пользователь прошагал довольно много за день, а вечером решил посмотреть количество шагов. Как только он запустит приложение, педометр заработает по новой и перезапишет число на новое значение, пусть это даже будет и один шаг. Чтобы этого избежать, поставим условие, что количество шагов, пройденных с текущего запуска приложения должно быть больше, чем число, записанное в памяти на текущую дату.

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

Осталось добавить условие, при котором будет показываться надпись о достижении цели. Если мы прошли 10000 шагов, надпись становится видимой.

Проверьте, у вас должен получится вот такой блок команд.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт защищен reCAPTCHA и применяются Политика конфиденциальности и Условия обслуживания применять.

Срок проверки reCAPTCHA истек. Перезагрузите страницу.