Официальное демо от Apple по интеграции агентов и MCP в Xcode, очень рад что Apple двигается в сторону сообщества а не только пилит свои модели. Xcode 26.3 получил поддержку агентов. Это не автодополнение и не чат в IDE, а режим, где агент может выполнять многошаговые задачи внутри проекта, пробовать собрать проект и самостоятельно анализировать ошибки и исправлять их.
Ключевая идея
Что конкретно умеет агент в Xcode 26.3:
При этом Xcode 26.3 открывает свои возможности через Model Context Protocol (MCP), то есть теоретически можно подключать совместимые инструменты/агентов
Почему это важно?
Кому зайдёт больше всего
Xcode 26.3 делает следующий шаг: от подскажи строку к выполни задачу в проекте. И это выглядит как самый практичный апгрейд IDE-помощника за долгое время
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤3
Досмотрел сегодня увлекательное интервью Питера Стейнбергера. Это создатель PDF-фреймворк PSPDFKit который был невероятно популярным. История классического пути в iOS разработку - впервые увидел iPhone, впечатлился возможностями и создал приложения для iOS 2. После чего работа в Nokia, успех пет-проекта, выгорание и возрождение интереса к разработке с приходом AI. Мои хайлайты:
Развитие продукта
Культура команды
Возвращение к работе
Структура приложений
Влияние ИИ на разработку ПО
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍2
Разбираем хайп и что реально делать дальше. По комьюнити разошлась фраза "Avoid using Combine…" из системного prompt-файла Xcode 26.3 для агентного кодинга: там инструментам советуют избегать Combine и предпочитать async/await-версии API. Apple Combine не убивала официально, Combine продолжает жить в официальной документации и доступен как фреймворк. Никакого публичного deprecated/removed заявления в источниках уровня Apple здесь нет. Но вот эпоха реактивного программирования действительно подходит к концу, многие так и не успели его освоить. Агент, который пишет код, распространяет паттерны по проекту. Если в подсказке не использовать Combine, он будет продавливать Concurrency-стиль везде, куда дотрагивается. Почему так?
AsyncSequence/async/awaitCombine не умер официально, но Apple явно проталкивает concurrency-first. Это сигнал -
Combine не будет ключевым в новом мире агентовPlease open Telegram to view this post
VIEW IN TELEGRAM
Xcode 26 3 принёс agentic coding. Из коробки интегрированы Claude Code и Codex, но можно подключить и свой агент через MCP мост. Как это сделать детально разбирается в статье на примере Gemini. В результате Xcode сможет выполнять многошаговые задачи в проекте через Xcode инструменты. Удивительно что Gemini не завезли в Xcode, учитывая что Apple выбрала Gemini для новой Siri
Шаги подключения
gemini mcp add xcode-tools xcrun mcpbridge.gemini/settings.json с командой xcrun и аргументом mcpbridgeПолезные команды внутри 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
Часто iOS разработчики легкомысленно относятся к универсальным ссылкам, открыли первый туториал, прошли все шаги и готово. Если один раз все работало, на этом полномочия заканчиваются. На самом деле комплексно это про инфраструктуру, кеши, валидацию и регрессии, которые вы увидите только когда ссылок станет много, доменов несколько, а приложения локализованы. И это еще мы не упоминаем нюансы с удалением приложений и наличием нескольких приложений с одинаковыми универсальными ссылками (привет банкам под санкциями)
Недавно наткнулся на разбор Universal Links at scale — и там ровно те боли, о которых обычно молчат. Что ломается чаще всего, когда вы выходите за пределы туториалов
1. Никто не валидирует по схеме
JSON Schema + CI, иначе тестированием ссылок будут заниматься ваши пользователи
2. Между вами и девайсом стоит Apple CDN
Автоматическая проверка + алерты обязательно должна быть автоматизирована
3. Матчинг паттернов - это не regex
*, ?, ?*, *?Обязательно нужно написать тесты на реальные URL и корректно реализовать matching
4. substitutionVariables - спасение для локалей, но ад для проверки
Расширение переменных до matching + регрессионный набор URL
5. percent-encoding и спецсимволы
Заранее фиксируйте правила генерации ссылок и тестируйте как у пользователя
От себя еще добавлю - требуется реализовать клиентские алерты, которые будут отлавливать некорректные диплинки и рассказать команде о том что выходит за рамки iOS, и как настроить проверки на CI т.к. при сбое на CDN все равно виновато будет iOS приложение, а значит и надежность на наших плечах
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤2
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
👍12
Опыт миграции с ObservableObject на
@Observable. Что ломается и где подстелить соломку. Главная идея - переход от пуш модели, где объект кричит я изменился к пулл модели, где SwiftUI тихо отслеживает только то к чему реально прикасались во время рендера. Основные места, требующие внимания: @State private var vm = HeavyVM() выглядит как замена @StateObject но init будет дергаться при каждом пересчете body и это может жечь CPU и повторно запускать сайд эффекты. Решением является .task который запустится сразу и будет работать асинхронноРодительский
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
👍4❤1👌1
В macOS Tahoe 26.4 Apple добавила системное предупреждение: если пользователь запускает приложение, которое работает через Rosetta 2 (то есть содержит только Intel-бинарники и переводится на лету), macOS покажет поп-ап, что в будущем такое приложение перестанет работать, когда поддержка Rosetta закончится
Проверьте ваш тулчейн для сборки. Даже если ваше приложение universal, ваш pipeline может зависеть от бинарных CLI (линтеры, генераторы, утилиты подписи) или старых SDK/фреймворков. Актуальный Xcode может требовать macOS 27, а значит все mac mini работающие в качестве агентов для CI/CD можно утилизировать. Если Macbook не на M процессорах у разработчиков уже не осталось, то на CI еще много Intel
Как подготовиться:
.app/Contents/Frameworks/** и проверить lipo -archsPlease open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM