This media is not supported in your browser
VIEW IN TELEGRAM
Cause & Effect Graph для SwiftUI
В Xcode 26 появился новый профилировщик для SwiftUI. Для любой вьюшки вы можете посмотреть, какие конкретно обновления стейта вызвали каждый ререндер.
В Xcode 26 появился новый профилировщик для SwiftUI. Для любой вьюшки вы можете посмотреть, какие конкретно обновления стейта вызвали каждый ререндер.
👍58🔥7❤3
Закапываем SwiftUI
Перед Новым годом в Твиттере обострились тейки про то, что команда SwiftUI проигрывает в политической борьбе внутри Apple. Откуда это мнение берется:
👉На WWDC этого года SwiftUI пушился меньше, чем раньше, плюс больше сессий показывали примеры на UIKit
👉В одном из главных SwiftUI приложений, Photos.app, в iOS 26 часть кода и инфры переписали обратно на UIKit
В статье по ссылке накидывается еще больше аргументов за то, что UIKit в 2026 стал достаточно хорошим выбором, а SwiftUI становится все хуже.
Перед Новым годом в Твиттере обострились тейки про то, что команда SwiftUI проигрывает в политической борьбе внутри Apple. Откуда это мнение берется:
👉На WWDC этого года SwiftUI пушился меньше, чем раньше, плюс больше сессий показывали примеры на UIKit
👉В одном из главных SwiftUI приложений, Photos.app, в iOS 26 часть кода и инфры переписали обратно на UIKit
В статье по ссылке накидывается еще больше аргументов за то, что UIKit в 2026 стал достаточно хорошим выбором, а SwiftUI становится все хуже.
Jacobstechtavern
2025: The year SwiftUI died
Rediscovering my love for the Classic UIKit Stack™
🔥54👎21👍7❤6💅2
Replay – тестирование против реального сетевого трафика
Replay – новая библиотека от Mattt. Она умеет захватывать ваш реальный сетевой трафик, сохранять его в файл, вырезать секреты, и дальше использовать его для тестирования вашего сетевого кода.
Replay – новая библиотека от Mattt. Она умеет захватывать ваш реальный сетевой трафик, сохранять его в файл, вырезать секреты, и дальше использовать его для тестирования вашего сетевого кода.
NSHipster
Replay
Fast, reliable API tests without mocks or stale JSON fixtures. Replay records real HTTP traffic once (as HAR) and replays it instantly with Swift Testing so your networking code stays honest and your test suite stays fast.
🔥24👍6💅3👎1
Asset Catalog для VS Code
Если вы постепенно переезжаете с Xcode в VS Code или Cursor, то вот еще одно расширение в копилку, которое возвращает часть привычного опыта – просмотровщик .xcassets файлов.
Если вы постепенно переезжаете с Xcode в VS Code или Cursor, то вот еще одно расширение в копилку, которое возвращает часть привычного опыта – просмотровщик .xcassets файлов.
1💅22👍13👎2❤1
Как устроен пайплайн рендеринга
Отличный разбор того, как устроен пайплайн рендеринга на разных платформах от уровня пикселей до лейаута кнопок в привычном вам SwiftUI. Помимо общей теоретической базы мне понравилось сравнение конкретных хиапов пайплайна для SwiftUI, Compose, React и WebGL.
Отличный разбор того, как устроен пайплайн рендеринга на разных платформах от уровня пикселей до лейаута кнопок в привычном вам SwiftUI. Помимо общей теоретической базы мне понравилось сравнение конкретных хиапов пайплайна для SwiftUI, Compose, React и WebGL.
👍22❤5👎5💅1
Учимся работать с пакетом swift-subprocess
Swift Subprocess – сравнительно свежий пакет, который упрощает задачу вызова терминальных команд из Swift кода. В статье разбирается, как с его помощью:
👉Запускать CLI программу из бандла для macOS
👉Передавать аргументы
👉Определять рабочую директорию
👉Организовывать аутпут, в том числе информацию об ошибках
👉Проверять успешность запуска
Swift Subprocess – сравнительно свежий пакет, который упрощает задачу вызова терминальных команд из Swift кода. В статье разбирается, как с его помощью:
👉Запускать CLI программу из бандла для macOS
👉Передавать аргументы
👉Определять рабочую директорию
👉Организовывать аутпут, в том числе информацию об ошибках
👉Проверять успешность запуска
1👍16❤2
Что не так с иконками в macOS
В macOS Tahoe дизайнеры Apple поставили прред собой невыполнимую и бессмысленную задачу – добавить иконки во все пункты системных меню. Держите огромное эссе с разбором всех беспощадных ошибок и нарушений принципов HIG.
В macOS Tahoe дизайнеры Apple поставили прред собой невыполнимую и бессмысленную задачу – добавить иконки во все пункты системных меню. Держите огромное эссе с разбором всех беспощадных ошибок и нарушений принципов HIG.
👍21💅2
iOS скиллы для AI агентов
Буквально пару месяцев назад у AI агентов появилась новая фича – скиллы. Это набор из промптов, скриптов и тулов, которые помогают агенту лучше справляться со специализированными задачами, и подгружаются лениво.
Так вот, держите набор скиллов для iOS разработки – разработка красивого и производительного кода на SwiftUI, публикация приложений и много чего еще.
Отдельно держите ссылку на скилл для работы со Swift Concurrency!
Буквально пару месяцев назад у AI агентов появилась новая фича – скиллы. Это набор из промптов, скриптов и тулов, которые помогают агенту лучше справляться со специализированными задачами, и подгружаются лениво.
Так вот, держите набор скиллов для iOS разработки – разработка красивого и производительного кода на SwiftUI, публикация приложений и много чего еще.
Отдельно держите ссылку на скилл для работы со Swift Concurrency!
GitHub
GitHub - Dimillian/Skills: My Codex Skills
My Codex Skills. Contribute to Dimillian/Skills development by creating an account on GitHub.
2🔥32👎9💅5❤2👍1
Apple будет использовать Gemini
Ну что ж, Apple Intelligence, Siri, и видимо локальные модели будут основаны на Gemini от Google. В целом это отличная новость, Google за последний год огромный рывок в AI сделали, и модели правда хорошие.
Ну что ж, Apple Intelligence, Siri, и видимо локальные модели будут основаны на Gemini от Google. В целом это отличная новость, Google за последний год огромный рывок в AI сделали, и модели правда хорошие.
Google
Joint statement from Google and Apple
Apple and Google have entered into a multi-year collaboration under which the next generation of Apple Foundation Models will be based on Google's Gemini models and clou…
🔥17👍5💅5👎2
Как деплоить в TestFlight напрямую из Codex Web
С появлением такой штуки, как асинхронные агенты, разрабатывать стало возможно вообще не трогая макбук. В статье разбирается, как с помощью Codex Web сделать PR, собрать его в Xcode Cloud, и сразу же залить для тестирования в TestFlight.
С появлением такой штуки, как асинхронные агенты, разрабатывать стало возможно вообще не трогая макбук. В статье разбирается, как с помощью Codex Web сделать PR, собрать его в Xcode Cloud, и сразу же залить для тестирования в TestFlight.
Medium
How to deploy TestFlight app from Codex Web automatically
Using Xcode Cloud workflow
👎24❤5
Dependency mirroring со SwiftPM
Swift Package Manager дает возможность подменять удаленные зависимости их локальными копиями прямо через CLI с помощью команды
👉Все делается через терминал, не нужно открывать Xcode и вручную перетаскивать папки
👉Не трогаем Package.swift, так как конфигурация зеркал хранится отдельно
👉Настройка зеркал работает сразу для всех проектов с этими зависимостями
Swift Package Manager дает возможность подменять удаленные зависимости их локальными копиями прямо через CLI с помощью команды
swift package config set-mirror. В чем плюсы:👉Все делается через терминал, не нужно открывать Xcode и вручную перетаскивать папки
👉Не трогаем Package.swift, так как конфигурация зеркал хранится отдельно
👉Настройка зеркал работает сразу для всех проектов с этими зависимостями
kunat.dev
Swift Package Manager Mirrors for Local Development
A dependency mirror refers to an alternate source location which exactly replicates the contents of the original source. [1]
I often end up in the same situation: I need to tweak an internal package that a project depends on. The usual options are:
Drag…
I often end up in the same situation: I need to tweak an internal package that a project depends on. The usual options are:
Drag…
1🔥18👍3
Гайд по промптингу локальных моделей
Apple выпустили документацию по тому, как правильно составлять промпты для моделей, доступных через Foundation Models Framework – в том числе как делать так, чтобы модель лучше следовала инструкциям, и как выносить условную логику в код.
Apple выпустили документацию по тому, как правильно составлять промпты для моделей, доступных через Foundation Models Framework – в том числе как делать так, чтобы модель лучше следовала инструкциям, и как выносить условную логику в код.
Apple Developer Documentation
Prompting an on-device foundation model | Apple Developer Documentation
Tailor your prompts to get effective results from an on-device model.
👍19💅5👎2
Swift Language Reference в виде книги
Документацию по Swift красиво сверстали по всем типографским правилам и выложили в PDF, так что, если всегда хотели иметь ее как настольную книгу, возможность теперь есть!
Документацию по Swift красиво сверстали по всем типографским правилам и выложили в PDF, так что, если всегда хотели иметь ее как настольную книгу, возможность теперь есть!
GitHub
GitHub - peterfriese/swift-book: The Swift Programming Language book as a PDF!
The Swift Programming Language book as a PDF! Contribute to peterfriese/swift-book development by creating an account on GitHub.
1👍18💅1
Cupertino – MCP сервер для документации Apple
Cupertino вытаскивает информацию с кучи ресурсов, включая официальные доки, метаданные всех Swift Packages и HIG, индексирует их локально, и через MCP отдает как контекст AI агентам.
Cupertino вытаскивает информацию с кучи ресурсов, включая официальные доки, метаданные всех Swift Packages и HIG, индексирует их локально, и через MCP отдает как контекст AI агентам.
GitHub
GitHub - mihaelamj/cupertino: A local Apple Documentation crawler and MCP server. Written in Swift.
A local Apple Documentation crawler and MCP server. Written in Swift. - mihaelamj/cupertino
🔥41💅5👍2
Apple тестирует новое отображение рекламы в App Store
Apple начали тестировать новый вид отображения рекламных позиций в списке приложений, которые теперь полностью повторяют обычную карточку, за исключением маленькой иконки "Ad" в углу. Больше темных паттернов богу темных паттернов!
Apple начали тестировать новый вид отображения рекламных позиций в списке приложений, которые теперь полностью повторяют обычную карточку, за исключением маленькой иконки "Ad" в углу. Больше темных паттернов богу темных паттернов!
💅7👍1
Проблемы Tab Bar в iOS 26
В iOS 26 в таббаре появился новый специальный вид таба – поиск, который визуально отделен от остальной панели и в целом похож на кнопку. В том и кроется проблема – из-за этой похожести в кастомных реализациях таббара туда начинают добавлять другие действия – например, создание нового элемента, что будет путать пользователей еще сильнее.
В iOS 26 в таббаре появился новый специальный вид таба – поиск, который визуально отделен от остальной панели и в целом похож на кнопку. В том и кроется проблема – из-за этой похожести в кастомных реализациях таббара туда начинают добавлять другие действия – например, создание нового элемента, что будет путать пользователей еще сильнее.
👍12💅4👎2
Skip теперь бесплатный
Про Skip, набор инструментов для транспилирования Swift в Kotlin, мы на канале говорили довольно часто. Большого адопшна у ребят так и не случилось, но главное, чего они добились – добавили Android в список официальных таргетов Swift и запустили полноценную рабочую группу вокруг проекта.
Так вот, раньше большая часть Skip была закрытой и платной, а с этой недели бизнес-модель меняется, и все выкладывается в опенсорс. Основная причина – никто не хочет платить за инструменты для разработки. Выживет ли проект дальше, пока не очень понятно, будем следить.
Про Skip, набор инструментов для транспилирования Swift в Kotlin, мы на канале говорили довольно часто. Большого адопшна у ребят так и не случилось, но главное, чего они добились – добавили Android в список официальных таргетов Swift и запустили полноценную рабочую группу вокруг проекта.
Так вот, раньше большая часть Skip была закрытой и платной, а с этой недели бизнес-модель меняется, и все выкладывается в опенсорс. Основная причина – никто не хочет платить за инструменты для разработки. Выживет ли проект дальше, пока не очень понятно, будем следить.
❤16💅4
Кастомное поведение строковой интерполяции
Помимо простой подстановки значения, со строковой интерполяцией можно делать и более интересные вещи – например, прямо на ходу исполнять какую-то логику – форматировать значение правильным образом в зависимости от его типа, валидировать его, или применять условную логику.
Помимо простой подстановки значения, со строковой интерполяцией можно делать и более интересные вещи – например, прямо на ходу исполнять какую-то логику – форматировать значение правильным образом в зависимости от его типа, валидировать его, или применять условную логику.
Nil Coalescing
Defining custom string interpolation behavior in Swift
Extend Swift’s string interpolation to define custom behavior, such as value formatting, directly inside string literals.
👍6❤3
Советы про Universal Links
👉Обязательно валидируйте ваш AASA файл против JSON схемы на CI
👉Apple легко может закешировать некорректную версию файла на своих CDN, перепроверяйте
👉Существующие тулы плохо справляются с парсингом wildcard синтаксиса Apple, так что придется писать свой парсер
👉Тестируйте на реальном staging домене с https
👉Следите за кодировкой и не используйте percent encoding
👉Обязательно валидируйте ваш AASA файл против JSON схемы на CI
👉Apple легко может закешировать некорректную версию файла на своих CDN, перепроверяйте
👉Существующие тулы плохо справляются с парсингом wildcard синтаксиса Apple, так что придется писать свой парсер
👉Тестируйте на реальном staging домене с https
👉Следите за кодировкой и не используйте percent encoding
Alberto De Bortoli
Universal Links At Scale: The Challenges Nobody Talks About
A deep dive into the practical challenges of implementing, testing, and maintaining Universal Links at scale
❤16