💡 Як пришвидшити CI-збірки за допомогою slot-warmed caching
Slot-warmed caching — це підхід, за якого формується кеш збірки для конкретних шляхів і повторно використовується в наступних прогонах CI, замість того щоб збирати все з нуля. За словами автора, такий підхід дозволив прискорити збірки у 10 разів, суттєво скоротивши час і витрати на CI.
🇺🇦 iOSDevUA
Slot-warmed caching — це підхід, за якого формується кеш збірки для конкретних шляхів і повторно використовується в наступних прогонах CI, замість того щоб збирати все з нуля. За словами автора, такий підхід дозволив прискорити збірки у 10 разів, суттєво скоротивши час і витрати на CI.
🇺🇦 iOSDevUA
Jeffverkoeyen
10× faster Xcode CI builds with slot caching — featherless software design
🔥 Як ми прискорили розробку на iOS за допомогою Cursor AI
У цій статті я ділюся реальним досвідом з нашого продакшн-процесу: як ми частково замінили Xcode на Cursor, чому це стало одним із найвідчутніших левел-апів у iOS-workflow і що саме дало приріст у швидкості. Розповідаю про практичні нюанси: налаштування Cursor під iOS, роботу з великим кодом, різницю між вбудованим AI в Xcode 26 і тим, як Cursor з GPT-5.2 реально тримає контекст і економить час без зайвого «тертя». Якщо вам цікаво, як AI може не просто “бути”, а реально прискорювати розробку, — стаття буде корисною.
🇺🇦 iOSDevUA
У цій статті я ділюся реальним досвідом з нашого продакшн-процесу: як ми частково замінили Xcode на Cursor, чому це стало одним із найвідчутніших левел-апів у iOS-workflow і що саме дало приріст у швидкості. Розповідаю про практичні нюанси: налаштування Cursor під iOS, роботу з великим кодом, різницю між вбудованим AI в Xcode 26 і тим, як Cursor з GPT-5.2 реально тримає контекст і економить час без зайвого «тертя». Якщо вам цікаво, як AI може не просто “бути”, а реально прискорювати розробку, — стаття буде корисною.
🇺🇦 iOSDevUA
👍9🔥1
💡Replay — тестування на реальному мережевому трафіку
Replay — нова бібліотека від Mattt, яка дозволяє записувати реальний мережевий трафік вашого застосунку, зберігати його у файл, вирізати/маскувати секрети, а потім відтворювати цей трафік для тестування мережевого шару.
Зручно, коли хочеться перевіряти HTTP-логіку на максимально “живих” сценаріях — без ручного мокання й нескінченних стабів.
🇺🇦 iOSDevUA
Replay — нова бібліотека від Mattt, яка дозволяє записувати реальний мережевий трафік вашого застосунку, зберігати його у файл, вирізати/маскувати секрети, а потім відтворювати цей трафік для тестування мережевого шару.
Зручно, коли хочеться перевіряти HTTP-логіку на максимально “живих” сценаріях — без ручного мокання й нескінченних стабів.
🇺🇦 iOSDevUA
💡Практичне використання Apple Foundation Models: підсумовування тексту
Хоча при роботі з LLM завжди залишаються типові ризики (помилки, галюцинації тощо), Foundation Models Framework може бути дуже корисним для прикладних задач — від резюмування тексту до простих сценаріїв генерації.
📖 У цьому розширеному гайді розглянуто один із найпрактичніших кейсів — підсумовування тексту:
https://www.kodeco.com/49841134-using-apple-foundation-models-to-summarize-text/
Окремо показано, як:
• перевіряти доступність фреймворку та моделі на пристрої,
• налаштовувати обмеження й поведінку генерації,
• і використати готовий демо-проєкт як основу для інтеграції у свій застосунок.
🇺🇦 iOSDevUA
Хоча при роботі з LLM завжди залишаються типові ризики (помилки, галюцинації тощо), Foundation Models Framework може бути дуже корисним для прикладних задач — від резюмування тексту до простих сценаріїв генерації.
📖 У цьому розширеному гайді розглянуто один із найпрактичніших кейсів — підсумовування тексту:
https://www.kodeco.com/49841134-using-apple-foundation-models-to-summarize-text/
Окремо показано, як:
• перевіряти доступність фреймворку та моделі на пристрої,
• налаштовувати обмеження й поведінку генерації,
• і використати готовий демо-проєкт як основу для інтеграції у свій застосунок.
🇺🇦 iOSDevUA
kodeco.com
Using Apple Foundation Models to Summarize Text
Build an on-device text summarizer using Apple Foundation Models and SwiftUI, with step-by-step guidance on availability checks and summarization.
👍1
💡Розбір ієрархії жестів у SwiftUI
📖 Корисна стаття: https://www.createwithswift.com/understanding-gesture-hierarchy/ — у ній пояснюють, як у SwiftUI працює ієрархія жестів, як керувати їхніми пріоритетами та як уникати конфліктів, коли кілька жестів змагаються за обробку одного й того ж торкання.
🇺🇦 iOSDevUA
📖 Корисна стаття: https://www.createwithswift.com/understanding-gesture-hierarchy/ — у ній пояснюють, як у SwiftUI працює ієрархія жестів, як керувати їхніми пріоритетами та як уникати конфліктів, коли кілька жестів змагаються за обробку одного й того ж торкання.
🇺🇦 iOSDevUA
Create with Swift
Understanding gesture hierarchy
Learn how to set up the hierarchy of gestures in views and subviews within a SwiftUI app.
❤1👍1
⚡️ Gemini стане новим «ядром» Siri — офіційна заява Apple і Google
Google та Apple опублікували спільну заяву про багаторічну співпрацю: наступне покоління Apple Foundation Models буде базуватися на моделях Gemini та хмарних технологіях Google, а це має підсилити майбутні фічі Apple Intelligence, включно з більш персоналізованою Siri.
🗓 За повідомленнями профільних медіа, Siri «наступного покоління» очікують разом з iOS 26.4, яку ймовірно випустять для всіх у березні або квітні.
Дуже сподіваюся, що під це оновлення підтягнуть і корисні апдейти для розробників — зокрема, в рамках Foundation Models Framework, щоб нові можливості можна було нормально інтегрувати у продакшн-застосунки.
🇺🇦 iOSDevUA
Google та Apple опублікували спільну заяву про багаторічну співпрацю: наступне покоління Apple Foundation Models буде базуватися на моделях Gemini та хмарних технологіях Google, а це має підсилити майбутні фічі Apple Intelligence, включно з більш персоналізованою Siri.
🗓 За повідомленнями профільних медіа, Siri «наступного покоління» очікують разом з iOS 26.4, яку ймовірно випустять для всіх у березні або квітні.
Дуже сподіваюся, що під це оновлення підтягнуть і корисні апдейти для розробників — зокрема, в рамках Foundation Models Framework, щоб нові можливості можна було нормально інтегрувати у продакшн-застосунки.
🇺🇦 iOSDevUA
👍2👀2😱1
💡«Секретний» спосіб знайти .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