iOS Broadcast
الذهاب إلى القناة على Telegram
Подборка новостей и статей для iOS разработчиков. Новости Kotlin и мультиплатформы @kotlin_broadcast Новости Android @android_broadcast Реклама и прочее @ab_manager
إظهار المزيد3 514
المشتركون
-124 ساعات
لا توجد بيانات7 أيام
-530 أيام
جاري تحميل البيانات...
القنوات المماثلة
سحابة العلامات
الإشارات الواردة والصادرة
---
---
---
---
---
---
جذب المشتركين
يوليو '26
يوليو '26
+26
في 1 قنوات
يونيو '26
+25
في 1 قنوات
Get PRO
مايو '26
+36
في 1 قنوات
Get PRO
أبريل '26
+42
في 1 قنوات
Get PRO
مارس '26
+96
في 1 قنوات
Get PRO
فبراير '26
+55
في 1 قنوات
Get PRO
يناير '26
+43
في 1 قنوات
Get PRO
ديسمبر '25
+35
في 1 قنوات
Get PRO
نوفمبر '25
+109
في 2 قنوات
Get PRO
أكتوبر '25
+59
في 1 قنوات
Get PRO
سبتمبر '25
+114
في 2 قنوات
Get PRO
أغسطس '25
+51
في 0 قنوات
Get PRO
يوليو '25
+37
في 0 قنوات
Get PRO
يونيو '25
+69
في 1 قنوات
Get PRO
مايو '25
+41
في 0 قنوات
Get PRO
أبريل '25
+60
في 1 قنوات
Get PRO
مارس '25
+59
في 2 قنوات
Get PRO
فبراير '25
+76
في 1 قنوات
Get PRO
يناير '25
+119
في 2 قنوات
Get PRO
ديسمبر '24
+71
في 2 قنوات
Get PRO
نوفمبر '24
+78
في 2 قنوات
Get PRO
أكتوبر '24
+103
في 2 قنوات
Get PRO
سبتمبر '24
+70
في 3 قنوات
Get PRO
أغسطس '24
+83
في 1 قنوات
Get PRO
يوليو '24
+89
في 1 قنوات
Get PRO
يونيو '24
+108
في 2 قنوات
Get PRO
مايو '24
+180
في 3 قنوات
Get PRO
أبريل '24
+142
في 4 قنوات
Get PRO
مارس '24
+100
في 0 قنوات
Get PRO
فبراير '24
+171
في 4 قنوات
Get PRO
يناير '24
+176
في 4 قنوات
Get PRO
ديسمبر '23
+185
في 2 قنوات
Get PRO
نوفمبر '23
+137
في 6 قنوات
Get PRO
أكتوبر '23
+106
في 5 قنوات
Get PRO
سبتمبر '23
+105
في 0 قنوات
Get PRO
أغسطس '23
+89
في 0 قنوات
Get PRO
يوليو '23
+199
في 0 قنوات
Get PRO
يونيو '23
+78
في 0 قنوات
Get PRO
مايو '23
+131
في 0 قنوات
Get PRO
أبريل '23
+127
في 0 قنوات
Get PRO
مارس '23
+56
في 0 قنوات
Get PRO
فبراير '23
+57
في 0 قنوات
Get PRO
يناير '23
+101
في 0 قنوات
Get PRO
ديسمبر '22
+540
في 0 قنوات
Get PRO
نوفمبر '22
+407
في 0 قنوات
Get PRO
أكتوبر '22
+46
في 0 قنوات
Get PRO
سبتمبر '22
+22
في 0 قنوات
Get PRO
أغسطس '22
+82
في 0 قنوات
Get PRO
يوليو '22
+78
في 0 قنوات
Get PRO
يونيو '22
+28
في 0 قنوات
Get PRO
مايو '22
+6
في 0 قنوات
Get PRO
أبريل '22
+8
في 0 قنوات
Get PRO
مارس '22
+483
في 0 قنوات
| التاريخ | نمو المشتركين | الإشارات | القنوات | |
| 30 يوليو | 0 | |||
| 29 يوليو | +1 | |||
| 28 يوليو | 0 | |||
| 27 يوليو | 0 | |||
| 26 يوليو | 0 | |||
| 25 يوليو | +1 | |||
| 24 يوليو | +1 | |||
| 23 يوليو | +2 | |||
| 22 يوليو | +1 | |||
| 21 يوليو | +1 | |||
| 20 يوليو | +1 | |||
| 19 يوليو | +2 | |||
| 18 يوليو | +1 | |||
| 17 يوليو | +2 | |||
| 16 يوليو | 0 | |||
| 15 يوليو | +2 | |||
| 14 يوليو | +2 | |||
| 13 يوليو | +1 | |||
| 12 يوليو | 0 | |||
| 11 يوليو | +1 | |||
| 10 يوليو | 0 | |||
| 09 يوليو | +1 | |||
| 08 يوليو | 0 | |||
| 07 يوليو | +3 | |||
| 06 يوليو | +1 | |||
| 05 يوليو | 0 | |||
| 04 يوليو | +1 | |||
| 03 يوليو | 0 | |||
| 02 يوليو | +1 | |||
| 01 يوليو | 0 |
منشورات القناة
🔨 Liquid Glass не любит UIKit костыли
Очень похожие проблемы рассматриваются в статье, которые выплывали у меня недавно при адаптации Liquid Glass старых UIKit компонентов. Эта тема особенно актуальна сейчас, в связи со скорым релизом iOS 26 и там все еще много мелких плясок с бубном. Для UIKit это отличная проверка того, насколько приложение использует современные API. Все проблемы можно описать одним предложением - "Liquid Glass не любит старые хаки"
🟡Если вручную меняли safeAreaInsets, теперь можно получить странные артефакты
🟡Если рисовали свои navigation bar или tab bar поверх системных, эффекты Glass могут работать совсем не так, как ожидалось
🟡Если использовали приватные или неочевидные способы управления фоном, новый дизайн легко начинает рассыпаться
Получается интересная ситуация - все что раньше использовалось чтобы подбить интерфейс под дизайны, теперь требует дополнительных приседаний. Очередной раз Apple делает работающей стандартную конфигурацию без граничных кейсов. Если хочешь кастомку, отрисовывай сам. И это касается не только внешнего вида. В iOS 26 Apple добавила новые способы управлять navigation bar, toolbar, tab bar и их поведением. То есть вместо очередного workaround теперь чаще можно найти системное решение.
Но все таки Liqud Glass может послужить поводом пройтись по проекту и задать себе несколько вопросов.
🟢Можно ли перейти на стандартный элемент
🟢Точно ли актуальны все старые UIKit-хаки
🟢Можно ли заменить собственное решение новым API из iOS 26
Ну и не забывайте про оригинайльные гайды от Apple по миграции:
➡️ Build a UIKit app with the new design
➡️ Adopting Liquid Glass
| 2 | 🎯 Способен ли SpeechAnalyzer заменить Whisper
Последний год, кроме AI из каждого утюга есть еще один тренд - Whisper. Действительно, транскрибация вышла на новый уровень и при должной интеграции в систему можно гораздо быстрее записывать свои мысли или управлять исполнением и вабкодить. Весь год, если в приложении нужна была нормальная speech-to-text транскрибация, ответ почти всегда был один - берём Whisper. Он хорошо распознаёт речь, поддерживает много языков и давно стал выбором по умолчанию. В данной заметке же подсвечивается альтернатива - новый SpeechAnalyzer от Apple. Ребята из Inscribe прогнали benchmark на LibriSpeech и сравнили новый Apple speech API со старым SFSpeechRecognizer и несколькими Whisper-моделями. Результат неожиданный:
🟡На английской речи SpeechAnalyzer оказался точнее всех Whisper-моделей, которые они тестировали, включая Whisper Small
🟡В 3 раза быстрее Whisper Small на том же железе.
Apple не просто чуть обновила speech API. Она фактически дала новый on-device движок, который для английской транскрибации уже может быть лучшим выбором на Apple-платформах:
🟢Не нужно тащить модель в bundle
🟢Не нужно возиться с CoreML-конвертацией Whisper
🟢меньше размер приложения
🟢всё работает on-device
🟢API живёт внутри системы
🟢приватность проще объяснить пользователю
Но радоваться пока рано, у Whisper всё ещё есть сильные стороны:
🟡намного больше языков
🟡кроссплатформенность
🟡предсказуемое поведение вне Apple ecosystem
Если вы делаете speech-to-text под iOS/macOS и вас устраивают языки, которые поддерживает Apple, SpeechAnalyzer теперь нужно рассматривать первым. Но скорее всего все равно как fallback прийдется оставлять Whisper.
P.S. С русским у нового SpeechAnalyzer пока не всё гладко. SpeechTranscriber только на бумаге поддерживает русский (в официальном списке ru_RU есть), но в реальных тестах русский ru_RU может не отдаваться через supportedLocales | 1 078 |
| 3 | 📱 Как получить Apple Developer Organization без головной боли
Для использования расширенных возможностей Apple🤍 (командные сертификаты, TestFlight, публикация от имени компании) требуется юридическое лицо. Регистрация компании за рубежом — наиболее простой путь.
Easy Payments помогают:
➡️Cоздать ИП или ООО в Грузии
➡️Открыть счёт в банке (дистанционно)
➡️Получить все документы для подачи заявки на Organization-аккаунт
Весь процесс сопровождается экспертами, что исключает ошибки и задержки.
➡️ Бесплатная консультация — на сайте Easy Payments или в Telegram.
#реклама | 963 |
| 4 | 🔨 CADisplayLink становится ближе к UIWindowScene
CADisplayLink - для того чтобы свести некоторым олдскулы 😀. Очень давно не сталкивался с задачей куда его было бы логично применить. CADisplayLink нужен для случаев, когда код должен выполняться синхронно с обновлением экрана. Это редкие кейсы, когда важно попасть в ритм с обновлением экрана. Раньше это использовалось для кастомных анимаций или игровых движков, где все должно двигаться вместе с кадрами.
В iOS 27 Apple добавила новый способ создавать display link прямо от UIWindowScene. Теперь модель становится более современной: display-driven работа принадлежит конкретной сцене, что как будто создано для iPad или Stage Manager, но я все еще топлю за теорию о складном iPhone.
Итак, есть задачи, где одна scene активна, другая нет, а третья вообще переехала на другой display. В такой модели глобально думать про экран становится всё менее удобно, проще сказать: вот конкретная UIWindowScene, и вот работа, которая должна синхронизироваться с её display. Apple даже депрекейтит старый UIScreen.displayLink(...) и предлагает использовать equivalent API на UIWindowScene. Тут меняется модель владения, если анимация, рендеринг или frame-driven логика относится к конкретному окну, то и display link должен жить рядом с этим окном. Так проще управлять жизненным циклом, не продолжать делать работу для scene, которая уже не нужна, проще думать про multi-window поведение.
Главное не превращайте CADisplayLink в молоток, это не замена Timer. Если нужно обновить что-то раз в секунду или периодически проверить значение, достаточно обычного timer или async task. Display link стоит доставать тогда, когда важна плавность и привязка к кадрам. Ну и не забываем что это beta API iOS 27, так что API и поведение могут поменяться до релиза. | 951 |
| 5 | 1️⃣2️⃣3️⃣4️⃣5️⃣ SE-0532: Optional noncopyable improvements and generalizations в Optional добавляют ref, mutableRef, put(), а ещё обобщают map, flatMap и unsafelyUnwrapped для noncopyable wrapped values! Это все про движение Swift в сторону ownership, borrowing, move-only типов и более явного управления ресурсами. Чтобы Swift нормально работал с noncopyable значениями, Optional тоже должен уметь с ними жить без боли. Проблема была в том, что обычный if let для noncopyable optional мог использовать значение:
if let payload = optional {
...
}
И получить ошибку use after consume
Просто потому что значение нельзя скопировать, а язык должен очень аккуратно следить, кто им владеет.
В SE-0532 предлагают сделать работу с такими optional более явно управляемой:
🟢ref — чтобы получить borrowed reference к значению внутри optional
🟢mutableRef — чтобы изменить значение внутри optional без вытаскивания наружу
🟢put() — чтобы положить новое значение в optional и сразу получить mutable reference на него
Плюс map, flatMap и unsafelyUnwrapped становятся более пригодными для noncopyable и nonescapable типов.
Понятное дело, что скорее всего нас это особо не заденет, noncopyable-типы пока не стали повседневной частью iOS-разработки, да и врядли станет, но вот для библиотек и низкоуровневого кода, это удобный синтаксический сахар | 955 |
| 6 | 📱 Три SwiftUI group, которые легко перепутать
В SwiftUI есть три модификатора с очень похожими названиями:
➡️ compositingGroup()
➡️ geometryGroup()
➡️ drawingGroup()
Но работают на разных уровнях. Если добавить не тот group, ничего магического не произойдёт. В лучшем случае не изменится ничего. В худшем появится лишняя работа для рендера
🟡compositingGroup() нужен, когда проблема в графическом результате.
Классический пример: несколько аватарок лежат внахлёст, и вы ставите opacity на весь ряд. Без compositingGroup() прозрачность может примениться к каждой аватарке отдельно. В итоге они начинают просвечивать друг через друга, хотя вы хотели просто сделать весь ряд полупрозрачным. То есть это не про layout. Это про то, как группа выглядит после композиции
🟡geometryGroup() нужен, когда проблема в геометрии.
Например, родитель двигает view, а внутри в этот же момент меняется текст, размер или фон. Без явной границы SwiftUI может анимировать части view отдельно, и интерфейс на мгновение выглядит так, будто элемент развалился на куски
🟡drawingGroup() звучит похожим, но это уже другая история. Он рендерит содержимое в offscreen image, а потом SwiftUI работает с ним как с одной картинкой. Иногда это может помочь, если у вас сложная графика, много shape, blur, clipping и повторяющихся операций. drawingGroup() лучше добавлять не по ощущениям, а после профилирования, т.к. он достаточно затратный. А еще он подходит именно для графического SwiftUI-контента. Text, Image, Shape и композиции из них. А вот произвольные UIKit/AppKit view, web view или media player он нормально в картинку не превратит
Статья отлично демострирует работу SwiftUI изнутри. Иногда баг в интерфейсе не в анимации, не в layout и не в цветах. Он просто в том, на каком этапе SwiftUI вы пытаетесь сгруппировать view. И чем лучше понимаешь этот pipeline, тем меньше хочется лечить всё подряд случайным .drawingGroup() | 1 193 |
| 7 | 🧠 Разработка ИИ-приложений с Claude Code
В чем суть?
Claude Code ускоряет написание и отладку кода. Но его главная сила — не в магии «сделай всё за меня», а в умении разработчика грамотно ставить задачи.
❌ Если просто попросить «сделай приложение» — получите набор нерабочих кусков.
✅ Если дробить задачу, задавать контекст и контролировать архитектуру — получите готовый продукт.
Бесплатный вебинар курса «Вайб-кодинг» 21 июля в 20:00, где разберем практическое использование Claude Code для создания:
— Telegram-ботов и ИИ-агентов;
— Внутренних сервисов и автоматизаций;
— Серверной логики и программных интерфейсов (API).
🎯 Ключевые темы урока:
Структура промптов и работа с большими проектами;
Пошаговая разработка и проверка результата (а не генерация «вслепую»);
Поиск ошибок и доработка готового кода.
👨💻 Для кого этот урок?
Для тех, кто хочет выстроить процесс вайб-кодинга в реальных продуктах, а не просто играться с генерацией фрагментов.
🚫 Это НЕ для вас, если:
— Вы хотите заменить инженерное мышление одним запросом;
— Не готовы проверять результат и контролировать код;
— Думаете, что ИИ соберет качественный продукт без вашей задачи и контекста.
👉 Зарегистрироваться учиться строить системы, а не просто генерировать строки кода!
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576 www.otus.ru | 729 |
| 8 | 🐥 Multipeer Connectivity все
Multipeer Connectivity нужен для сценариев, когда несколько Apple-устройств должны найти друг друга рядом и обмениваться данными без вашего сервера, например: локальный multiplayer, передача данных между iPhone и iPad, офлайн-синхронизация, companion app, совместная работа рядом. Но использовать это можно было на бумаге - взял MCSession, нашёл соседние устройства, подключился, отправил данные. В реальных же приложениях у Multipeer Connectivity давно накопилась репутация фреймворка, который работает только в демо. У пользователей же
🟡устройства видят друг друга, но не подключаются
🟡сессия зависает в connecting, а потом падает в notConnected.
🟡если на двух девайсах всё хорошо, то на нескольких точно разваливается
Apple выпустила technote про миграцию с Multipeer Connectivity на Network framework. А на Developer Forums инженеры Apple довольно прямо говорят: если вы упёрлись в проблемы MCSession, смотрите в сторону Network framework. Multipeer Connectivity слишком много прячет внутри себя. Он сам решает, как искать устройства, как соединять peers, как строить сессию и какой сетевой путь использовать. Это удобно на старте, но плохо, когда нужно понять, почему всё сломалось. Network framework менее магический, зато честный:
🟢NWBrowser для поиска устройств
🟢NWListener для входящих соединений
🟢NWConnection для общения
🟢TCP, UDP, QUIC и свой протокол поверх этого
Если у вас старый проект на MCSession, не обязательно срочно всё переписывать. Но если вы сегодня проектируете новую фичу для обмена данными между устройствами рядом, я бы уже не начинал с Multipeer Connectivity | 1 129 |
| 9 | 🔨 Scene Close Confirmation в iOS 27
В iOS 27 у UIWindowScene появился closureConfirmation. Идея простая: перед тем как сцена реально закроется, приложение может показать системное подтверждение. Это именно подтверждение закрытия window scene, а не alert, т.е. пользователь нажал закрыть окно, а приложение может спросить:
🟢сохранить изменения
🟢закрыть без сохранения
🟢отменить закрытие
Сейчас это больше актуально для iPad и split-screet, iOS-приложения чаще выглядят как один большой экран на одной сцене. Сейчас же сдвиг в сторону адаптации iPadOS и macOS-поведение приезжает в UIKit. Очередная подсказка о возможном открытии нескольких приложений на новом iPhone.
Не стоит использовать этот подход везде, Если каждый экран начнёт спрашиватьподтверждение, пользователь очень быстро начнёт ненавидеть это приложение. Возможные сценарии для confirmation:
🟢Есть несохранённые данные
🟢Активная сессия
iOS всё дальше уходит от модели одно приложение - один экран. Сцены, окна, Stage Manager, external displays, document apps, visionOS и Catalyst постепенно делают UIKit более "оконным" | 1 157 |
| 10 | 🌐 Safari MCP server
WebKit добавил Safari MCP server в Safari Technology Preview. Эта новость не только для web-разработчиков, для iOS-разработки она тоже важна. Особенно для тех, кто делает hybrid-интерфейсы, WebView, внутренние панели, лендинги к приложениям или просто пользуется AI-агентами в разработке.
Суть простая: теперь AI-агент может подключиться к реальному окну Safari и сам посмотреть, что происходит на странице. Прямо в браузере: DOM, console output, network requests, screenshots, viewport, клики, ввод текста, состояние элементов на странице. Это хороший шаг от генерации кода к нормальной проверке результата. Потому что главная проблема AI-агентов сейчас не в том, что они плохо пишут код. Они часто не видят, что получилось после запуска.
Агент может:
🔵Проверить, как страница реально отрисовалась в Safari
🔵Посмотреть ошибки в консоли
🔵Разобраться с network-запросами
🔵Сделать скриншот
🔵Поменять размер viewport
🔵Кликнуть по элементам
🔵Проверить форму или сложный UI-сценарий
🔵Найти часть accessibility-проблем
Отдельно важно, что сервер работает локально и не отправляет данные в Apple. Но данные страницы, скриншоты и логи получает тот агент, к которому вы его подключили. Поэтому на продовых админках, личных кабинетах и чувствительных данных я бы включал это аккуратно. | 1 376 |
| 11 | 👨🏻💻 Создание ИИ-продуктов в Lovable: от идеи до рабочего мини-MVP
Раньше путь от идеи до прототипа занимал месяцы. Сейчас ИИ-инструменты позволяют быстро собрать MVP и проверить гипотезу. Но скорость работает, только если есть структура: экраны, логика и путь пользователя.
🗓 14 июля в 20:00 на вебинаре разберём, как создавать мини-MVP в Lovable без классической разработки.
Что будет:
• Что такое вайб-кодинг и интерфейс Lovable
• Как ставить задачи, чтобы получать не макеты, а рабочие пользовательские сценарии
• Практика: соберём мини-MVP — интерфейсы, логику экранов, путь пользователя
• Как итерациями дорабатывать продукт и улучшать UX без дизайнера
• Главные ошибки: перегруженные промпты, отсутствие структуры, потеря логики между экранами
Бесплатный вебинар курса «Вайб-кодинг: создание цифровых продуктов с ИИ»
❗️ Не для тех, кто ждёт «продукт по одной кнопке», не готов продумывать сценарии и считает прототип просто набором красивых экранов.
👉 Зарегистрироваться по ссылке
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576 | 640 |
| 12 | 🔨 iOS 27 готовит почку для раскладывающихся iPhone?
На WWDC26 Apple сказала вроде бы скучную вещь: в iOS 27 iPhone-приложения становятся resizable, а в Xcode 27 у Live Previews появились resize handles. Звучит как забота про iPhone Mirroring и запуск iPhone-приложений на iPad. Но у меня ощущение, что это не только про них. Если сложить это с текущими слухами про foldable iPhone, картина становится слишком аккуратной.
По инсайдам, Apple готовит не раскладушку в стиле Samsung, а "book-style" iPhone: с внешним экраном около 5.5″ и внутренним экраном около 7.8″ - почти маленький iPad, который всё ещё остаётся iPhone. Пишут и про революционный шарнир, позволяющий исключить складку и очень тонкий корпус
Очередной раз Apple пытается внедрить в умы iOS разработчиков size классы, адаптивную геометрию, и интерфейсы которые нормально переживают сжатие, растягивание и смену пропорций. Не думаю что выход нового iPhone удет проблемой для iOS, многие приложения прилично работают на iPad, но с выходом нового устройства, должны появиться новые механики в UX.
Источники:
🔵Apple SwiftUI / resizability
🔵MacRumors по iOS 27 и утечкам о foldable
🔵Ming-Chi Kuo про foldable | 1 299 |
| 13 | 📱 Топ 10 обновлений SwiftUI с WWDC26
Информации после WWDC конкретно про SwiftUI много, но что действительно изменилось? Собрал свои хайлайты на основе сессий и статьи:
1. Новый внешний вид Liquid Glass
Стандартные компоненты получают обновлённый вид почти бесплатно. Можно просто собрать проект в Xcode 27 и посмотреть, что изменилось в реальном интерфейсе
2. Больше контроля над кастомным Liquid Glass
Для своих glass-элементов теперь можно явно указать, что они интерактивные. Особенно актуально для iPad и macOS, где интерфейс живёт не только под пальцем, но и под курсором
3. appearsActive для окон
Наконец-то можно нормально реагировать на активное и неактивное окно. Маленькая штука, но для iPadOS и macOS это тот самый штрих, который делает приложение менее айпадным на большом экране
4. Toolbars стали взрослее
Появились приоритеты видимости, отдельное overflow-меню, возможность закреплять важные действия и автоматически сворачивать navigation bar при скролле. То есть меньше попыток угадать, что спрячется на маленьком экране и где окажется кнопка Share.
5. Новый Document API
SwiftUI серьёзно прокачали для document-based приложений. Асинхронное чтение и запись, работа с большими файлами, прогресс операций, несколько сценариев создания нового документа. Для заметок, редакторов, графических приложений и любых файловых историй это прям вау
6. Drag & Drop без танцев
Теперь можно добавлять reordering не только в List, но и в сетки, стеки и кастомные layout. И всё это одним подходом на разных контейнерах.
7. Swipe Actions не только внутри List
Swipe actions теперь можно использовать в произвольных scrollable layout. Кажется мелочью, пока не надо добавить знакомое iOS-взаимодействие в кастомную ленту или карточный интерфейс
8. Confirmation dialogs и alerts стали ближе к sheets
Появился нормальный item-based подход. Положили объект в binding, SwiftUI сам показывает нужный диалог. Меньше булевых флагов вида isShowingDeleteDialog, меньше шансов случайно открыть не тот alert.
9. AsyncImage начал уважать HTTP cache
SwiftUI теперь использует стандартное HTTP-кеширование по умолчанию и учитывает cache headers сервера. Это один из тех апдейтов, которые работают сами из коробки, проверьте что на беке хедеры настроены.
10. @State для классов стал ленивым
Объекты, созданные внутри @State, больше не пересоздаются впустую при каждом обновлении view. Меньше лишних аллокаций, меньше странных сайд-эффектов в init, чуть спокойнее профайлер.
Полезные ссылки:
🔵 What’s new in SwiftUI, WWDC26
🔵 SwiftUI guide, WWDC26
🔵 SwiftUI updates в документации Apple
🔵Build powerful drag and drop in SwiftUI | 1 857 |
| 14 | ➕ «В Яндекс я попал только с третьего раза!». Побывали в офисе Яндекс Еды, потрогали самурайский меч и поговорили со старшим iOS-разработчиком Львом Бондаренко — обсудили его любимые проекты, тренды мобильной разработки и алгоритмы на собеседованиях.
↘️ Это «1х1» — формат, в котором яндексоиды проводят с вами личную встречу на работе. Смотрите здесь, на YouTube и в VK Видео.
👀 Присоединяйтесь к нашей команде | 526 |
| 15 | 🕸 HTTP QUERY: наконец-то GET с body без нюансов
HTTP стандарт, обновился и на этот раз добавили новый метод, QUERY. Поражает, конечно что это случилось только сейчас, с учетом какие танцы проводила вся it индустрия. Давайте на примере, какой метод выбрать для метода поиска?
🟡GET метод с аргументами в query мараметрах выглядит сложно и имеет ограничение по-длинне, а лимиты у прокси еще меньше по факту чем в стандартах
🟡POST метод с аргументам в теле запроса не будет кешироваться cdn и будет создавать доп. нагрузку на ваш сервер. Не говоря о том что даже в стандарте этот метод не для этого и является не идемпотентным
🟡GET метод чисто по спеке тоже может иметь тело, но значительная часть прокси его игнорируют или перетирают
Вот и получается что есть 3 стула и все с нюансами.
Новый метод QUERY, опубликованный как RFC 10008, закрывает именно эту дыру. Его смысл простой: это безопасный и идемпотентный запрос, который может нести тело.
QUERY /feed HTTP/1.1
Content-Type: application/json
{"q":"swift","limit":20,"sort":"-published"}
QUERY говорит серверу, клиенту, CDN, прокси, SDK и будущему человеку в коде: это запрос данных, он не должен менять состояние целевого ресурса, его можно безопасно повторить после сетевого сбоя, и его ответ в принципе может кэшироваться.
Пока рано радоваться, блеснуть этим знанием можно разве что на собесе, стандарту нет еще и месяца и aboption произойдет в лучшем случае через год. | 1 532 |
| 16 | 🎯 Apple официально депрекейтит ImageCreator
ImageCreator больше не будет работать в iOS/iPadOS/macOS/visionOS 27. На форумах тема болезненная: у кого уже была кастомная AI-image UX, остаётся ImagePlaygroundViewController или внешний сервис. Программная генерация картинок через системную on-device модель больше не должна быть частью вашего production-кода.
И тут важно не само слово deprecated. Мы все привыкли, что deprecated API может жить годами, иногда почти как домашний питомец в legacy-коде. Здесь история жёстче. В beta OS код ещё будет компилироваться, но Xcode начнёт показывать warnings. При этом TestFlight-сборки с ImageCreator уже не будут нормально работать и могут падать в runtime. А на public-релизах iOS 27+ такой код вообще перестанет компилироваться.
Что я бы проверил в проекте:
🟢Есть ли прямое использование ImageCreator в app target, extensions, внутренних SDK или feature modules
🟢Не спрятана ли генерация картинок за абстракцией вроде AIImageService, AvatarGenerator, StickerGenerator
🟢Есть ли fallback для пользователей на iOS 27+, если генерация картинок была частью ключевого сценария
Apple меняет границу контроля: вместо того чтобы приложение программно просило систему "сгенерируй мне картинку", разработчику предлагают показывать Image Playground sheet — системный, управляемый Apple компонент. Это заметная разница для продукта. Sheet — это безопаснее, консистентнее и понятнее для App Review. Но это хуже для тех сценариев, где нужна полностью кастомная генерация: аватары, стикеры, обложки, onboarding, игровые ассеты, автоматические превью. Если такой контроль нужен, Apple прямо оставляет второй путь: интегрировать другой image generation service. Перевод с apple-ского: теперь это ваша инфраструктура, ваши лимиты, ваши moderation rules, ваша стоимость запросов и ваши edge cases. | 1 295 |
| 17 | Apple официально депрекейтит ImageCreator
ImageCreator больше не будет работать в iOS/iPadOS/macOS/visionOS 27. На форумах тема болезненная: у кого уже была кастомная AI-image UX, остаётся ImagePlaygroundViewController или внешний сервис
🧵 Apple выключает ImageCreator: AI-картинки теперь не просто API
Вот это хороший пример новости, которая выглядит маленькой строкой в Apple Developer News, а на практике может сломать вполне реальную фичу в приложении.
Apple объявила, что ImageCreator из Image Playground framework прекращает работу в iOS 27, iPadOS 27, macOS 27 и visionOS 27. То есть программная генерация картинок через системную on-device модель больше не должна быть частью вашего production-кода.
И тут важно не само слово deprecated. Мы все привыкли, что deprecated API может жить годами, иногда почти как домашний питомец в legacy-коде. Здесь история жёстче.
В beta OS код ещё будет компилироваться, но Xcode начнёт показывать warnings. При этом TestFlight-сборки с ImageCreator уже не будут нормально работать и могут падать в runtime. А на public-релизах iOS 27+ такой код вообще перестанет компилироваться.
То есть Apple фактически говорит: если вы успели встроить ImageCreator как «тихий» API для генерации картинок внутри своего UX — пора перепроектировать сценарий.
Что я бы проверил в проекте:
🟢 есть ли прямое использование ImageCreator в app target, extensions, внутренних SDK или feature modules;
🟢 не спрятана ли генерация картинок за абстракцией вроде AIImageService, AvatarGenerator, StickerGenerator;
🟢 проходят ли TestFlight-сборки на iOS 27 beta без runtime-сюрпризов;
🟢 есть ли fallback для пользователей на iOS 27+, если генерация картинок была частью ключевого сценария;
🟢 не обещает ли onboarding, paywall или marketing screen фичу, которая теперь зависит от удалённого сервиса или системного sheet.
Главная мысль
Apple не просто убирает класс. Она меняет границу контроля: вместо того чтобы приложение программно просило систему «сгенерируй мне картинку», разработчику предлагают показывать Image Playground sheet — системный, управляемый Apple experience.
Это заметная разница для продукта. Sheet — это безопаснее, консистентнее и понятнее для App Review. Но это хуже для тех сценариев, где нужна полностью кастомная генерация: аватары, стикеры, обложки, onboarding, игровые ассеты, batch generation, автоматические превью.
Если такой контроль нужен, Apple прямо оставляет второй путь: интегрировать другой image generation service. Перевод с apple-ского: теперь это ваша инфраструктура, ваши лимиты, ваши moderation rules, ваша стоимость запросов и ваши edge cases.
Почему это актуально сейчас:
🟡 iOS 27 ещё в beta, но TestFlight уже важен: именно там такие вещи обычно всплывают перед релизом, когда «ну мы потом поправим» внезапно превращается в блокер;
🟡 это хороший сигнал по Apple Intelligence API в целом: не стоит строить продуктовую фичу так, будто любой новый AI-класс Apple навсегда станет стабильным headless API;
🟡 если AI-фича влияет на монетизацию или core UX, её нужно закрывать feature flag’ом, аналитикой, fallback-экраном и отдельным smoke-тестом под новые OS.
Мой вывод простой: ImageCreator стоит искать в коде уже сейчас, даже если фича экспериментальная. Apple оставляет Image Playground как пользовательский системный сценарий, но забирает у разработчика удобный программный рычаг. Для маленького pet feature это неприятно. Для production-фичи с paywall — уже миграционный план, а не новость на потом. | 1 |
| 18 | 🎯 iOS 27, Your App, and Siri
Вот это уже не про вау, Siri наконец-то сможет ответить на вопрос из старой переписки. Для разработчика интереснее другое: если новая Siri действительно начинает работать с личным контекстом и данными приложений, то приложение должно заранее объяснить системе, какие сущности у него есть, как их искать и что сейчас показано на экране. Главная мысль Jordan Morgan: лето перед iOS 27 стоит потратить не на гадание про магию AI, а на скучную, но важную инвентаризацию App Intents/App Entities.
Для себя вижу схему работы примерно в следующем:
🔵Какие модели должны быть видны Siri, Shortcuts и системному поиску
🔵Есть ли для них легковесные AppEntity, а не попытка тащить доменную модель целиком
🔵Можно ли просто сделать сущность IndexedEntity, чтобы система сама индексировала данные
🔵Попадает ли ваша модель в готовый Apple App Schema. Если да — это почти всегда лучший путь
🔵Есть ли привязка текущего экрана к сущности через NSUserActivity или view annotations
🔵Нужен ли Transferable, чтобы Siri могла передавать ваши данные дальше: например, отправь эту тренировку по почте
Отдельно важный сниппет: App Schemas выглядят как самый ценный слой. Apple уже обучает Siri понимать эти домены, их свойства и follow-up вопросы. Если приложение попадает в готовую схему — сообщения, контакты, медиа, события и т.п. — лучше использовать ее, а не изобретать свой полусамодельный смысловой слой.
Где пока мутно
Самый неприятный вопрос: что делать приложениям, чьи данные не ложатся в заранее заданные App Schemas? В статье честно отмечено, что это пока не до конца понятно. @Property(indexingKey:), IntentValueQuery, IntentValueRepresentation и прочие приятные механики сильнее всего раскрываются там, где система уже знает тип данных.
Мой вывод: для iOS 27 подготовка к Siri — это не «добавить AI-фичу». Это привести модель данных к виду, в котором система может ее понять: AppEntity, IndexedEntity, схемы, экранный контекст и экспорт через Transferable. Начинать стоит с одного-двух ключевых пользовательских сценариев, где фраза вида "Siri, что я недавно делал в этом приложении?" реально имеет смысл. После подготовки, это все обложить аналитикой и следить какие сценарии пользуются спросом и добавить их в регресс вашего приложения | 1 649 |
| 19 | 📦 Swift Package Index присоединился к Apple
Отличная новость для всего swift сообщества! Это не просто сайт, где удобно искать Swift-пакеты. SPI давно стал нормальным рабочим фильтром перед тем, как тащить зависимость в проект: посмотреть совместимость с платформами, версии Swift, документацию, активность, состояние пакета и вообще понять, живое это что-то или археология с красивым README. И теперь Apple забирает эту часть экосистемы ближе к себе.
В официальном посте аккуратно говорят: для разработчиков и авторов пакетов прямо сейчас ничего не меняется. Пакеты индексируются как раньше, документация хостится как раньше, проект остаётся open source, а инженеры Apple будут участвовать в развитии вместе с комьюнити.
Самая интересная часть — в том, что они прямо называют будущие направления: discovery, security, reliability, package signing и identity. То есть Swift Package Index постепенно может стать не просто поиском по пакетам, а более официальным слоем доверия вокруг Swift-зависимостей. Если вы не использовали SPI до этого но используете swift package, самое время проверить:
🟢какие SPM-зависимости у вас живут в проектах
🟢есть ли у них нормальная поддержка актуальных Swift/iOS/macOS версий
🟢есть ли DocC или хотя бы внятная документация
🟢кто автор, как часто выходят релизы, реагируют ли на issues
🟢насколько критична зависимость для production-кода
🟢сможете ли вы быстро заменить её, если пакет заброшен или сломается на новом SDK.
SPI уже сейчас помогает отвечать на эти вопросы. А если Apple дальше добавит identity/signing, такие проверки могут стать частью нормального инженерного процесса. | 1 535 |
| 20 | 👨🏻💻 Магия Lovable: как создавать готовые интерфейсы с помощью одного запроса.
Хороший интерфейс получается там, где есть хороший промпт.
Точность на входе = качество на выходе.
🗓 На открытом вебинаре 2 июля в 20:00 МСК:
➡️ Разберем, как формулировать задачи для Lovable, чтобы получать предсказуемый результат с первой попытки.
➡️ Поговорим о структуре системного промпта, ключевых словах, которые помогают превратить текст в качественный интерфейс.
➡️ Рассмотрим способы доработки результата через встроенный редактор и повторные запросы.
➡️ Обсудим, как управлять компонентами, просить нейросеть переиспользовать элементы и сохранять единый визуальный стиль.
Бесплатный вебинар курса «Вайб-кодинг: создание цифровых продуктов с ИИ»
🔗 Записаться: по ссылке
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru | 720 |
