Как устроен NSVisualEffectView
Автор статьи хотел повторить внешний вид панелей в macOS Control Center в своем собственном приложении. Чтобы это сделать, ему пришлось реверс-инжинирить нативный NSVisualEffectView и создать его полную кастомизируемую копию, которую можно изучить на GitHub.
Автор статьи хотел повторить внешний вид панелей в macOS Control Center в своем собственном приложении. Чтобы это сделать, ему пришлось реверс-инжинирить нативный NSVisualEffectView и создать его полную кастомизируемую копию, которую можно изучить на GitHub.
❤43🔥2
Fucking Approachable Swift Concurrency
Еще одна попытка объяснить базовые ментальные модели за Swift Concurrency, в том числе, как работает изоляция, на простых примерах кода и пончтных метафорах.
Еще одна попытка объяснить базовые ментальные модели за Swift Concurrency, в том числе, как работает изоляция, на простых примерах кода и пончтных метафорах.
Fucking Approachable Swift Concurrency
A no-bullshit guide to Swift concurrency. Learn async/await, actors, Sendable, and MainActor with simple mental models. No jargon, just clear explanations.
🔥27👍3💅1
SwiftUI Previews в Zed
Если вы уже попробовали разрабатывать под iOS в редакторе Zed, то держите мини-гайд по тому, как завести там превью для SwiftUI.
Если вы уже попробовали разрабатывать под iOS в редакторе Zed, то держите мини-гайд по тому, как завести там превью для SwiftUI.
Telegram
iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT
Как тестировать iOS приложения в Zed
Держите продолжение серии статей про то, как настроить Zed для полноценной iOS разработки. В этот раз про то, как настроить запуск тестов для приложений и Swift пакетов.
Прошлая статья – тут.
Держите продолжение серии статей про то, как настроить Zed для полноценной iOS разработки. В этот раз про то, как настроить запуск тестов для приложений и Swift пакетов.
Прошлая статья – тут.
👎14🔥5💅1
Как ускорить сборки на CI со slot-warmed caching
Slot-warmed caching – это способ строить билд кеш для определенных путей и переиспользовать его при последующих сборках, чтобы не пересобирать все с нуля. Автору это помогло ускорить сборки в 10 раз.
Slot-warmed caching – это способ строить билд кеш для определенных путей и переиспользовать его при последующих сборках, чтобы не пересобирать все с нуля. Автору это помогло ускорить сборки в 10 раз.
Jeffverkoeyen
10× faster Xcode CI builds with slot caching — featherless software design
❤65🔥8👍7
Почему Codable медленный
Раз в год обязательно нужно критиковать Codable, поэтому давайте сразу 1 января эту галочку и поставим. Разработчики из Тинькова рассказывают, как они решили, что именно Codable стал бутылочным горлышком их перфоманса, строили бенчмарки, и готовили PR в swift-foundation.
Раз в год обязательно нужно критиковать Codable, поэтому давайте сразу 1 января эту галочку и поставим. Разработчики из Тинькова рассказывают, как они решили, что именно Codable стал бутылочным горлышком их перфоманса, строили бенчмарки, и готовили PR в swift-foundation.
Хабр
Все не так с Codable
Привет, Хабр! На связи Кристиан Бенуа, iOS-разработчиĸ в Т-Банĸе. Быстродействие мобильных приложений — один из критериев, влияющих на успех не только приложения, но и всего бизнеса. Проводилось...
👍40❤7
This media is not supported in your browser
VIEW IN TELEGRAM
Cause & Effect Graph для SwiftUI
В Xcode 26 появился новый профилировщик для SwiftUI. Для любой вьюшки вы можете посмотреть, какие конкретно обновления стейта вызвали каждый ререндер.
В Xcode 26 появился новый профилировщик для SwiftUI. Для любой вьюшки вы можете посмотреть, какие конкретно обновления стейта вызвали каждый ререндер.
👍58🔥8❤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™
🔥56👎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💅24👍13👎2❤1
Как устроен пайплайн рендеринга
Отличный разбор того, как устроен пайплайн рендеринга на разных платформах от уровня пикселей до лейаута кнопок в привычном вам SwiftUI. Помимо общей теоретической базы мне понравилось сравнение конкретных хиапов пайплайна для SwiftUI, Compose, React и WebGL.
Отличный разбор того, как устроен пайплайн рендеринга на разных платформах от уровня пикселей до лейаута кнопок в привычном вам SwiftUI. Помимо общей теоретической базы мне понравилось сравнение конкретных хиапов пайплайна для SwiftUI, Compose, React и WebGL.
👍24❤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🔥35👎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…
🔥20👍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❤6
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❤1
Гайд по промптингу локальных моделей
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.
👍22💅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👍23❤1💅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👍3
Apple тестирует новое отображение рекламы в App Store
Apple начали тестировать новый вид отображения рекламных позиций в списке приложений, которые теперь полностью повторяют обычную карточку, за исключением маленькой иконки "Ad" в углу. Больше темных паттернов богу темных паттернов!
Apple начали тестировать новый вид отображения рекламных позиций в списке приложений, которые теперь полностью повторяют обычную карточку, за исключением маленькой иконки "Ad" в углу. Больше темных паттернов богу темных паттернов!
💅8👍1