Я добавил на заблокированный экран macOS красивую обложку текущего трека с адаптивным задним фоном как на iPhone

от автора

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

Preview: Заблокированный экрна

Preview: Заблокированный экрна

История

Помните те времена, когда обложка трека на iPhone превращала экран блокировки в полноценный арт-объект? Apple убрала это в iOS 11, оставив лишь скучные виджеты, и вернула только спустя годы в iOS 16.

Обложка трека на iPhone

Обложка трека на iPhone

В iPadOS эта функция появилась с релизом iPadOS 16.

Обложка трека на iPad

Обложка трека на iPad

Но на macOS такой красоты до сих пор нет из коробки. Решил исправить эту несправедливость и принести эстетику iOS на Mac.

Идея

Эта идея пришла ко мне сразу, как только я начал реализовывать плеер на экране блокировки. Все идеи для DynamicNotch я напрямую беру с iPhone, чтобы это выглядело нативно и родным.

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

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

Возможности

Сам задний фон по умолчанию анимированный, но в настройках можно изменить на обычный статичный, или убрать вовсе на черный.

Preview: Настройки LockScreen

Preview: Настройки LockScreen

Технические ограничения

Есть важные ограничения, которые ложатся на разработку. Технически Apple не дает разрешения на то, чтобы открывать свои окна на заблокированном экране. Однако это обходится хаком приватного API.

Но, из за того что, это так называемые «костыли», нашими окнами мы перекрываем сам UI от Apple(часы, строка входа, верхний меню-бар). Из за этого приходится добавлять свой UI.

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

Дальнейшие планы

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

Также добавить выбор показа обложки, например как на iPad c виджетами слева и обложкой на весь экран.

Если есть интересные идеи что можно еще добавить, буду рад почитать.

Заключения

В заключении скажу, что все еще реализация в проекте DynamicNotch, а не отдельная утилита. Если вам понравилась идея и реализация, буду рад если оцените звездой на GitHub.

Всем хорошего дня! ✌️

ссылка на оригинал статьи https://habr.com/ru/articles/1030932/