Использование памяти в Swift 6.2 и возможности для повышения производительности
📺 Одна из самых полезных сессий WWDC25, в которой есть несколько важных моментов.
➡️ Cпецификация и пример парсера для QOI (относительного нового формата, придуманного Dominic Szablewski несколько лет назад).
➡️ Примеры работы с инструментами (Allocations и Time Profiler).
➡️ Stack vs Heap (и новый InlineArray).
➡️ Что таят в себе unsafe pointers.
➡️ Новая группа типов Span (в Swift 6.2) и как они помогут писать более безопасный код, чем позволяют указатели.
И, как говорится, one more thing!
🥳 Выкатили в открытый доступ Swift Binary Parsing — либу для создания безопасных и эффективных бинарных парсеров на Swift.
😃 iOS Dev
📺 Одна из самых полезных сессий WWDC25, в которой есть несколько важных моментов.
И, как говорится, one more thing!
Please open Telegram to view this post
VIEW IN TELEGRAM
Новый инструмент для оптимизации SwiftUI-приложений на WWDC25
Джед из команды Instruments и Стивен из команды Apple Music рассказали про обновлённые Instruments, а также про полезный способ для профилирования SwiftUI-проектов.
С его помощью можно упростить поиск узких мест в приложении, среди которых долгие (и лишние) обновления view, которые могут вызывать краши, зависания, лаги анимации и переходов, а также задержку при скролле.
📺 В этой сессии можно посмотреть, как на примере реального приложения можно устранить эти проблемы с помощью нового инструмента SwiftUI, Time Profiler (а также Hangs и Hitches).
Умение пользоваться инструментами и понимание, для чего нужен каждый из них не просто полезный скилл, это фактор, который поможет создавать действительно быстрые и отзывчивые приложения.
Что ещё может быть полезно?
🛠 Analyze hangs with Instruments (c WWDC23).
🛠 Optimize CPU performance with Instruments (новое видео на WWDC25).
🛠 Исследование причин зависаний приложений — серия уроков от Apple
А большой разбор возможных кейсов при проблемах с производительностью (и способов предотвращения такого поведения есть💰 тут и ⭐️ прямо здесь).
😃 iOS Dev
Джед из команды Instruments и Стивен из команды Apple Music рассказали про обновлённые Instruments, а также про полезный способ для профилирования SwiftUI-проектов.
С его помощью можно упростить поиск узких мест в приложении, среди которых долгие (и лишние) обновления view, которые могут вызывать краши, зависания, лаги анимации и переходов, а также задержку при скролле.
📺 В этой сессии можно посмотреть, как на примере реального приложения можно устранить эти проблемы с помощью нового инструмента SwiftUI, Time Profiler (а также Hangs и Hitches).
Умение пользоваться инструментами и понимание, для чего нужен каждый из них не просто полезный скилл, это фактор, который поможет создавать действительно быстрые и отзывчивые приложения.
Что ещё может быть полезно?
🛠 Analyze hangs with Instruments (c WWDC23).
🛠 Optimize CPU performance with Instruments (новое видео на WWDC25).
🛠 Исследование причин зависаний приложений — серия уроков от Apple
А большой разбор возможных кейсов при проблемах с производительностью (и способов предотвращения такого поведения есть
Please open Telegram to view this post
VIEW IN TELEGRAM
Hidden gem для скруглений элементов в новом API — containerConcentric
Бывает множество ситуаций, в которых хочется реализовать cornerRadius в зависимости от формы девайса - начиная от модальных вьюх и заканчивая обычными кнопками, чаще снизу (уверен, что на многих проектах дизайнеры и вас просили придумать способ для таких скруглений).
Так вот - в этой сессии рассказали, что такой способ появится!
🤩 Если использовать
Получается, от приватного апи и лишнего кода для девайсов наконец можно будет избавиться.
Лучший способ применения нового API — тулбары, панель поиска и другие контролы.
😃 iOS Dev
Бывает множество ситуаций, в которых хочется реализовать cornerRadius в зависимости от формы девайса - начиная от модальных вьюх и заканчивая обычными кнопками, чаще снизу (уверен, что на многих проектах дизайнеры и вас просили придумать способ для таких скруглений).
Так вот - в этой сессии рассказали, что такой способ появится!
containerConcentric
, то скругление будет автоматически соответствовать контейнеру на разных дисплеях и в разных формах окон. Получается, от приватного апи и лишнего кода для девайсов наконец можно будет избавиться.
Лучший способ применения нового API — тулбары, панель поиска и другие контролы.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Алгоритмы обработки видео в iOS 26
Одна из задач на моей работе — это интеграция и поддержка аудио и видеозвонков (p2p и конференций в том числе). Вообще, в этом моя команда прошла довольно большой путь, в том числе пробуя и PJSIP, и решения вроде LiveKit. А про CallKit, например, делился и реальными кейсами. К слову, в рамках теста и поддержки разных алгоритмов, я даже как-то влетел в призы в одном из конкурсов.
Было интересно последить за теми шагами, которые Apple предпринимает в улучшении работы с передачей видео (и добавлении эффектов).
Например, VTFrameProcessor, изначально доступный только в macOS 15.4, теперь появится и в iOS 26.
Но самое интересное для меня в новой сессии - улучшение поддержки передачи видео с низкой скоростью соединения. Появился способ, в котором можно повышать качество видоса в таких условиях с помощью VTLowLatencySuperResolutionScalerConfiguration (не мог не вспомнить мем из CSI).
📺 Рекомендую посмотреть эту сессию всем командам, которые реализуют видеозвонки (и в целом работают с видеоэффектами).
И сразу целых три (!) тестовых проекта (нужна бета оси и Xcode):
➡️ Работа с видео для low-latency конференций
➡️ Лайстрим видео и настройка сессии
➡️ Настройте процесса сжатия
😃 iOS Dev
Одна из задач на моей работе — это интеграция и поддержка аудио и видеозвонков (p2p и конференций в том числе). Вообще, в этом моя команда прошла довольно большой путь, в том числе пробуя и PJSIP, и решения вроде LiveKit. А про CallKit, например, делился и реальными кейсами. К слову, в рамках теста и поддержки разных алгоритмов, я даже как-то влетел в призы в одном из конкурсов.
Было интересно последить за теми шагами, которые Apple предпринимает в улучшении работы с передачей видео (и добавлении эффектов).
Например, VTFrameProcessor, изначально доступный только в macOS 15.4, теперь появится и в iOS 26.
Но самое интересное для меня в новой сессии - улучшение поддержки передачи видео с низкой скоростью соединения. Появился способ, в котором можно повышать качество видоса в таких условиях с помощью VTLowLatencySuperResolutionScalerConfiguration (не мог не вспомнить мем из CSI).
📺 Рекомендую посмотреть эту сессию всем командам, которые реализуют видеозвонки (и в целом работают с видеоэффектами).
И сразу целых три (!) тестовых проекта (нужна бета оси и Xcode):
Please open Telegram to view this post
VIEW IN TELEGRAM
От массивных SwiftUI-view к переиспользуемым компонентам: рут-подход к MVVM для модульных интерфейсов
📖 В этой статье Маттео Манфердини делится своим взглядом на массивные вью (и почему они являются проблемой).
1️⃣ Почему это причина многих архитектурных проблем.
2️⃣ Создание модульных (и переиспользуемых) вью.
3️⃣ Почему content-вьюхи должны быть связаны только с пользовательским интерфейсом приложения.
Здесь, кстати, автор рассматривает популярное заблуждение с его стороны:
Многие разработчики ошибочно полагают, что MVVM добавляет слишком много бойлерплейт-кода, так как считают что абсолютно для каждой вью должна быть своя viewmodel. Маттео добавляет, что viewmodel должна быть только у корневой вью.
4️⃣ Рут-вью как мост между контент-вьюхами и нижними слоями архитектуры приложения.
😃 iOS Dev
📖 В этой статье Маттео Манфердини делится своим взглядом на массивные вью (и почему они являются проблемой).
1️⃣ Почему это причина многих архитектурных проблем.
2️⃣ Создание модульных (и переиспользуемых) вью.
3️⃣ Почему content-вьюхи должны быть связаны только с пользовательским интерфейсом приложения.
Здесь, кстати, автор рассматривает популярное заблуждение с его стороны:
Многие разработчики ошибочно полагают, что MVVM добавляет слишком много бойлерплейт-кода, так как считают что абсолютно для каждой вью должна быть своя viewmodel. Маттео добавляет, что viewmodel должна быть только у корневой вью.
4️⃣ Рут-вью как мост между контент-вьюхами и нижними слоями архитектуры приложения.
Please open Telegram to view this post
VIEW IN TELEGRAM
Универсальное руководство по использованию Foundation Models Framework
Foundation Models позволяет нам использовать мощные возможности генеративного ИИ на девайсах, включая понимание естественного языка, создание контента и многое другое, сохраняя при этом конфиденциальность и производительность благодаря работе исключительно на устройстве.
📖 В своём блоге Азам уже начал работу над изучением и поделился своим взглядом на основные концепции. Конечно же, статья будет дополняться, но уже сейчас можно посмотреть на базовые шаги по настройке.
Логически материал разделён на несколько блоков:
🔘 Требования
🔘 Управляемая генерация
🔘 Добавление Foundation Models в приложение на SwiftUI
🔘 Инструменты
🔘 Работа с сохранением ответов (без повторной генерации)
🔘 Производительность
Кроме этого, уже сейчас есть репа с примерами кода:
🛠 Генерация Summary для длинного текста
🛠 Планировщик поездок
🛠 Генератор шуток
🛠Создание рецептов с учётом ингредиентов
Напомню, что для теста нужна Tahoe, Xcode 26 и Apple Silicon.
😃 iOS Dev
Foundation Models позволяет нам использовать мощные возможности генеративного ИИ на девайсах, включая понимание естественного языка, создание контента и многое другое, сохраняя при этом конфиденциальность и производительность благодаря работе исключительно на устройстве.
📖 В своём блоге Азам уже начал работу над изучением и поделился своим взглядом на основные концепции. Конечно же, статья будет дополняться, но уже сейчас можно посмотреть на базовые шаги по настройке.
Логически материал разделён на несколько блоков:
Кроме этого, уже сейчас есть репа с примерами кода:
🛠 Генерация Summary для длинного текста
🛠 Планировщик поездок
🛠 Генератор шуток
🛠Создание рецептов с учётом ингредиентов
Напомню, что для теста нужна Tahoe, Xcode 26 и Apple Silicon.
Please open Telegram to view this post
VIEW IN TELEGRAM
Почему люди глупеют при использовании ИИ
Прочитал масштабную работу исследователей из MIT, посвященную важному эксперименту.
Ввводные данные: три группы людей, в которых писали эссе на разные темы. Первая юзала ChatGPT, вторая - поисковики, третья - решала самостоятельно.
У всех чекали активность мозговой деятельности в процессе.
🔘 Те, кто использовал ChatGPT - хуже всего вспоминали, о чём писали даже несколько минут назад. 80% не привели ни одной цитаты даже после первого эссе.
🔘 Стиль становился все более однобоким, критический подход применялся все меньше, и в итоге текст превращался буквально в одно и то же.
🔘 Даже после того, как просили перестать юзать ИИ-помощника - испытуемые все равно уступали другим группам по активности мозговой деятельности.
Кроме этого, была и побочка: люди перестали выходить за пределы тех советов, которых им предлагал бот.
Вопрос мышления, инноваций и подходов к нашей работе подвережен тем же проблемам. Важно изучать проблему с разных сторон, следить за тем, как ещё можно решить поставленную задачу.
Например, решая алгоритмические задачи, иногда достаточно интуитивного решения (не самого оптимального по скорости), прежде чем искать подсказки где-то ещё.
Пару дней назад глава Сбера произнёс важную мысль:
«Проблема в том, как бы нам не разучиться думать и как нам перестроить процесс образования так, чтобы дети не разучились считать, писать и решать элементарные задачки.»
Я писал про это полтора года назад и совсем недавно.
Пожалуйста, не верьте слепо всему, что видите. Всегда сохраняйте ясность мышления, как бы сложно это не было. Мы уже находимся в новой реальности, в которой ИИ будет так или иначе рядом (или буквально в качестве агентов), но несмотря на это всё также будет цениться инженерное мышление и способность сохранять ясность ума даже когда из каждого утюга говорят, что ИИ - серебряная пуля.
😃 iOS Dev
Прочитал масштабную работу исследователей из MIT, посвященную важному эксперименту.
Ввводные данные: три группы людей, в которых писали эссе на разные темы. Первая юзала ChatGPT, вторая - поисковики, третья - решала самостоятельно.
У всех чекали активность мозговой деятельности в процессе.
Кроме этого, была и побочка: люди перестали выходить за пределы тех советов, которых им предлагал бот.
Вопрос мышления, инноваций и подходов к нашей работе подвережен тем же проблемам. Важно изучать проблему с разных сторон, следить за тем, как ещё можно решить поставленную задачу.
Например, решая алгоритмические задачи, иногда достаточно интуитивного решения (не самого оптимального по скорости), прежде чем искать подсказки где-то ещё.
Пару дней назад глава Сбера произнёс важную мысль:
«Проблема в том, как бы нам не разучиться думать и как нам перестроить процесс образования так, чтобы дети не разучились считать, писать и решать элементарные задачки.»
Я писал про это полтора года назад и совсем недавно.
Пожалуйста, не верьте слепо всему, что видите. Всегда сохраняйте ясность мышления, как бы сложно это не было. Мы уже находимся в новой реальности, в которой ИИ будет так или иначе рядом (или буквально в качестве агентов), но несмотря на это всё также будет цениться инженерное мышление и способность сохранять ясность ума даже когда из каждого утюга говорят, что ИИ - серебряная пуля.
Please open Telegram to view this post
VIEW IN TELEGRAM
На
swift.org
инициировано создание рабочей группы, целью которой будет поддержка Android в качестве официальной поддерживаемой платформы для Swift.📖 Новая рабочая группа будет также заниматься следующим:
— Улучшать и развивать поддержку Android в официальном дистрибутиве Swift.
— Рекомендовать улучшения основных пакетов Swift, таких как
Foundation
и Dispatch
(для лучшей работы с идиомами Android).— Определять диапазон поддерживаемых уровней API Android и архитектур для интеграции со Swift.
— Выявление и рекомендация лучших практик для взаимодействия между Swift и Java SDK Android (и упаковки либ Swift с приложениями для Android)
— Разработка поддержки дебага приложений Swift на Android.
— Консультирование и помощь в добавлении поддержки Android в различные пакеты Swift сообщества.
Please open Telegram to view this post
VIEW IN TELEGRAM