DIY: Автоматизируем обои на iOS

Сегодня BIG geek в своем аккаунте в Twitter опубликовали что дизайнер Бен Весси представил обои для iOS, которые меняются в зависимости от уровня заряда. А точнее: набор обоев для разных состояний батарей (низкий заряд, высокий заряд и непосредственно сам процесс зарядки трубки), а так же инструкции, как все это «завести» при помощи встроенного приложения «Команды».

1. Создаем команду

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

Для начала нам понадобится приложение «Команды» (Shortcuts). Если приложение по какой-то причине отсутствует, поищите его в App Store.

Но сначала зайдите в приложение «Файлы» и перейдите в папку iCloud Drive -> Shortcuts. Там необходимо создать папку с любым названием. Я же буду использовать название Battery. В этой папке будут находиться наши картинки (см. изображение ниже). Изображения могут быть, как *.jpg, так и *.png. Картинки я предварительно назвал так, чтобы было понятно, какая и для чего будет использоваться.

Далее переходим в приложение «Команды» и создаем новую команду нажатием на кнопку «+» в правом верхнем углу.

Тут мы будем добавлять действия для нашей команды. Нажимаем «Добавить действие». В открывшемся окне в строке поиска будем вводить названия действий, чтобы их добавлять. Но перед этим рекомендую Вам занести все необходимые команды в раздел «Избранные», как на изображении. Это позволит сэкономить уйму времени. Сделать это не сложно: в строке поиска вводим название действия, рядом с нужным действием нажимаем значок «i» и там жмем «В избранные» (см. изображение ниже). Список необходимых команд можно найти так же в нижнем изображении.

Теперь начинаем собирать наш конструктор. Для начала мы создадим словарь с названиями изображений для всех трех кейсов: слабый заряд, достаточный заряд, телефон заряжается. Выбираем из списка избранных действий «Словарь». Нажимаем «Добавить новый объект» и в выпадающем списке выбираем «Текст». Далее заполняем словарь: слева — название поля в словаре, справа — название и расширение соответствующего изображение. Обратите внимание, что регистр очень важен. Как я уже писал ранее, можно использовать изображения разных расширений.

Далее жмем «+» и добавляем следующее действие «Задать переменную». Задаем ей имя pictures. Обращаясь к этой переменной в будущем мы сможем выбирать из словаря нужное нам название изображения. После добавляем еще одно действие «Задать переменную» и создаем переменную с названием picture. В этой переменной в будущем будет храниться название нужного нам изображения. В отличие от предыдущего действия, поле значения необходимо оставить пустым. Для этого надо по нему кликнуть и нажать «Очистить» в левой верхней части всплывающей шторки. По аналогии добавляем еще одну переменную batteryLevel, в которой будет храниться значение заряда батареи (мы его будем присылать из вкладки автоматизация, вызывая команду по определенным событиям). Значением задаем «Входные данные команды». Чтобы это сделать, необходимо, как и в предыдущем шаге, нажать на то значение, которое установится автоматически. В левом верхнем углу открывшейся шторки нажать «очистить». Потом снова нажать на это поле и выбрать «Входные данные команды». После этих действий добавляем еще одно действие — «Получить тип». Он автоматически подтянет в поле «из» нашу переменную batteryLevel. Если этого не произошло, выставите ее туда вручную. Тип мы проверяем на случай, когда никаких входных данных не будет. Это вариант, когда мы ставим телефон на зарядку. В этом случае нам совсем не важно, какой заряд у батареи, и мы не будем передавать это значение в нашу команду.

Теперь давайте добавим обработчики для всех ситуаций. Первой будем обрабатывать как раз ту, когда никаких входных данных в команду не пришло. Это будет вариант с зарядкой телефона. Добавляем действие «Если». Вторым параметром в выпадающем списке выбираем «нет никаких значений». Затем добавляем действие «Добавить в переменную» и долгим тапом по действию в списке перетаскиваем ее между «Если» и «Иначе». Очищаем «Тип» и вместо него добавляем туда переменную pictures (словарь). Далее нажимаем на эту переменную и в выпадающем окне жмем «Получить значение ключа». В появившемся окне вводим charging. Во втором поле «Имя переменной» пишем picture. Таким образом в переменную picture запишется название файла, который должен быть установлен в качестве обоев, когда телефон начинает заряжаться.

Теперь сделаем проверку на малый заряд и на случай, когда заряд выше нижней планки. Добавляем еще одно действие «Если», первым параметром указываем переменную batteryLevel. После жмем на нее, в открытой шторке нажимаем на «Формат: словарь» и выбираем «Число». Нам интересно именно числовое значение заряда. Вторым аргументом выбираем «Меньше, чем» и третим аргументом выставляем пороговое значение, при котором мы хотим менять обои. Я выбрал 50. Далее по аналогии внутрь условия добавляем действие с аналогией, как мы делали для случая charging. Только будем брать значение ключа не из charging, а из low. Аналогично делаем действие «Если» для случая, когда значение батареи больше 50 и в этом случае берем значение ключа из normal. В итоге получится то, что на изображениях ниже.

После того, как мы обработали все ситуации, нам необходимо получить нужную картинку и добавить ее в качестве обоев. Для этого добавляем действие «Получить файл». В действии убираем первую галочку и появится поле «Путь к файлу». Первая часть «/Shortcuts/» будет не доступна к редактированию. Далее нам необходимо написать имя папки, где хранятся наши картинки (в нашем случае Battery) и добавляем в конец нашу переменную picture, куда мы ранее записали имя файла, который мы хотим добавить в качестве обоев. «Ошибка, если не найдено» тоже можно отключить. Далее добавляем действие «Получить изображения из входных данных». Он автоматически подтянет «Файл». После добавляем действие «Преобразовать изображение». Это действие поможет нам использовать любые типы изображений и перед установкой на обои преобразовать их в нужный нам формат. И завершающим действием будет «Установить обои». В ней можно выбрать, на какие экраны будет устанавливаться нужная картинка. Нажмите на кнопку «Показать больше» у действия «Установить обои» и уберите галочку с пункта «Показать окно просмотра». После этого жмем кнопку «Далее» в верхнем правом углу экрана, задаем имя нашей команде, выбираем иконку и жмем «Готово». На этом создание команды закончено. Переходим к этапу 3.

2. Добавление готовой команды

https://www.icloud.com/shortcuts/e3d0d81c3b1749d4b1445dc0a7ea40d4

Если же Вам не хочется заморачиваться с созданием команды самому, можете воспользоваться ссылкой выше и добавить уже готовую команду. Единственное, приложение все сторонние команды считает ненадежными и для этого необходимо перейти в Настройки -> Быстрые команды и включить галочку «Ненадежные команды». Возможно эта галочка будет не доступна. Для того, что бы она стала активной, необходимо в приложении Команды запустить любую команду из списка надежных. Их можно найти в галерее команд.

3. Создание скрипта автоматизации

После того, как Вы сделали или скачали команду, мы переходим во вкладку «Автоматизация» в приложении «Команды». Жмем кнопку «Создать автоматизацию для себя», если у Вас еще нет автоматизаций, или же кнопку «+» в правом верхнем углу. Прокручиваем в самый низ и выбираем пункт «Уровень заряда». На следующем экране выбираем «Опускается ниже 50%». Уровень можно выбрать при помощи ползунка, но помните, что в нашей Команде мы так же указывали числа и они должны совпадать. Жмем далее и попадаем на экран с интерфейсом, похожим на интерфейс создания команд.

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

Далее создаем еще 2 автоматизации для случая «Зарядное устройство» и обрабатываем 2 случая: подключение и отключение зарядного устройства, как это показано на изображениях ниже.

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

Они будут появляться каждый раз, когда у Вас будет срабатывать какая-нибудь автоматизация. Чтобы этого избежать, необходимо провернуть следующий трюк: заходим в «Настройки» и переходим в раздел «Экранное время». Далее жмем «Смотреть всю активность». Крутим в самый низ. Находим там раздел «Уведомления». Два раза тапаем по первому графику, выбираем последний день (сегодня) и в списке находим «Команды». Проваливаемся в них и уже там можем отключить уведомления убрав галочку с пункта «Допуск уведомлений».

Теперь все будет работать, как и задумано и без лишних уведомлений.

Если останутся какие-то вопросы — пишите в твиттере в аккаунт @un3solka.

На идею статьи меня подтолкнули ребята из BIG geek.