Telegram Web Link
Как сократить большой JSON

Огромные JSON'ы, загружаемые с сервера, один из частых недостатков backend-driven UI. Ребята из Альфы рассказывают, как они свели дублирующиеся конструкции к минимуму, реализовав кастомную логику шаблонизации. В итоге на списках со 100 элементами получается ~74% экономии.
Новый релиз Copilot for Xcode

Вышла новая версия плагина Copilot, вместе с которой он перешел из статуса беты в GA. Самое важное – теперь можно выбирать, какая LLM будет использоваться в чате: Claude Sonnet, o1 или o3-mini.
Что происходит с Apple Intelligence

На прошлой неделе Apple в очередной раз отложили релиз новых AI фичей, которые показывали еще на WWDC. Одновременно с этим произошла утечка того, о чем говорилось на внутреннем разборе полетов команды Siri:

👉AI надежно работает только в 66-80% случаев, что очень мало и далеко от продакшна.
👉Менеджер команды Siri винит маркетинг в том, что всему миру показали и пообещали еще не работающие фичи, создав нереалистичные ожидания.
👉Никого из топов увольнять за провал пока не планируют, но и не исключают этого.
👉Apple Intelligence выпустят только тогда, когда будут уверены в качестве.
Правильный поиск вхождения строки

name.lowercased().contains(searchText.lowercased())
name.localizedStandardContains(searchText)

Чем второй вариант лучше:

👉По умолчанию case insensitive
👉Игнорирует диакритические знаки (cafe vs café)
👉Нормально справляется с локально-специфичными символами (ẞ → ss)
👉Поддерживается в SwiftData
Рендеринг пиксель-арта

Основная проблема в рендеринге пиксель-арта – размывание четких границ каждого пикселя при скейле картинки для дисплеев с большим разрешением. В статье разбирается два способа, как это сделать в SwiftUI: с помощью Image и с помощью Canvas.
Новая рабочая группа в Swift, отвечающая за тестирование

Как вы, наверное, знаете, развитие Swift сейчас довольно децентрализовано, и за разные его аспекты отвечают рабочие группв, собранные как из сотрудников Apple, так и из членов коммьюнити. Так вот, сформирована новая рабочая группа, которая будет отвечать за все, что связано с тестированием, включая различный тулинг и библиотеки. В основном они будут заниматься реализацией Swift Testing Vision.

Подробнее об участниках и целях можно прочитать здесь.
Используем Swift в Zed

Zed – сравнительно недавно выпущенный редактор кода, основная особенность которого – он супер быстрый. Если вам интересно посмотреть на еще одну альтернативу Xcode, то настроить для Swift разработки по инструкциям из статьи его довольно просто.
WWDC 2025

А вот и анонс WWDC этого года. Блокируем неделю с 9 по 13 июня. Смотреть можно, как и в прошлый раз на YouTube и в Apple Developer app.
Почему Group в SwiftUI стоит избегать

В отличие от VStack/HStack, Group работает не очень надежно – поведение между симуляторами и превью различается, какие-то модификаторы вызываются только один раз, а какие-то – для каждой вьюшки.
Мутационное тестирование в большом проекте

Мутационное тестирование – это метод тестирования программ, при котором в код специально вносятся небольшие изменения – мутации, чтобы проверить, обнаружат ли их тесты. Так вот, для Swift есть опенсорсный инструмент Muter, который умеет реализовывать довольно много различных мутаций.

В статье разбирается опыт использования Muter в проекте с 1000 тестов и 1657 сгенерированных мутантов.
Bindings в SwiftUI

Chris Eifhof рассказывает, почему в продакшн коде стоит избегать Binding(get:set:) – меньше рисков поймать проблемы с перфомансом, код проще поддерживать и тестировать.
MCP для iOS симулятора

Model-Context Protocol – это дико хайпующий сейчас стандарт для общения LLM с внешними инструментами. Так вот, его прикрутили и к iOS симулятору для взаимодействия с его UI, а значит, ваш AI теперь может самостоятельно взаимодействовать с запущенным приложением – например, заменяя собой QA.
Как писать git hooks на Swift

На Swift можно писать не только консольные тулы, но и скрипты, которые будут автоматически вызываться либо до, либо после коммита в Git. В статье разбирается пример хука, который не даст коммитить в мастер код, содержащий принты.
Новый релиз Alex – альтернативы Cursor для Xcode

Вышел новый релиз Alex, про которого я уже рассказывал в канале несколько раз. Новых фичей вагон, так что, если вы еще не попробовали, сейчас самое время!
Релиз Swift 6.1

👉nonisolated теперь можно применять не только к пропертям и функциям, но и к типам и расширениям.
👉Методы из хедеров ObjC классов теперь можно реализовывать в Swift, используя новое ключевое слово @implementation.
👉Trailing commas теперь поддерживаются не только в коллекциях, но и в кортежах, списках параметров и аргументов, строковых интерполяциях и в других местах.
👉С помощью package traits часть API теперь можно объявлять доступными только для конкретных платформ – например, Embedded или Wasm.
Релиз Swiftly 1.0

Swiftly – это CLI-тул, который позволяет удобно менеджерить версии Swift тулчейна. Он может пригодиться, когда вы хотите установить версию Swift, отличную от той, которая шиппится вместе с Xcode, или установить Swift на не-macOS систему.
Интеграция SwiftUI с Rust-библиотекой egui

Держите дикую историю про то, как общая структура приложения была реализована на SwiftUI, а вот рендеринг конкретных таблиц, требовательных к перфомансу, на Rust-либе egui.

👉Исходники
👉Видео результата
Выпуск Подлодки про Swift

Восемь лет назад мы начинали Подлодку как подкаст про iOS разработку. Со временем проект эволюционировал, мы все больше и больше расширяли список тем. Но когда-то нужно вернуться и к корням – и спустя 400 выпусков мы все-таки записали офигенный подробный эпизод про Swift. Глеб Лукьянец, которого знают все посетители нашего чата, рассказал про историю развития, ключевые фичи и необычные технические концепции в языке. Ну и, конечно же, похоливарили про растущую сложность, запутанный дизайн и макросы!
Избегаем Optionals при работе с URL

Санделл вышел из долгой спячки, и сразу же с прекрасной статьей про разные техники работы с URL, которые помогают избежать работы с ним как с Optional типом. Одна из них – макросы, которые позволяют удобно работать с URL, известными в компайл-тайме, а вторая – сравнительно новый API для динамической сборки URL в рантайме.
2025/06/29 17:26:09
Back to Top
HTML Embed Code: