iOS Broadcast
3.53K subscribers
1.97K photos
87 videos
1.08K links
Подборка новостей и статей для iOS разработчиков.

Новости Kotlin и мультиплатформы @kotlin_broadcast
Новости Android @android_broadcast
Реклама и прочее @ab_manager
Download Telegram
🔨 Agentic Coding в Xcode 26.3
Официальное демо от Apple по интеграции агентов и MCP в Xcode, очень рад что Apple двигается в сторону сообщества а не только пилит свои модели. Xcode 26.3 получил поддержку агентов. Это не автодополнение и не чат в IDE, а режим, где агент может выполнять многошаговые задачи внутри проекта, пробовать собрать проект и самостоятельно анализировать ошибки и исправлять их.

Ключевая идея
🟡Вы формулируете цель (добавь фичу, поправь баг, сделай рефакторинг, добавь тесты)
🟡Агент сам разбивает задачу на шаги, ориентируется на архитектуру проекта и использует инструменты Xcode, чтобы довести до результата

Что конкретно умеет агент в Xcode 26.3:
🟢Писать и редактировать код в нескольких файлах
🟢Искать по проекту и исследовать структуру файлов
🟢Искать в документации и подтягивать контекст
🟢Обновлять настройки проекта (на уровне Xcode)
🟢Итеративно собирать проект, фиксить ошибки и повторять цикл
🟢Проверять визуальный результат через Xcode Previews и корректировать UI

При этом Xcode 26.3 открывает свои возможности через Model Context Protocol (MCP), то есть теоретически можно подключать совместимые инструменты/агентов

Почему это важно?
🟢IDE перестаёт быть редактором с подсказками и становится средой, где можно делегировать цепочку действий
🟢Самый заметный профит — в задачах “сверху вниз”: миграции, рефакторинги, настройка проекта, тесты, фиксы регрессий после SDK-апдейтов
🟢Меньше ручной навигации и контекст-переключений: агент живёт рядом с кодом и работает с проектом, а не с кусками текста

Кому зайдёт больше всего
🟢Командам с большими кодовыми базами и частыми релизами
🟢Тем, кто постоянно делает скучные задачки: обновить зависимости, поправить предупреждения, привести API к новым требованиям, написать тесты под изменения
🟢Тем, кто мигрирует UI под Liquid Glass или под новые требования App Store и не хочет тонуть в рутине

Xcode 26.3 делает следующий шаг: от подскажи строку к выполни задачу в проекте. И это выглядит как самый практичный апгрейд IDE-помощника за долгое время
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83
🔧 Я релижу код, который не читаю
Досмотрел сегодня увлекательное интервью Питера Стейнбергера. Это создатель PDF-фреймворк PSPDFKit который был невероятно популярным. История классического пути в iOS разработку - впервые увидел iPhone, впечатлился возможностями и создал приложения для iOS 2. После чего работа в Nokia, успех пет-проекта, выгорание и возрождение интереса к разработке с приходом AI. Мои хайлайты:

Развитие продукта
🔵Фокус на деталях, как у Apple позволил добиться успеха.
🔵Опыт в найме фрилансеров.
🔵Фокус на разработчиках и создание качественных материалов.
🔵Отказ от агрессивных маркетинговых стратегий.
🔵Распространение технологий на все платформы.
🔵Создание эталонного теста для WebAssembly, используемого Google, Microsoft и Apple.

Культура команды
🔵Консервативный подход к разработке API.
🔵Продавать разработчикам сложно из-за их специфических потребностей и ожиданий.
🔵Необходимо найти баланс между простотой и сложностью продукта.
🔵Блог помогает решать интересные проблемы и мотивировать команду.
🔵С ростом компании увеличивается количество бюрократических процедур.
🔵Привлечение большего числа людей создаёт больше проблем.
🔵Эмоциональное выгорание возникает из-за чрезмерной работы, конфликтов и потери веры в проект.

Возвращение к работе
🔵Трудности перехода от нативной разработке к фулстек с вебом
🔵Опыт работы с облачным кодом и Google AI Studio.
🔵Генерация спецификации кода с помощью ИИ.
🔵Проблемы с надёжностью кода, сгенерированного ИИ.
🔵82% разработчиков считают, что ИИ ускоряет написание кода, но 96% не доверяют его точности.

Структура приложений
🔵Архитектура системы важнее понимания каждой строки кода.
🔵Автор использовал Cloud Code, Gemini 2.5 и Opus 4.
🔵Понимание архитектуры помогает различать правильное и неправильное.
🔵Летом AI по мнению автора перешел ту грань, когда можно создавать ПО без ручного написания кода.
🔵Codex лучше подходит для сложных приложений.
🔵Модель начинает с нуля, требуя советов от разработчика.
🔵Обсуждение вариантов и планирование вместе с агентом.
🔵Codex помогает в системном представлении продукта.
🔵Архитектор разрабатывает план системы, но не занимается практической деятельностью.
🔵Автор несёт полную ответственность за код.
🔵 Важны результаты и ощущения от продукта, а не детали реализации.
🔵Люди, любящие сложные задачи и алгоритмы, часто отвергают ИИ.
🔵Написание тестов часто утомительно, но важно для качества кода.
🔵Хорошая документация проекта может быть создана без написания тестов вручную.
🔵Модели ИИ помогают улучшать архитектуру через тестирование.
🔵Адаптация к работе с ИИ требует времени и усилий.
🔵Опытные инженеры должны уметь делегировать полномочия и понимать, над какими деталями работать.

Влияние ИИ на разработку ПО
🔵ИИ повышает продуктивность отдельных разработчиков, но требует пересмотра принципов работы компаний
🔵Необходимость людей с видением продукта и высокой компетенцией
🔵Возможные экономические риски и проблемы с трудоустройством в новом мире
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍2
🔨 Combine официально мёртв?
Разбираем хайп и что реально делать дальше. По комьюнити разошлась фраза "Avoid using Combine…" из системного prompt-файла Xcode 26.3 для агентного кодинга: там инструментам советуют избегать Combine и предпочитать async/await-версии API. Apple Combine не убивала официально, Combine продолжает жить в официальной документации и доступен как фреймворк. Никакого публичного deprecated/removed заявления в источниках уровня Apple здесь нет. Но вот эпоха реактивного программирования действительно подходит к концу, многие так и не успели его освоить. Агент, который пишет код, распространяет паттерны по проекту. Если в подсказке не использовать Combine, он будет продавливать Concurrency-стиль везде, куда дотрагивается. Почему так?
🔵Combine исторически плохо сочетается с ужесточением concurrency safety: его API трудно сделать безопасным в понимании Swift Concurrency, поэтому Apple логично толкает людей в сторону AsyncSequence/async/await
🔵Combine и async/await решают разные задачи: потоки событий vs задачи
🔵Для операторов типа debounce/throttle есть AsyncAlgorithms, но это другой стиль и полной заменой не является

Combine не умер официально, но Apple явно проталкивает concurrency-first. Это сигнал - Combine не будет ключевым в новом мире агентов
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥32
🔨 Пример подключения Gemini CLI к Xcode 26 3 через MCP
Xcode 26 3 принёс agentic coding. Из коробки интегрированы Claude Code и Codex, но можно подключить и свой агент через MCP мост. Как это сделать детально разбирается в статье на примере Gemini. В результате Xcode сможет выполнять многошаговые задачи в проекте через Xcode инструменты. Удивительно что Gemini не завезли в Xcode, учитывая что Apple выбрала Gemini для новой Siri

Шаги подключения
🔵Xcode Settings открыть Intelligence
🔵Model Context Protocol включить Xcode Tools
🔵В корне проекта выполнить gemini mcp add xcode-tools xcrun mcpbridge
🔵Появится конфиг .gemini/settings.json с командой xcrun и аргументом mcpbridge
🔵Запустить Xcode затем запустить gemini в папке проекта
🔵Xcode попросит разрешение на доступ Gemini CLI к MCP серверу

Полезные команды внутри Gemini
🔵/mcp list показать доступные инструменты
🔵/mcp desc описание инструментов
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🈸 Universal Links - сложнее чем вам кажется
Часто iOS разработчики легкомысленно относятся к универсальным ссылкам, открыли первый туториал, прошли все шаги и готово. Если один раз все работало, на этом полномочия заканчиваются. На самом деле комплексно это про инфраструктуру, кеши, валидацию и регрессии, которые вы увидите только когда ссылок станет много, доменов несколько, а приложения локализованы. И это еще мы не упоминаем нюансы с удалением приложений и наличием нескольких приложений с одинаковыми универсальными ссылками (привет банкам под санкциями)
Недавно наткнулся на разбор Universal Links at scale — и там ровно те боли, о которых обычно молчат. Что ломается чаще всего, когда вы выходите за пределы туториалов

1. Никто не валидирует по схеме
🔴 JSON может быть валидным, но Apple App Site Association (AASA) - нет
🔴iOS ошибок не покажет, просто перестанет открывать ссылки
JSON Schema + CI, иначе тестированием ссылок будут заниматься ваши пользователи

2. Между вами и девайсом стоит Apple CDN
🔴iOS берет AASA не с вашего домена, а из кеша Apple
🔴Фикс “задеплоили” ≠ “у пользователей заработало”
Автоматическая проверка + алерты обязательно должна быть автоматизирована

3. Матчинг паттернов - это не regex
🔴У Apple своя логика *, ?, ?*, *?
🔴Ошибка в конвертации = неожиданные пропуски/перехваты ссылок
Обязательно нужно написать тесты на реальные URL и корректно реализовать matching

4. substitutionVariables - спасение для локалей, но ад для проверки
🔴Переменные уменьшают дублирование, но усложняют валидацию
Расширение переменных до matching + регрессионный набор URL

5. percent-encoding и спецсимволы
🔴Там, где начинается локализация и маркетинговые UTM, начинаются сюрпризы
Заранее фиксируйте правила генерации ссылок и тестируйте как у пользователя

От себя еще добавлю - требуется реализовать клиентские алерты, которые будут отлавливать некорректные диплинки и рассказать команде о том что выходит за рамки iOS, и как настроить проверки на CI т.к. при сбое на CDN все равно виновато будет iOS приложение, а значит и надежность на наших плечах 💪
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62
😺️ Anthropic courses
Anthropic выложила бесплатные курсы по освоению ИИ. Внутри 300 лекции и практические заданий. Если вы уже трогали Xcode agents - можно начать с Introduction to MCP потом Claude Code in Action. Anthropic параллельно ведёт публичный репозиторий курсов на GitHub где видно что они развивают образовательную линейку в открытую. Есть те кто уже прошел? На сколько вам показались полезными?
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14
📱 Observation framework объективно лучше но нюансов достаточно
Опыт миграции с ObservableObject на @Observable. Что ломается и где подстелить соломку. Главная идея - переход от пуш модели, где объект кричит я изменился к пулл модели, где SwiftUI тихо отслеживает только то к чему реально прикасались во время рендера. Основные места, требующие внимания:
🔴Ловушка ленивой инициализации
@State private var vm = HeavyVM() выглядит как замена @StateObject но init будет дергаться при каждом пересчете body и это может жечь CPU и повторно запускать сайд эффекты. Решением является .task который запустится сразу и будет работать асинхронно
🔴Вложенные observable игнорируются
Родительский observable содержит вложенный observable и UI внезапно не обновляется если view наблюдает только за родителем а изменения происходят глубоко внутри вложенных. Чтобы это справить нужно сделать доступ более гранулярным и передавать вниз именно нужный узел графа плюс использовать @Bindable в конкретной view которая должна обновляться
🔴Изменяемые массивы
Если есть список элементов, свойства которых меняются, это игнорируется. Чтобы это исправить внутри List по items лучше создавать bindable копию элемента массива прямо в скоупе перечисления и дальше использовать уже его (последний скриншот)

Новая ментальная модель, если ее принять то апдейты становятся точнее а перерисовки меньше но первые недели почти у всех будет ощущение что UI сломался
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41👌1