Последние апдейты Xcode и Swift звучат интересно: в сети начали появляться бенчмарки и обзоры, где отмечают заметный прирост в скорости сборки и работе рантайма.
💨 Сборка
В Swift 6.3 улучшили оптимизацию компилятора: кеширование, генерацию кода, специализацию дженериков.
По данным из бенчмарков, многомодульные проекты собираются быстрее — местами прирост достигает 2–3x при холодной сборке.
Apple в релиз-нотах Swift 6.3 тоже указывает на улучшения в оптимизации и снижении времени сборки.
⚙️ Async/await и рантайм
В статьях и тестах отмечают, что async/await стал работать ощутимо быстрее — оптимизировали actor-изоляцию и планировщик задач.
Те же бенчмарки показывают до 30–40% улучшения производительности и меньший расход памяти в асинхронных сценариях.
Похоже, Swift 6.3 действительно подчищает шероховатости concurrency.
🧠 Instruments и профилирование
Xcode 26 принёс апдейты и для диагностики:
🔗 WWDC 2025: Optimize CPU performance with Instruments
🔗 WWDC 2025: Optimize SwiftUI performance with Instruments
⚡️ Всё это — не революция, но важный шаг к тому, чтобы Swift и Xcode ощущались быстрее, надёжнее и понятнее (в том числе при работе с многопоточностью).
Пока сам не мерил, но судя по статьям и отзывам — апдейт действительно стоящий.
Ссылки:
🔗 Swift 6.3 Release Notes
🔗 Xcode 26 Release Notes
🔗 Swift 6.3 Performance Benchmarks (Medium)
🔗 Performance profiling в Swift 6.3
#L #Xcode26 #Swift #Instruments #asyncawait
Please open Telegram to view this post
VIEW IN TELEGRAM
Apple Developer
Optimize CPU performance with Instruments - WWDC25 - Videos - Apple Developer
Learn how to optimize your app for Apple silicon with two new hardware-assisted tools in Instruments. We'll start by covering how to...
❤5
Мы уже говорили про метрики в этом посте, сегодня коснулся очередных доработок в проекте, поэтому захотелось детальнее поговорить про coverage.
Не просто о бейдже в Xcode или на CI, а о построении процесса вокруг метрики, чтобы иметь возможность следить за динамикой качества и принимать решения на основе данных.
Почему это важно:
Покрытие тестами показывает, какие части кода реально проверены — и считать его стоит, не только для всего проекта, но и для отдельных модулей.
Главная ценность — наблюдать, как метрика меняется со временем: где команда теряет фокус, где техдолг копится и где тесты реально спасают.
Инструменты:
Как развивать подход:
- Формировать зоны по которым считается покрытие.
- Хранить и визуализировать динамику покрытия (Grafana / VictoriaMetrics / Prometheus).
- Следить за покрытием в MR — не допускать падения ниже порога.
- Разделять покрытие по фичам и модулям.
- Комбинировать метрики покрытия и сложности кода для приоритезации тестирования.
ИМХО: Coverage — это не про гонку за «100%»,
а про осознанный контроль качества и постоянную обратную связь для команды.
#L #metrics #coverage #xctestplan
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
YDC — Pizza Powered iOS
🤔 🧭 Метрики — компас зрелого проекта
Наткнулся на статью от Bitrise, где описываются базовые метрики мобильного CI/CD: время сборки, стабильность пайплайнов, покрытие тестами и прочие технические сигналы.
И это напомнило простую, но часто забываемую вещь:…
Наткнулся на статью от Bitrise, где описываются базовые метрики мобильного CI/CD: время сборки, стабильность пайплайнов, покрытие тестами и прочие технические сигналы.
И это напомнило простую, но часто забываемую вещь:…
❤3👍1
🎃 Полночь.
Пустой офис.
Монитор — единственный источник света.
💻 Xcode завис.
Слишком долго...
На экране появляется надпись:
Cleaning DerivedData…
Ты вздрагиваешь.
Кожа на затылке стынет.
Проект оживает — и будто сопротивляется тебе.
🌀 Indexing. Rebuilding. Re-indexing.
Симулятор падает.
Память исчезает быстрее, чем надежда.
Ты решаешь удалить DerivedData вручную.
Но закрываешь Finder — и она появляется снова.
Папка возрождается, как нечто живое.
🕯 Консоль мерцает:
“Preparing build environment…”
Шёпот за спиной.
Ты оборачиваешься — никого.
И тогда ты понимаешь:
в этом аду нет выхода.
В темноте офиса вспыхивает последнее сообщение:
🪦 Build failed.
#R
👏
Пустой офис.
Монитор — единственный источник света.
💻 Xcode завис.
Слишком долго...
На экране появляется надпись:
Cleaning DerivedData…
Ты вздрагиваешь.
Кожа на затылке стынет.
Проект оживает — и будто сопротивляется тебе.
🌀 Indexing. Rebuilding. Re-indexing.
Симулятор падает.
Память исчезает быстрее, чем надежда.
8… 4… 2 ГБ…
Ты решаешь удалить DerivedData вручную.
Но закрываешь Finder — и она появляется снова.
Папка возрождается, как нечто живое.
🕯 Консоль мерцает:
“Preparing build environment…”
Шёпот за спиной.
Ты оборачиваешься — никого.
И тогда ты понимаешь:
в этом аду нет выхода.
В темноте офиса вспыхивает последнее сообщение:
#R
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👻3🔥1🥱1
Please open Telegram to view this post
VIEW IN TELEGRAM
Многие из нас, кто работает с AI-агентами, уже не раз задавались вопросами:
«Как структурировать свой knowledge base?»
«Как писать спецификацию и проектную документацию так, чтобы с ней мог работать ИИ?»
И вот отличная статья в блоге Martin Fowler, где разбирается подход Specification-Driven Development (SDD) — создание систем и агентов на основе детализированных спецификаций.
Автор показывает инструменты и практики, помогающие связать описания требований, память, итерации и код, формируя понятный процесс разработки с участием LLM.
Однако важно отметить — термин SDD пока не имеет строгого определения.
Он уже стал зонтичным, объединяя и RAG-сценарии, и агентную разработку, и AutoGen-подходы.
То есть комьюнити пока только нащупывает, что именно значит “разработка на основе спецификаций” и куда она эволюционирует.
Лично я считаю статью полезной прежде всего для расширения кругозора — особенно если вы размышляете над архитектурой ИИ-агентов, памятью и контекстом.
Но насколько далеко мы зайдём, и как будет выглядеть «SDD» через пару лет — пока вопрос открытый 🤷♂️
P.S. Особенно с учётом растущего интереса к самостоятельным и независимым AI-кодерам в корпоративных контурах.
На днях, накопал инструмент Continue.dev, который позволяет разворачивать полностью локального AI-кодера с собственной моделью — без зависимости от внешних API.
Пока просто на уровне изучения, может быть попробуем и получится поделиться опытом.
#L #AI #RAG #SDD
Please open Telegram to view this post
VIEW IN TELEGRAM
martinfowler.com
Understanding Spec-Driven-Development: Kiro, spec-kit, and Tessl
Notes from my Thoughtworks colleagues on AI-assisted software delivery
👍2
одна из самых заметных в работе iOS-разработчика. Xcode активно использует её для кэширования и оптимизации.
Ссылки:
#M #iOS #TeamWork #Perfomance #DerivedData
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1🔥1🏆1
Чтение выходного дня натолкнуло на статью "Building Modular and Scalable iOS Apps".
Не сказать, что она очень подробная, но она поднимает важные темы:
- слоистость архитектуры,
- правила взаимодействия между модулями,
- DI и тестирование в контексте модульной структуры.
Я несколько лет назад писал цикл статей про модуляризацию — вот одна из них:
Там я подробнее разбирал вопросы, связанные с build critical path, графом зависимостей, подходом API/Impl, и тем, как всё это влияет на скорость сборки и масштабируемость архитектуры.
Интересно наблюдать, что тема модульной архитектуры всё ещё обсуждается (где-то даже очень базово).
И периодически появляются новые ракурсы размышлений (в комьюнити):
- развитие Tuist-а
- апдейты в Xcode
- интеграции с современными инструментами сборки и автоматизации.
#L #Arch #Modularity #apiimpl
Please open Telegram to view this post
VIEW IN TELEGRAM
Medium
Building Modular and Scalable iOS Apps: A Practical Guide to Feature-Oriented Architecture
Modern iOS applications are becoming more complex, feature-rich, and interconnected than ever. As apps evolve, developers often struggle…
❤3🔥2
🔗 Статья: How to speed up Xcode build time
Основные идеи:
1️⃣ ИМХО, самая важная - использовать Build Time Summary (и его ассистента/визуализатора) — мощный встроенный способ увидеть узкие места на сборке, для того чтобы принимать решения не вслепую.
Для детализации на CI: попробуйте xclogparser или xcode-build-times.
Как уже не раз говорил, наблюдаемость и инспекция - наше все и то с чего всегда стоит начинать.
2️⃣ Проверить флаги сборки, оптимизации и параллельные билды.
3️⃣ Правильно чистить DerivedData — мы недавно подробно писали об этом тут.
4️⃣ Компилировать только, то что нужно для текущего запуска:
Автор предлагает проверить конфигурацию схемы.
А я бы предложил в том числе, смотреть на уровне исходников и анализа компиляции, например: исключать моки из сборок для Debug-а, если вы их модуляризуете.
5️⃣ Тоже имба в случае верной настройки:
input/output files в кастомных скриптах/фазах сборки (например, для SwiftLint: настройте фазу и используйте параметры --use-noscript-input-file-lists и --cache-path) — чтобы Xcode не перезапускал всё подряд, на каждом прогоне.
💡 От себя также добавлю:
1️⃣ Bitcode — мёртв. Apple официально отключила его поддержку с iOS 16 (см. release notes), поэтому можно смело его выкидывать из головы.
2️⃣ Оптимизация графа зависимостей: через API/Impl, Dependency Inversion и контроль build critical path — мощнейший рычаг (я писал об этом здесь).
3️⃣ Build cache (локальный или remote) — просто имбовый импакт на многомодульном проекте.
🔥 В сумме это всё может дать десятки процентов прироста при правильном использовании.
#L #Xcode #CompileTime
Please open Telegram to view this post
VIEW IN TELEGRAM
Medium
🚀 How to Speed Up Xcode Build Time (and Stop Wasting Hours Waiting)
If you’re an iOS developer, you’ve probably stared at that blue progress bar way longer than you’d like to admit.
Let’s be real — Xcode…
Let’s be real — Xcode…
❤3
Занимаемся сейчас апдейтами процесса анализа время сборки на компьютерах разработчиков и на CI.
Да и вчерашний пост, про время компиляции хотелось бы развить.
Поэтому чуть мыслей еще своих:
Недавно сравнивал время сборки на двух маках, и заодно посмотрел, что говорят бенчмарки.
💻MacBook Pro 14" (2023, M2 Pro, 10-core, 16 ГБ RAM)
— средний результат по XcodeBenchmark ~119 сек.
💻MacBook Pro 16" (2023, M3 Pro, 12-core, 36 ГБ RAM) ~134 сек
В идеальных услвоиях прирост небольшой, но реальная разница может ощущаться в реальных условиях. Так, в моем кейсе проблемы были из-за памяти.
- переход с M1 → M2 даёт ~10–15% прироста;
- M2 → M3 — ещё +10–20% в зависимости от конфигурации и RAM.
При одинаковом объёме оперативной памяти отрыв между поколениями минимален.
Решает не только CPU, но и стабильность под нагрузкой, на что может влиять: RAM, тех процесс (на M3 - 3нм), sustained performance per watt.
Если Xcode, Slack, Zoom, браузер и антивирус живут одновременно — 16 ГБ быстро заканчиваются, macOS уходит в swap и сборка резко замедляется.
Не раз читал, что при unified memory (в M-чипах работает как общая шина между CPU/GPU), нехватка RAM мгновенно сказывается на производительности.
📎 Apple Silicon memory architecture
Количество ядер, тех процесс, количество RAM - каждый из параметров важен.
Нельзя создавать узких горлышек нагружая свою рабочую машину.
Так при исчерпывании RAM можно, как в моему случае столкнуться с проблемами и тратить время на анализ.
Следите за процессами, которые могут отъедать память, если хотите предсказуемое время сборки и комфортный DX.
P.S.: Отдельно можно говорить про скорость SSD и другие параметры, может сталкивались с другими проблемами и есть решения?
#L #Macbook #UnifiedMemory #Benchmark #CompileTime
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - devMEremenko/XcodeBenchmark: XcodeBenchmark measures the compilation time of a large codebase on iMac, MacBook, and Mac…
XcodeBenchmark measures the compilation time of a large codebase on iMac, MacBook, and Mac Pro - devMEremenko/XcodeBenchmark
❤3
Наткнулся на статью о жизни с СДВГ.
Без клише, без «мотивационных советов» — про то, как это чувствуется, когда ты или твои подопечные в IT и необходимо «держать фокус».
1. Гиперактивность.
2. Невнимательность, когда теряешь мысль посреди задачи или выключаешься из разговора.
3. Гиперфокус (обратная сторона п.2) когда настолько погружен в задачу, что сложно переключится на что-то другое, в том числе, на внимание к себе и близким.
4. «Паралич задачи», когда даже простое действие кажется непреодолимым.
5. «Временная слепота», когда теряешь ощущение часов.
6. «Низкая самооценка», из-за особенностей взаимодействия с людьми с самого раннего возраста.
Читаешь — и понимаешь, что многое из этого, должно быть знакомо даже тем, кто без диагноза.
По крайней мере у меня отликается чуть ли не каждый пункт.
Иногда мы просто перегружены контекстами, уведомлениями, ожиданиями.
Но где-то между этим всем теряется простая штука — внимание к себе.
P.S.: Нащупывается важная тему, где техника в IT встречается с эмпатией и people-management-ом.
Если пост найдет отклик, можно будет погрузится в особенности работы с людьми, включая учёт личных характеристик, при планировании и коммуникации.
#L #Management #Teamwork #СДВГ
Please open Telegram to view this post
VIEW IN TELEGRAM
Neil Macy
ADHD | Neil Macy
It’s been quite a year of self-discovery.
❤9
Когда технологий становится слишком много — языков, фреймворков, библиотек, инструментов — легко потеряться. Именно поэтому команды всё чаще создают технологический радар (Tech Radar).
Концепцию популяризировала компания ThoughtWorks, у которой регулярно выходит публичный Technology Radar
🚀 Что это такое?
Tech Radar — это карта технологий компании.
Она помогает понять:
• Какие технологии мы уже используем
• Какие пробуем
• За какими следим
• И от каких лучше отказаться
Выглядит это как диаграмма с секторами и кольцами.
Например:
• Сектора: Languages & Frameworks, Tools, Platforms, Techniques
• Кольца: Adopt, Trial, Assess, Hold
💡 Зачем нужен тех радар?
• Создаёт единое техническое видение для всех команд
• Помогает приоритизировать эксперименты
• Делает прозрачным, почему выбрана та или иная технология
• Борется с техническим долгом — видно, что пора заменить или вывести из использования
⚙️ Как использовать?
• Обновляйте радар раз в квартал
• Обсуждайте его на технических встречах
• Используйте как ориентир для развития команды и найма
• Ведите историю изменений — это покажет эволюцию технологического стека
📍 Итог: Tech Radar — это не просто таблица. Это инструмент осознанного выбора технологий и стратегического развития. Он помогает не гнаться за хайпом, а строить системную, зрелую инженерную культуру.
#D #Architecture #BestPractices #TechManagement
Please open Telegram to view this post
VIEW IN TELEGRAM
Thoughtworks
Technology Radar | Guide to technology landscape
The Technology Radar is an opinionated guide to today's technology landscape. Read the latest here.
❤3
Но как только компонент становится сложнее, могут начаться проблемы – «рывки», некорректное отображение и анимации «не там, где нужно».
💡 В таких ситуациях помогает Transaction — механизм, который позволяет управлять тем, что именно анимируется, когда и как.
Разобрал ключевые моменты + примеры в карточках.
#R #SUI #Transaction
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2