💡«Секретний» спосіб знайти .md-файли з документацією для Swift Concurrency / SwiftUI / MapKit та іншого
Зараз бачу нову хвилю хайпу навколо інструкцій для Claude та інших агентів — деякі репозиторії з такими «скілами» вже збирають тисячі зірок (наприклад: https://github.com/Dimillian/Skills).
Але є простіший лайфхак: можна буквально за пару кліків дістатися до внутрішніх Apple markdown-інструкцій, які використовує Xcode Intelligence.
Шлях ось такий:
У цій директорії лежать .md-доки для FoundationModels, StoreKit, Swift Concurrency Updates та багато інших тем — дуже зручно підживлювати ними своїх агентів.
🇺🇦 iOSDevUA
Зараз бачу нову хвилю хайпу навколо інструкцій для Claude та інших агентів — деякі репозиторії з такими «скілами» вже збирають тисячі зірок (наприклад: https://github.com/Dimillian/Skills).
Але є простіший лайфхак: можна буквально за пару кліків дістатися до внутрішніх Apple markdown-інструкцій, які використовує Xcode Intelligence.
Шлях ось такий:
/Xcode.app/Contents/PlugIns/IDEIntelligenceChat.framework/Versions/A/Resources/AdditionalDocumentation
У цій директорії лежать .md-доки для FoundationModels, StoreKit, Swift Concurrency Updates та багато інших тем — дуже зручно підживлювати ними своїх агентів.
🇺🇦 iOSDevUA
❤7
💡Поглиблений розбір міграцій даних у SwiftData
Як зазначає Донні Волш (і з цим важко не погодитись), «легкі» міграції чудово працюють, доки ви не додаєте нових складних вимог: наприклад, просто додаєте опціональні поля, видаляєте їх або перейменовуєте.
Але щойно потрібно додати нову опціональну властивість з іншою логікою, змінити типи, або зробити щось складніше — ви переходите в зону ручних міграцій. У таких випадках рятує
У статті розібрано кілька практичних сценаріїв:
🔘 Як вводити версіонування через VersionedSchema
🔘 Коли саме варто створювати нову версію схеми
🔘 Коли SwiftData мігрує автоматично, а коли краще використовувати SchemaMigrationPlan і MigrationStage
🔘 Як виконувати по-справжньому складні ручні міграції
🇺🇦 iOSDevUA
Як зазначає Донні Волш (і з цим важко не погодитись), «легкі» міграції чудово працюють, доки ви не додаєте нових складних вимог: наприклад, просто додаєте опціональні поля, видаляєте їх або перейменовуєте.
Але щойно потрібно додати нову опціональну властивість з іншою логікою, змінити типи, або зробити щось складніше — ви переходите в зону ручних міграцій. У таких випадках рятує
SchemaMigrationPlan із налаштовуваними етапами міграції (MigrationStage).У статті розібрано кілька практичних сценаріїв:
🔘 Як вводити версіонування через VersionedSchema
🔘 Коли саме варто створювати нову версію схеми
🔘 Коли SwiftData мігрує автоматично, а коли краще використовувати SchemaMigrationPlan і MigrationStage
🔘 Як виконувати по-справжньому складні ручні міграції
🇺🇦 iOSDevUA
❤3
🛠 Dime — open-source трекер фінансів у стилі Apple гайдлайнів
З власного досвіду помітив: найчастіше перші pet-проєкти у розробників — це або облік фінансів, або погодний застосунок, трекер звичок чи нотатки. Навіть у таких, здавалося б, простих темах інколи народжуються справжні шедеври на кшталт Clear: https://apps.apple.com/cy/app/clear-minimalist-todo-lists/id493136154.
До того ж подібні задачі часто трапляються й у тестових — у різних варіаціях на 4–6 годин роботи.
Тому ділюся Dime — застосунком із відкритим кодом (⭐️ ~1500 зірок), де можна подивитися на один із якісних підходів до реалізації фінансового трекера. У репозиторії є приклади віджетів, iCloud-синхронізації, роботи з темами, базової архітектури та інших корисних речей.
🇺🇦 iOSDevUA
З власного досвіду помітив: найчастіше перші pet-проєкти у розробників — це або облік фінансів, або погодний застосунок, трекер звичок чи нотатки. Навіть у таких, здавалося б, простих темах інколи народжуються справжні шедеври на кшталт Clear: https://apps.apple.com/cy/app/clear-minimalist-todo-lists/id493136154.
До того ж подібні задачі часто трапляються й у тестових — у різних варіаціях на 4–6 годин роботи.
Тому ділюся Dime — застосунком із відкритим кодом (⭐️ ~1500 зірок), де можна подивитися на один із якісних підходів до реалізації фінансового трекера. У репозиторії є приклади віджетів, iCloud-синхронізації, роботи з темами, базової архітектури та інших корисних речей.
🇺🇦 iOSDevUA
🚀 Skip став безкоштовним і опенсорсним
Раніше для створення застосунків у Skip потрібна була платна підписка та ліцензійний ключ. Тепер команда вирішила перейти на повністю відкриту модель, щоб зберегти довіру розробницької спільноти й забезпечити масове поширення технології. Навіть якщо основна команда колись не зможе активно розвивати продукт, ком’юніті зможе підтримувати Skip та застосунки, які від нього залежать.
Що це означає для тих, хто вже користується Skip або тільки придивлявся?
✅ більше немає ліцензійних ключів
✅ немає ліцензійних угод для кінцевих користувачів
✅ немає тріалу чи обмеженого «ознайомчого» періоду
🛠 Відкрито вихідний код рушія Skipstone: https://github.com/skiptools
🌐 Сайт переїжджає на: https://skip.dev/
📖 Повну заяву творців можна прочитати тут: https://skip.dev/blog/skip-is-free/
🇺🇦 iOSDevUA
Раніше для створення застосунків у Skip потрібна була платна підписка та ліцензійний ключ. Тепер команда вирішила перейти на повністю відкриту модель, щоб зберегти довіру розробницької спільноти й забезпечити масове поширення технології. Навіть якщо основна команда колись не зможе активно розвивати продукт, ком’юніті зможе підтримувати Skip та застосунки, які від нього залежать.
Що це означає для тих, хто вже користується Skip або тільки придивлявся?
✅ більше немає ліцензійних ключів
✅ немає ліцензійних угод для кінцевих користувачів
✅ немає тріалу чи обмеженого «ознайомчого» періоду
🛠 Відкрито вихідний код рушія Skipstone: https://github.com/skiptools
🌐 Сайт переїжджає на: https://skip.dev/
📖 Повну заяву творців можна прочитати тут: https://skip.dev/blog/skip-is-free/
🇺🇦 iOSDevUA
GitHub
Skip
Build iPhone and Android apps from a single Swift and SwiftUI codebase - Skip
❤4👍1
💡Що не так з іконками в macOS
У macOS Tahoe дизайнери Apple взялися за, м’яко кажучи, сумнівну ініціативу — додати іконки майже до всіх пунктів системних меню. На думку автора, це виглядає як непотрібне й практично нездійсненне завдання, яке призвело до купи візуальних проблем.
За посиланням — велике есе з детальним розбором помилок і прикладів того, як у багатьох місцях порушуються базові принципи Apple Human Interface Guidelines (HIG).
🇺🇦 iOSDevUA
У macOS Tahoe дизайнери Apple взялися за, м’яко кажучи, сумнівну ініціативу — додати іконки майже до всіх пунктів системних меню. На думку автора, це виглядає як непотрібне й практично нездійсненне завдання, яке призвело до купи візуальних проблем.
За посиланням — велике есе з детальним розбором помилок і прикладів того, як у багатьох місцях порушуються базові принципи Apple Human Interface Guidelines (HIG).
🇺🇦 iOSDevUA
👍2
💡Asset Catalog для VS Code
Якщо ви поступово переїжджаєте з Xcode у VS Code або Cursor, ось ще одне корисне розширення в колекцію: переглядач .xcassets. Воно повертає частину звичного досвіду — можна швидко відкривати та переглядати Asset Catalog прямо в редакторі, без постійного перемикання назад у Xcode.
🇺🇦 iOSDevUA
Якщо ви поступово переїжджаєте з Xcode у VS Code або Cursor, ось ще одне корисне розширення в колекцію: переглядач .xcassets. Воно повертає частину звичного досвіду — можна швидко відкривати та переглядати Asset Catalog прямо в редакторі, без постійного перемикання назад у Xcode.
🇺🇦 iOSDevUA
🔥3❤1
📦 iOS-скіли для AI-агентів
Буквально кілька місяців тому в AI-агентів з’явилася нова можливість — skills. Це набір промптів, скриптів і тулів, які підвантажуються «ліниво» та допомагають агенту краще справлятися зі спеціалізованими задачами.
Тут — готовий набір скілів саме для iOS-розробки: як писати красивий і продуктивний код на SwiftUI, як готувати релізи й публікацію в стор, та багато іншого.
Окремо рекомендую скіл для Swift Concurrency від AvdLee:
https://github.com/AvdLee/Swift-Concurrency-Agent-Skill
🇺🇦 iOSDevUA
Буквально кілька місяців тому в AI-агентів з’явилася нова можливість — skills. Це набір промптів, скриптів і тулів, які підвантажуються «ліниво» та допомагають агенту краще справлятися зі спеціалізованими задачами.
Тут — готовий набір скілів саме для iOS-розробки: як писати красивий і продуктивний код на SwiftUI, як готувати релізи й публікацію в стор, та багато іншого.
Окремо рекомендую скіл для Swift Concurrency від AvdLee:
https://github.com/AvdLee/Swift-Concurrency-Agent-Skill
🇺🇦 iOSDevUA
GitHub
GitHub - Dimillian/Skills: My Codex Skills
My Codex Skills. Contribute to Dimillian/Skills development by creating an account on GitHub.
❤4
💡Як працює пайплайн рендерингу
Дуже класний розбір того, як влаштований рендеринг-пайплайн на різних платформах — від рівня пікселів і GPU до лейауту кнопок у звичному SwiftUI. Окрім хорошої теоретичної бази, особливо сподобалося порівняння конкретних етапів пайплайна для SwiftUI, Jetpack Compose, React і WebGL — наочно видно, де підходи схожі, а де принципово різні.
🇺🇦 iOSDevUA
Дуже класний розбір того, як влаштований рендеринг-пайплайн на різних платформах — від рівня пікселів і GPU до лейауту кнопок у звичному SwiftUI. Окрім хорошої теоретичної бази, особливо сподобалося порівняння конкретних етапів пайплайна для SwiftUI, Jetpack Compose, React і WebGL — наочно видно, де підходи схожі, а де принципово різні.
🇺🇦 iOSDevUA
👍1
📖 Як деплоїти в TestFlight напряму з Codex Web
З появою асинхронних агентів стає реально розробляти взагалі без того, щоб постійно чіпати MacBook. У цій статті показано, як за допомогою Codex Web: зробити PR, запустити збірку через Xcode Cloud, і одразу ж автоматично залити білд у TestFlight для тестування.
🇺🇦 iOSDevUA
З появою асинхронних агентів стає реально розробляти взагалі без того, щоб постійно чіпати MacBook. У цій статті показано, як за допомогою Codex Web: зробити PR, запустити збірку через Xcode Cloud, і одразу ж автоматично залити білд у TestFlight для тестування.
🇺🇦 iOSDevUA
Medium
How to deploy TestFlight app from Codex Web automatically
Using Xcode Cloud workflow
👍1
💡Вчимося працювати з пакетом swift-subprocess
Swift Subprocess — відносно новий пакет, який суттєво спрощує запуск термінальних команд і зовнішніх процесів прямо зі Swift-коду. У статті розбирається, як з його допомогою:
👉 запускати CLI-програму з бандла для macOS
👉 передавати аргументи
👉 задавати робочу директорію
👉 організовувати вивід (stdout/stderr), включно з повідомленнями про помилки
👉 перевіряти, чи запуск завершився успішно
🇺🇦 iOSDevUA
Swift Subprocess — відносно новий пакет, який суттєво спрощує запуск термінальних команд і зовнішніх процесів прямо зі Swift-коду. У статті розбирається, як з його допомогою:
👉 запускати CLI-програму з бандла для macOS
👉 передавати аргументи
👉 задавати робочу директорію
👉 організовувати вивід (stdout/stderr), включно з повідомленнями про помилки
👉 перевіряти, чи запуск завершився успішно
🇺🇦 iOSDevUA
❤2👍1
📖 Dependency mirroring у SwiftPM
Swift Package Manager дозволяє підміняти віддалені залежності їхніми локальними копіями прямо з CLI через команду
👉 Усе налаштовується через термінал — без відкриття Xcode і ручного «перетягування» папок
👉
👉 Дзеркала застосовуються одразу до всіх проєктів, які використовують ці залежності
🇺🇦 iOSDevUA
Swift Package Manager дозволяє підміняти віддалені залежності їхніми локальними копіями прямо з CLI через команду
swift package config set-mirror. Це зручно з кількох причин:👉 Усе налаштовується через термінал — без відкриття Xcode і ручного «перетягування» папок
👉
Package.swift чіпати не потрібно: конфіг дзеркал зберігається окремо👉 Дзеркала застосовуються одразу до всіх проєктів, які використовують ці залежності
🇺🇦 iOSDevUA
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…
❤2
💡Як зробити використання C-бібліотек у Swift зручнішим
В екосистемі софту є величезна кількість цікавих, корисних і навіть кумедних бібліотек на C. І хоча теоретично їх можна переписати на Swift, найчастіше в цьому немає потреби — Swift має пряму сумісність із C, тож після мінімального налаштування такі бібліотеки можна викликати прямо зі Swift-коду.
Дуг Ґреґор, який працює над компілятором і рантаймом Swift, підготував великий матеріал на офіційному сайті: з прикладами інтеграції, поясненням module map, та списком типових підводних каменів, які можуть виникнути під час підключення C-коду.
📖 Повний гайд тут: https://www.swift.org/blog/improving-usability-of-c-libraries-in-swift/
🇺🇦 iOSDevUA
В екосистемі софту є величезна кількість цікавих, корисних і навіть кумедних бібліотек на C. І хоча теоретично їх можна переписати на Swift, найчастіше в цьому немає потреби — Swift має пряму сумісність із C, тож після мінімального налаштування такі бібліотеки можна викликати прямо зі Swift-коду.
Дуг Ґреґор, який працює над компілятором і рантаймом Swift, підготував великий матеріал на офіційному сайті: з прикладами інтеграції, поясненням module map, та списком типових підводних каменів, які можуть виникнути під час підключення C-коду.
📖 Повний гайд тут: https://www.swift.org/blog/improving-usability-of-c-libraries-in-swift/
🇺🇦 iOSDevUA
❤1
📖 Swift Language Reference у форматі книги
Офіційну документацію зі Swift красиво зверстали за всіма типографічними правилами й виклали у PDF. Тож якщо ви давно хотіли мати Swift як “настільну книгу” — тепер така можливість є!
🇺🇦 iOSDevUA
Офіційну документацію зі Swift красиво зверстали за всіма типографічними правилами й виклали у PDF. Тож якщо ви давно хотіли мати Swift як “настільну книгу” — тепер така можливість є!
🇺🇦 iOSDevUA
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.
👍3
🔥 Застосунки для Windows можна буде писати на Swift
Нещодавно оголосили про створення нової Windows Workgroup:
https://www.swift.org/blog/announcing-windows-workgroup/
Windows уже є офіційно підтримуваною платформою для Swift (ще з 2020 року), і за цей час було досягнуто помітного прогресу. Тепер робоча група сфокусується на наступному:
• покращення підтримки Windows в офіційному дистрибутиві Swift
• рекомендації щодо розвитку ключових пакетів на кшталт Foundation і Dispatch
• формування бачення та рекомендацій Swift щодо подальшої підтримки Windows
• пошук і опис найкращих практик інтеграції Swift з Windows API, а також пакування Swift-бібліотек у Windows-застосунки
🇺🇦 iOSDevUA
Нещодавно оголосили про створення нової Windows Workgroup:
https://www.swift.org/blog/announcing-windows-workgroup/
Windows уже є офіційно підтримуваною платформою для Swift (ще з 2020 року), і за цей час було досягнуто помітного прогресу. Тепер робоча група сфокусується на наступному:
• покращення підтримки Windows в офіційному дистрибутиві Swift
• рекомендації щодо розвитку ключових пакетів на кшталт Foundation і Dispatch
• формування бачення та рекомендацій Swift щодо подальшої підтримки Windows
• пошук і опис найкращих практик інтеграції Swift з Windows API, а також пакування Swift-бібліотек у Windows-застосунки
🇺🇦 iOSDevUA
Swift.org
Announcing the Windows Workgroup
We are excited to announce the creation of the Windows workgroup!
❤2
📦 Cupertino — MCP-сервер для документації Apple
Cupertino збирає дані з багатьох джерел — включно з офіційною документацією Apple, метаданими всіх Swift-пакетів і HIG — локально індексує їх, а потім через MCP віддає цей контекст AI-агентам. Зручний спосіб «підживити» агентів актуальними доками без ручного копіпасту й браузерного хаосу.
🇺🇦 iOSDevUA
Cupertino збирає дані з багатьох джерел — включно з офіційною документацією Apple, метаданими всіх Swift-пакетів і HIG — локально індексує їх, а потім через MCP віддає цей контекст AI-агентам. Зручний спосіб «підживити» агентів актуальними доками без ручного копіпасту й браузерного хаосу.
🇺🇦 iOSDevUA
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
🔥2
💡Тим часом у Xcode 26.3 показали, як працювати з агентами
У новому 5-хвилинному відео коротко пояснюють, як використовувати OpenAI Codex та Claude Agent для спільної роботи над складними багатоетапними задачами.
Зокрема, показують, як Xcode дозволяє агентам створювати проєкти, запускати тести та шукати документацію Apple — і все це через Model Context Protocol (MCP).
📺 Відео тут: https://www.youtube.com/watch?v=oV6mC8Rt1kY
🇺🇦 iOSDevUA
У новому 5-хвилинному відео коротко пояснюють, як використовувати OpenAI Codex та Claude Agent для спільної роботи над складними багатоетапними задачами.
Зокрема, показують, як Xcode дозволяє агентам створювати проєкти, запускати тести та шукати документацію Apple — і все це через Model Context Protocol (MCP).
📺 Відео тут: https://www.youtube.com/watch?v=oV6mC8Rt1kY
🇺🇦 iOSDevUA
❤1😁1
📖 Проблеми Tab Bar в iOS 26
У iOS 26 в Tab Bar з’явився новий спеціальний елемент — вкладка пошуку, яка візуально відокремлена від інших і більше схожа на окрему кнопку. І саме в цьому криється проблема: через таку “кнопкову” форму в кастомних таббарах розробники починають додавати туди інші дії — наприклад, створення нового елемента. У результаті це ще більше плутає користувачів, бо ламає очікувану логіку навігації.
🇺🇦 iOSDevUA
У iOS 26 в Tab Bar з’явився новий спеціальний елемент — вкладка пошуку, яка візуально відокремлена від інших і більше схожа на окрему кнопку. І саме в цьому криється проблема: через таку “кнопкову” форму в кастомних таббарах розробники починають додавати туди інші дії — наприклад, створення нового елемента. У результаті це ще більше плутає користувачів, бо ламає очікувану логіку навігації.
🇺🇦 iOSDevUA
😢5
💡Swift Actors: 6 підводних каменів, у які потрапляють навіть досвідчені розробники
Коли Apple представила актори, один із головних меседжів звучав майже як обіцянка: «проблемам гонок даних — кінець». Але на практиці все виявилось значно складнішим.
Після серії експериментів з акторами Рафал Дубіель зібрав список типових пасток, у які регулярно влітають навіть сильні інженери. Частина з них погано задокументована, а деякі — взагалі легко вводять в оману через неочевидну поведінку.
📖 Повністю статтю можна прочитати тут
🇺🇦 iOSDevUA
Коли Apple представила актори, один із головних меседжів звучав майже як обіцянка: «проблемам гонок даних — кінець». Але на практиці все виявилось значно складнішим.
Після серії експериментів з акторами Рафал Дубіель зібрав список типових пасток, у які регулярно влітають навіть сильні інженери. Частина з них погано задокументована, а деякі — взагалі легко вводять в оману через неочевидну поведінку.
📖 Повністю статтю можна прочитати тут
🇺🇦 iOSDevUA
👍2
📖 Поради щодо Universal Links
👉 Обов’язково валідуйте ваш AASA-файл проти JSON-схеми прямо на CI.
👉 Apple може легко закешувати некоректну версію файлу на своїх CDN — тому завжди переперевіряйте, що роздається назовні.
👉 Існуючі інструменти погано парсять wildcard-синтаксис Apple, тож, ймовірно, доведеться писати власний парсер.
👉 Тестуйте на реальному staging-домені з HTTPS, а не лише локально.
👉 Слідкуйте за кодуванням і не використовуйте percent encoding — це часто ламає матчинг.
🇺🇦 iOSDevUA
👉 Обов’язково валідуйте ваш AASA-файл проти JSON-схеми прямо на CI.
👉 Apple може легко закешувати некоректну версію файлу на своїх CDN — тому завжди переперевіряйте, що роздається назовні.
👉 Існуючі інструменти погано парсять wildcard-синтаксис Apple, тож, ймовірно, доведеться писати власний парсер.
👉 Тестуйте на реальному staging-домені з HTTPS, а не лише локально.
👉 Слідкуйте за кодуванням і не використовуйте percent encoding — це часто ламає матчинг.
🇺🇦 iOSDevUA
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
📖 Гайд з промптингу локальних моделей у Foundation Models Framework
Apple опублікувала офіційну документацію про те, як правильно писати промпти для моделей, доступних через Foundation Models Framework. У гайді пояснюють, як формулювати запити так, щоб модель краще дотримувалась інструкцій, а також коли варто виносити умовну логіку в код, замість того щоб намагатися «впихнути» її в промпт.
🇺🇦 iOSDevUA
Apple опублікувала офіційну документацію про те, як правильно писати промпти для моделей, доступних через Foundation Models Framework. У гайді пояснюють, як формулювати запити так, щоб модель краще дотримувалась інструкцій, а також коли варто виносити умовну логіку в код, замість того щоб намагатися «впихнути» її в промпт.
🇺🇦 iOSDevUA
Apple Developer Documentation
Prompting an on-device foundation model | Apple Developer Documentation
Tailor your prompts to get effective results from an on-device model.
❤2