Dynamic Island теперь можно активировать на любом iPhone
Мобильная операционная система iOS получила приложение, которое позволяет включать Dynamic Island на любом iPhone, причём без джейлбрейка и бесплатно. Новинку разработал пользователь matteozappia.
Программа эмулирует «остров», который появляется возле «челки» и обладает теми же функциями, что и оригинальная версия. Правда, он отличается внешне и, фактически, создаёт «динамическую челку». При этом можно менять размер и даже эмулировать «остров» с iPhone 14 Pro или Pro Max.
Разработчик протестировал приложение на iPhone X. При этом отметим, что программы нет в App Store. Для установки потребуется компьютер с iTunes, а также установщик магазина AltStore. Подробнее всё описано здесь.
Отметим, что программа работает только на устройствах с iOS 16.1.2 и ниже, а после перезагрузки нужно запускать DynamicCow вручную.
Dynamic Island: что умеет главная фишка iPhone 14 Pro

Apple впервые за пять лет убрала из Айфона уже знакомую всем «челку» в верхней части экрана — на ее место пришел «динамический остров».
Пока система есть только в моделях iPhone 14 Pro и Pro Max. Теперь вырез не просто забирает полезную часть экрана, но и становится новой точкой для взаимодействия с приложениями. Обзорщики уже считают, что в ближайшие месяцы Dynamic Island будут активно копировать другие производители смартфонов.
Айфоны с «островом» появились в продаже 16 сентября: за это время журналисты и первые покупатели успели оценить главную фишку новых моделей. Рассказываем, что можно сделать с помощью «динамического острова» и насколько это полезно.
Что такое Dynamic Island и как он работает
В первую очередь «динамический остров» — способ сделать полезнее вырез для системы камер и датчиков, благодаря которой работает Face ID . Если классическая «челка» никак не использовалась в повседневных задачах, то Dynamic Island превратил вырез в часть пользовательского интерфейса.
Первые владельцы и обозреватели iPhone 14 Pro хвалят «динамический остров». Но в то же время отмечают, что пока возможности системы ограничены. На старте продаж поддержка есть у большинства стандартных приложений Айфона, а вот интеграцию многих сторонних сервисов еще предстоит подождать. Некоторые журналисты напрямую предлагают большинству пользователей не становиться «бета-тестерами» , а познакомиться с «динамическим островом» уже в доработанном iPhone 15.
Какие полезные функции поддерживает Dynamic Island
По словам журналистов и блогеров, всего на старте продаж есть около 40 сценариев использования «динамического острова». При этом сотрудник Apple Чен Карунамуни, один из создателей системы, отмечает, что это «только начало».
Что уже умеет Dynamic Island — несколько примеров.
Прием звонков. Входящие вызовы отображаются на «динамическом острове», долгое нажатие на него откроет панель с элементами управления — принять звонок или отклонить его. Если свернуть звонок, к нему можно быстро вернуться нажатием на «остров».
Режим фокуса. Когда iPhone 14 переключает режим работы, например с «Работа» на «Не беспокоить», информация об этом отображается на «динамическом острове». То же самое происходит, если переключать слайдер беззвучного режима.
Face ID. Раньше анимация разблокировки телефона по лицу просто появлялась на экране. Теперь под нее подстраивается «остров». Это же происходит при подтверждении лицом действия вроде оплаты через Apple Pay или покупки приложения в AppStore.

Подключение AirPods. В «острове» появится не только уведомление — можно будет посмотреть название наушников и сколько осталось заряда. Также слева отобразится миниатюра с конкретной моделью подключенных AirPods.
Индикатор зарядки. «Остров» отреагирует, когда вы начнете заряжать Айфон. Там же появится уведомление о том, что осталось мало запаса энергии.


Диктофон и запись экрана. На «остров» переехали иконки-статусы , которые показывают, что вы что-то записываете на телефоне. В обоих случаях дополнительно можно зажать вырез — тогда откроется полноценный виджет, где можно управлять записью.
Таймер. Если вы запускаете его, обратный отсчет времени отобразится на «динамическом острове». Долгий тап откроет панель управления: таймер можно быстро остановить или перезапустить.

AirDrop. И при входящей, и при исходящей передаче файлов статус появится на «динамическом острове». Там же отобразится прогресс передачи файла.
Приватность. «Остров» покажет в статусе, когда Айфон использует в работе камеру или микрофон.
Раздача интернета. Если активировать режим модема, доступ к основным функциям можно быстро получить через «динамический остров». Статус подключения можно проверить там же .
Мультизадачность. С «островом» можно комбинировать разные сценарии и приложения. Например, можно попробовать одновременно воспроизвести музыку и запустить таймер. В таком случае «динамический остров» разделится на две части.

Карты. Apple Maps в iPhone 14 Pro показывает навигацию через «динамический остров»: сколько осталось до цели поездки, в какую сторону повернуть.
Какие сторонние приложения уже поддерживают Dynamic Island
Музыкальные приложения. Помимо Apple Music уже поддерживаются Spotify и YouTube Music. Работают они с «островом» примерно одинаково: в вырезе появляется обложка альбома и волна. Долгое нажатие открывает виджет, где можно перемотать или переключить трек, а также поставить его на паузу.
Игра Hit The Island. Она вышла вскоре после анонса iPhone 14 Pro. По сути, это аналог Pong, но нужно мячиком попасть в «остров» — за это засчитываются очки. Главное — самому не пропустить мяч.
На самом деле в Hit The Island можно сыграть на любом Айфоне. Но дополнительный смысл появляется только с «динамическим островом».
Котик на «острове». Создатели приложения Apollo — стороннего клиента для Reddit — одними из первых добавили поддержку «динамического острова» для iPhone 14 Pro.
При включении режима на «острове» поселяется котенок, который ходит по вырезу и спит на нем. При желании котика можно поменять на ежа, лису, собаку или аксолотля.
В соцсетях уже представляют, как можно улучшить Dynamic Island в будущем. Например, интегрировать с «островом» вообще все уведомления, которые приходят на Айфон, а также добавить взаимодействие с голосовым помощником в Siri.
В любом случае система, очевидно, будет развиваться дальше: по данным СМИ, вырез с «динамическим островом» получат уже все модели будущего iPhone 15 , а не только Pro-версии .
Мы постим кружочки, красивые карточки и новости о технологиях и поп-культуре в нашем телеграм-канале. Подписывайтесь, там классно: @t_technocult.


У какого процента пользователей большой палец дотягивается до этой области?
Хазов, у меня даже до другого конца экрана не дотягивается)
а смартфон в чехле — вообще беда
кровохлебка, вот и я о том же
И это самая главная фишка новых айфонов, которую срочно нужно копировать всем. грустно как то. Пора бы уже apple начать копировать классные фишки с андроидов
Дмитрий, "Квадроавто" на Авито определенно тот продавец, у которого нужно смотреть цены на айфон
>Обзорщики уже считают, что в ближайшие месяцы Dynamic Island будут активно копировать другие производители смартфонов.
А зачем? Ну челку скопировали, ладно, но потом уже пошли дальше и трансформировали ее сначала в каплю, а потом просто в дырку в экране, а некоторые — вообще убрали фронталку под экран. Зачем откатываться фактически на 2-3 года назад? Да, дырка в экране — не то, чтобы верх удобства и красоты, но она в любом случае лучше такой же дырки, только большой и вытянутой, пусть и с анимацией.
Vae, лично я вообще не обращаю внимание на эту челку, есть и есть вообще все равно
без сомнения, он будет скопирован многими. на самом деле, этот "остров" и не "полезное обновление", и не "игрушка на пару раз", и не "попытка продать", потому что в устройстве он и так должен быть.
это изящный элемент дизайна, который красиво обыгрывает техническое ограничение. раз уж маленький кусочек экрана всё равно занят этой камерой, так можно вокруг него сосредоточить другие "отвлекающие" элементы дизайна (уведомления и статусы) и тем самым снизить степень вторжения.
очень хорошее, продуманное решение. отличная работа дизайнеров.
Я помню момент после анонса iPhone X и тонну хейта в сторону челки. Сейчас же это повсеместная история. Думаю с этим тоже самое.
У меня единственный скепсис — на солнечном свете этот остров смотрится уродски-видны все датчики (фото ищется в сети)
В любом случае, я рад, что на Т-Ж стало много подобного рода статей, заменили мне все медиа.
Очень жду тему освещения цифрового минимализма, интересно послушать мнения разных людей )
Интересно, почему нельзя было челку так обыграть? Котики по ней не побегают, конечно, а вот снести туда оповещения и интерфейсы можно. На mini-моделях, наверное, особенно актуально было бы.
На андроид динамический остров не нужен. У них есть свои способы управления всем тем, что берет на себя остров. В основном, это работа приложений в фоне.
Думаю постепенно мессенджеры и СС начнут внедрять островные анимации (айланданимэ) у себя в приложениях
Подробный гайд Dynamic Island и Live Activities
Live Activities появились начиная с версии IOS 16.1 на всех моделях iPhone. Live Activity отображают самые последние данные вашего приложения на экране блокировки iPhone и в Dynamic Island. Это позволяет вашим пользователям видеть самую актуальную информацию которая происходит в вашем приложении.
Важно понимать что и Dynamic Island и Live Activities сами по себе являются частью ActivityKit фреймворка, поэтому для простоты, дальше в посте я буду называть Dynamic Island и Live Activities просто — Live Activities.
Note1: Live Activity доступен только на iPhone.
Note2: Во время написания поста Dynamic Island доступен только на моделях iPhone 14 Pro и Pro Max.
TLDR; Добавление Live Activities
Live Activities являются частью Widget Extension, однако если вы не хотите добавлять виджеты в приложение, то делать это не обязательно.
Для того чтобы ваше приложение начало поддерживать Live Activity вы должны выполнить следующее:
Добавить Widget Extension в проект и выбрать галочку “Include Live Activity”. Это создаст все дефолтные файлы необходимые для работы.
Добавить поле NSSupportsLiveActivities в Info.plist и выставить ему значение YES
Добавить код который определит ActivityAttributes для вашей activity. Activity Attributes это модель данных которая будет использоваться вашей Live Activity.
Создать ActivityConfiguration которая будет принимать ActivityAttributes который мы определили шагом ранее и говорить какие вьюшки мы хотим отобразить в Dynamic Island и Live Activity.
Добавить код который будет стартовать, обновлять, удалять activity.
Добавление статических и динамических данных
Для того чтобы отображать данные, мы должны их передать в наш активити. Для этого нам нужно создать объект который будет реализовывать ActivityAttributes протокол.
ContentState — это все те данные которые будут обновляться динамически. Live Activity будет запрашивать их для каждого обновления. Все остальные переменные которые объявлены за пределами ContentState будут статическими и будут нужны только один раз, когда мы создаем наш активити.
Note: Динамические данные которые кодируются в Live Activity не могут превышать 4KB.
Отображение для Live Activity
Теперь нужно создать объект который будет отображать наши вью внутри Live Activity и Dynamic Island.
На устройстве, которое не поддерживает Dynamic Island, система отображает только баннер на экране блокировки.
Note: Система может обрезать Live Activity если высота она превышает 160 поинтов.
Layout разных типов Dynamic Island
Для настройки разных layout наших Dynamic Island Apple предоставляет нам следующие варианты:
DynamicIslandExpandedRegion (Когда Dynamic Island раскрыт):
Compact (Когда Dynamic Island спрятан):
СompactLeading, CompactTrailing, Minimal:
Когда вы запускаете Live Activity, и это единственное активное Live Activity, оно будет представлено в компактном размере растягиваясь на всю длину. В этот момент слева (compactLeading) и справа (compactTrailing) от TrueDepth камеры появляется место размером 62.33×36.67 куда мы можем добавить свои вьюшки.

Если же в этот момент работает еще какое-то Live Activity помимо вашего приложения, то система сама выберет активити какого приложения нужно показывать. В этот момент Dynamic Island всех приложений будет работать в режиме отображения minimal.

По дефолту compact и minimal layout в Dynamic Island используют черный цвет для фона и белый для текста. Чтобы это изменить можно добавить keylineTint(_:) модификатор чтобы изменить tint color.
DynamicIslandExpandedRegion:
Для раскрытого layout нашего Dynamic Island мы можем воспользоваться следующими вариантами:
center контент который будет находиться под TrueDepth камерой.
leading контент который будет находиться слева от TrueDepth в раскрытом режиме, а так же будет захватывать часть пространства снизу.
trailing контент который будет находиться справа от TrueDepth в раскрытом режиме, а так же будет захватывать часть пространства снизу.
bottom контент который будет находиться под leading, trailing, and center
Для рендеринга содержимого, отображаемого в развернутом виде, система сначала определяет ширину центрального содержимого, принимая во внимание минимальную ширину содержимого слева и справа. Затем система размещает и масштабирует контент слева и справа в зависимости от его вертикального положения. По умолчанию левая и правая зона получает одинаковое количество горизонтального пространства.
Если вы хотите чтобы какой-то области выделялось больше место, а другая ужималась, то можно явно указать приоритет, задав его в инициализаторе init(_:priority:content:) . По дефолту приоритет выставляется в 0. Система выделяет полную допустимую область той части Dynamic Island, у которой приоритет больше.
Если мы хотим дать нашему контенту больше пространства, то можно использовать .dynamicIsland(verticalPlacement: .belowIfTooWide) модификатор, чтобы отрисовать контент под TrueDepth камерой.

Жизненный цикл Live Activity
У жизненного Live Activity есть 3 метода которые обновляют его состояние.
request — стартует новое activity
update — обновляет динамические данные
end — останавливает activity
Приложение может запускать несколько Live Activity, и таких приложений может быть несколько — точное число может зависеть от множества факторов. Всегда корректно обрабатывайте любые ошибки при запуске, обновлении или завершении Live Activity. Например, запуск Live Activity может завершиться ошибкой, поскольку на устройстве пользователя может быть достигнут предел количества Live Activity. А так же всегда нужно останавливать активные activity если они больше не нужны чтобы не расходовать лишние ресурсы системы.
Request:
Для того чтобы Live Activity и Dynamic Island отображались нужно вызвать функцию request(attributes:contentState:pushType:) Эта функция принимает на вход атрибуты и значения для динамического контента который мы указали ранее.
В данном примере, для удобства, мы сохранили объект activity в отдельную переменную чтобы потом к ней обращаться. Но так же мы можем получить список всех activity приложения через:
Начать Live Activity только только когда приложение в foreground mode. Однако мы можем обновить или удалить Live Activity даже когда приложение в background используя — Background Tasks.
Update:
Чтобы обновить наш activity нам нужно обновить только динамические данные размер обновляемых данных не должен превышать 4 КВ:
Стоит всегда обновлять актуальные данные перед удалением activity. Это нужно потому что активити пропадает с экрана не сразу, и может какое-то время показывать неактуальные данные, пока его не убьет или не выключит система.
Автоматическое удаление зависит от многих факторов, а так же полиси которое вы указали во время удаления в функции end(using:dismissalPolicy:)
Важно! Всегда удалять activity после того как оно больше не актуально. Activity может быть активной до восьми часов, если ваше приложение или пользователь не удалит его. По истечению восьми часов, система немедленно удаляет его из Dynamic Island. Тем не менее, Live Activity остается на экране блокировки до тех пор, пока пользователь не удалит ее, или еще до четырех часов, прежде чем система удалит ее — в зависимости от того, что наступит раньше. В результате Live Activity остается на экране блокировки до двенадцати часов.
Depp Link и навигация внутри Live Activity
Люди нажимают на Live Activity, чтобы запустить ваше приложение. Чтобы улучшить пользовательский опыт, вы можете использовать widgetURL(_:) для создание диплинков с вашего экрана блокировки, и Dynamic Island в состояниях compact leading, compact trailing, and minimal.
Dynamic Island в развернутом виде предлагает больше вариантов для кастомизации. Тут мы можем использовать Link . Например наше приложение по доставке продуктов, может иметь 2 отдельные вьюшки, по нажатии на одну — должна открываться карта, а по нажатию на вторую — список заказанных товаров.
Проверка состояния Live Activity
Live Activities доступен только iPhone. Если ваше приложение портируется на множество платформ, будьте уверены что Live Activities доступен в момент выполнения работы приложения. Так же пользователи могут отключить Live Activity в настройках телефона.
Чтобы проверить что Live Activities доступны на девайсе и пользователь их не отключил:
Используйте areActivitiesEnabled чтобы синхронно определить начал ли пользователь Live Activity.
Так же можно получить асинхронный калбек через activityEnablementUpdates
Заключение
В данной статье мы разобрали то как добавить Live Activity в любое приложение, правильно следить за его циклом обновления, а так же какие проблемы это может принести, если это делать неправильно.
Как добавить dynamic island на айфон 11
Смотрите видео на тему «Как добавить dynamic island на айфон 11» в TikTok (тикток).
Ps emu эмулятор android как пользоваться