Самые неожиданные проблемы с новым дизайном принес YouTube, но в компании Apple быстро среагировали на инцидент, порадуемся за ребят!
💅70👍14🔥8❤1
Миграция XCTest на Swift Testing с помощью Claide Code
Claude Code – популярный AI SWE агент от Anthropic. Peter Steinberger, которого старожилы помнят как очень хардкорного инженера из PSPDFKit, рассказывает, как с помощью агента переводил 700 тестов в своих проектах на Swift Testing. Первая попытка в лоб не очень получилась, но после подготовки правильных гайдлайнов для агента все сработало замечательно.
Claude Code – популярный AI SWE агент от Anthropic. Peter Steinberger, которого старожилы помнят как очень хардкорного инженера из PSPDFKit, рассказывает, как с помощью агента переводил 700 тестов в своих проектах на Swift Testing. Первая попытка в лоб не очень получилась, но после подготовки правильных гайдлайнов для агента все сработало замечательно.
steipete.me
Migrating 700+ Tests to Swift Testing: A Real-World Experience | Peter Steinberger
How I migrated over 700 tests from XCTest to Swift Testing across two projects, with AI assistance and systematic refinement
👍14
Новости Swift Package Index
Во-первых, самому крупному реестру Swift пакетов исполнилось пять лет, и размер экосистемы за это время вырос с 2500 до 9000 библиотек.
Во-вторых, в список платформ, совместимость с которыми тестируется автоматически, добавили Wasm и Android. Из тех самых 9000 пакетов 19% совместимы с Wasm, и 28% с Android.
Во-первых, самому крупному реестру Swift пакетов исполнилось пять лет, и размер экосистемы за это время вырос с 2500 до 9000 библиотек.
Во-вторых, в список платформ, совместимость с которыми тестируется автоматически, добавили Wasm и Android. Из тех самых 9000 пакетов 19% совместимы с Wasm, и 28% с Android.
The Swift Package Index
Five years of the Swift Package Index on the Swift Package Index Blog – Swift Package Index
This week sees a rather significant anniversary for the Swift Package Index. It's been five years since we launched, so it's time to reflect!
🔥12
Как Apple перевел бэкенд Passwords с Java на Swift
👉Основной причиной переезда были требования к перфомансу рантайма, Java даже после оптимизаций не удовлетворяла им.
👉Для перехода выбраои фреймворк Vapor.
👉Любимые фичи в сравнении с Java – протоколы вместо наследования, memory safety, async/await.
👉Перфоманс после перехода действительно стал лучше, примерно на 40%, а код стал короче и выразительнее.
👉Основной причиной переезда были требования к перфомансу рантайма, Java даже после оптимизаций не удовлетворяла им.
👉Для перехода выбраои фреймворк Vapor.
👉Любимые фичи в сравнении с Java – протоколы вместо наследования, memory safety, async/await.
👉Перфоманс после перехода действительно стал лучше, примерно на 40%, а код стал короче и выразительнее.
❤30💅11🔥6👍4
Ask WWDC
А вот и полезный AI продукт подвезли – каталог транскриптов всех сессий WWDC с возможностью задать вопрос к нему. Например, спрашиваете, что нового в UIKit, получаете полный обзор и ссылки на все релевантные сессии.
А вот и полезный AI продукт подвезли – каталог транскриптов всех сессий WWDC с возможностью задать вопрос к нему. Например, спрашиваете, что нового в UIKit, получаете полный обзор и ссылки на все релевантные сессии.
🔥80👍14❤10
Что нового в UIKit
👉Поддержка Observable классов, причем сразу же вплоть до iOS 18
👉Новый метод жизненного цикла
👉Возможность обновить вьюшку сразу же в
👉Поддержка Observable классов, причем сразу же вплоть до iOS 18
👉Новый метод жизненного цикла
updateProperties()
, который обновляет свойства вьюшки, не перерисовывая ее целиком👉Возможность обновить вьюшку сразу же в
UIView.animate
блоке, без необходимости вручную инвалидировать лэйаут3🔥48💅9❤3👍2
Что нового в тулинге
Большой обзор всех главных улучшений разработческого тулинга от ребят из Tuist:
👉Много улучшений вокруг тестирования, в том числе запись видео прогона UI тестов.
👉Новый макрос #playground – аналог previews, но для не-UI кода.
👉Проект, позволяющий запускать Linux контейнеры на маке – container. Опенсорсный, полностью на Swift.
Большой обзор всех главных улучшений разработческого тулинга от ребят из Tuist:
👉Много улучшений вокруг тестирования, в том числе запись видео прогона UI тестов.
👉Новый макрос #playground – аналог previews, но для не-UI кода.
👉Проект, позволяющий запускать Linux контейнеры на маке – container. Опенсорсный, полностью на Swift.
tuist.dev
Developer experience wins from WWDC25
Apple's WWDC25 brought exciting developer tooling updates: new UI testing capabilities, in-code playgrounds, explicit modules by default, and their own container CLI. Here's how we think about them at Tuist.
👍12👎3❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Dragula – drag'n'drop движок для SwiftUI
Dragula – новая библиотека для SwiftUI, которая упрощает создание drag-n-drop интерфейсов. Работает и в списках с секциями, поддерживает горизонтальный и вертикальный скролл.
Dragula – новая библиотека для SwiftUI, которая упрощает создание drag-n-drop интерфейсов. Работает и в списках с секциями, поддерживает горизонтальный и вертикальный скролл.
🔥47💅10❤1
Mesh градиенты в SwiftUI
В отличие от радиальных и линейных, mesh градиенты дают получить более свободное распределение цветов по плоскости. В статье разбирается, как такие градиенты создавать, управлять их геометрией, тем самым распределением цветов, создавать сложные фигуры и анимации.
В отличие от радиальных и линейных, mesh градиенты дают получить более свободное распределение цветов по плоскости. В статье разбирается, как такие градиенты создавать, управлять их геометрией, тем самым распределением цветов, создавать сложные фигуры и анимации.
💅35👍2❤1
Примеры использования Foundation Model Framework
Держите постепенно пополняемую коллекцию проектов с использованием локальной LLM от Apple:
👉Суммаризатор расшифровок встреч
👉Планировщик поездок
👉Генератор батиных шуток
👉Генератор рецептов на основе списка продуктов
Держите постепенно пополняемую коллекцию проектов с использованием локальной LLM от Apple:
👉Суммаризатор расшифровок встреч
👉Планировщик поездок
👉Генератор батиных шуток
👉Генератор рецептов на основе списка продуктов
👍12❤1
Android на пути к официальной поддержке в Swift
В Swift появилась новая рабочая группа, задача которой – сделать Android официально поддерживаемой платформой. Задачи перед собой поставили стандартные для кроссплатформенного фреймворка, обсуждение открытое, так что можете поучаствовать. Группу драйвят ребята из Skip Tools, про которых я уже рассказывал раньше.
Что же, тепло привествуем наших коллег из Android Good Reads (@droidgr)!
В Swift появилась новая рабочая группа, задача которой – сделать Android официально поддерживаемой платформой. Задачи перед собой поставили стандартные для кроссплатформенного фреймворка, обсуждение открытое, так что можете поучаствовать. Группу драйвят ребята из Skip Tools, про которых я уже рассказывал раньше.
Что же, тепло привествуем наших коллег из Android Good Reads (@droidgr)!
Swift.org
Swift is a general-purpose programming language built using a modern approach to safety, performance, and software design patterns.
🔥84💅4
Что нового в SwiftUI
С обновлениями UIKit разобрались, давайте посмотрим на SwiftUI:
👉Нативный WebView
👉Поддержка rich text editing в TextView
👉Возможность задать свои собственные лейблы для секций таблицы (вот те самые буквы, которые сбоку отображаются)
👉Макрос Animatable
👉Поддержка openURL в in-app браузере
С обновлениями UIKit разобрались, давайте посмотрим на SwiftUI:
👉Нативный WebView
👉Поддержка rich text editing в TextView
👉Возможность задать свои собственные лейблы для секций таблицы (вот те самые буквы, которые сбоку отображаются)
👉Макрос Animatable
👉Поддержка openURL в in-app браузере
Hacking with Swift
What's new in SwiftUI for iOS 26
WebView, rich text editing for TextEditor, section index list titles, and more
❤13🔥3👍1
Про observation в UIKit
Я уже рассказывал, что Apple внезапно завезли Observable в UIKit, причем сразу же до iOS 18. Так вот, держите более подробную статью с разбором того, как он работает, какие ограничения есть, и как избежать просадок перфоманса.
Я уже рассказывал, что Apple внезапно завезли Observable в UIKit, причем сразу же до iOS 18. Так вот, держите более подробную статью с разбором того, как он работает, какие ограничения есть, и как избежать просадок перфоманса.
steipete.me
Automatic Observation Tracking in UIKit and AppKit: The Feature Apple Forgot to Mention | Peter Steinberger
Discover how iOS 18's hidden automatic observation tracking brings SwiftUI-like reactive programming to UIKit and AppKit, making your UI code cleaner and more maintainable.
❤18👍3
Детали про Foundation Model
Главная вещь, которую нужно понимать про локальную LLM, встроенную в iOS – она достаточно маленькая и слабая по современным меркам, особенно в плане размера окна контекста, всего 4096 токенов. Это значит, что относиться к ней стоит не как к карманному ChatGPT, а скорее как к умному форматтеру свободного текста в структурные данные.
Главная вещь, которую нужно понимать про локальную LLM, встроенную в iOS – она достаточно маленькая и слабая по современным меркам, особенно в плане размера окна контекста, всего 4096 токенов. Это значит, что относиться к ней стоит не как к карманному ChatGPT, а скорее как к умному форматтеру свободного текста в структурные данные.
Ronnie Rocha - iOS Developer & AI Engineer
WWDC 2025: Apple’s On-Device Foundation Model Is Here.. But Is It Any Good? - Ronnie Rocha - iOS Developer & AI Engineer
I’ve been an Apple “fanboy” for almost 20 years now. Ever since I got my first MacBook Pro back in 2005. I’ve been developing for iOS for the past 15 of those years, and every June, I get excited for WWDC like it’s Christmas morning. 🤓 This year? Honestly…
❤15👍1
Как Claude помог переписать на Swift легаси приложение
Claude Code – очень популярный сейчас агент от Anthropic. Автор статьи рассказывает, как всего за 20$ он переписал Objective-C приложение, написанное 12 лет назад с таргетом под iOS 6, на Swift и SwiftUI.
Читается как дневник, очень много полезных выводов – рекомендую всем, кто подумывает вкатиться в агентов.
Claude Code – очень популярный сейчас агент от Anthropic. Автор статьи рассказывает, как всего за 20$ он переписал Objective-C приложение, написанное 12 лет назад с таргетом под iOS 6, на Swift и SwiftUI.
Читается как дневник, очень много полезных выводов – рекомендую всем, кто подумывает вкатиться в агентов.
Twocentstudios
Rewriting a 12 Year Old Objective-C iOS App with Claude Code
👎35👍14🔥2
Учим Claude писать на Swift 6
Одна из проблем, о которой рассказывал автор вчерашней статьи – достаточно плохое знание агентом особенностей Swift. Эта проблема частично решается добавлением нужной информации в контекст модели. Если все-таки решите попробовать, то по ссылке – детальные правила работы с Swift 6 и Swift Concurrency.
Одна из проблем, о которой рассказывал автор вчерашней статьи – достаточно плохое знание агентом особенностей Swift. Эта проблема частично решается добавлением нужной информации в контекст модели. Если все-таки решите попробовать, то по ссылке – детальные правила работы с Swift 6 и Swift Concurrency.
GitHub
agent-rules/docs/swift-concurrency.md at main · steipete/agent-rules
Rules and Knowledge to work better with agents such as Claude Code or Cursor - steipete/agent-rules
👍16👎14
Как в Airbnb улучшают перфоманс SwiftUI
Пока самые слабые отказываются от SwiftUI из-за проблем с перфомансом, Airbnb пытается решать проблемы с ним. В сегодняшней статье они рассказывают про то, как работает diffing алгоритм и как его контролировать.
Пока самые слабые отказываются от SwiftUI из-за проблем с перфомансом, Airbnb пытается решать проблемы с ним. В сегодняшней статье они рассказывают про то, как работает diffing алгоритм и как его контролировать.
Medium
Understanding and Improving SwiftUI Performance
New techniques we’re using at Airbnb to improve and maintain performance of SwiftUI features at scale
👍37👎14🔥3
На какие англоязычные рассылки про iOS вы подписаны?
Anonymous Poll
19%
iOS Dev Weekly
14%
SwiftLee Weekly
5%
SwiftUI Weekly
3%
iOS Code Review
1%
Indie iOS Focus Weekly
5%
iOS Dev Tools
1%
iOS CI Newsletter
2%
Swift Evolution Monthly
3%
Какие-то другие (расскажу в комментариях)
70%
Ни на какие не подписан
💅6❤4