💡Життєвий цикл тестів у Swift Testing
У статті розбирається структура лайфсайкла окремих тестів та тест-сьютів у новому пакеті swift-testing.
🇺🇦 iOSDevUA
У статті розбирається структура лайфсайкла окремих тестів та тест-сьютів у новому пакеті swift-testing.
🇺🇦 iOSDevUA
Swift with Majid
Introducing Swift Testing. Lifecycle.
Any function marked with the @Test macro can be a test in the world of the Swift Testing framework. But how do you handle the lifecycle of the tests? How do you define test suites and provide setup and teardown functionality? This week, we will learn how…
💡Докладне пояснення роботи з Environment в SwiftUI
Автор статті вважає, що SwiftUI справжнім чином революціонізував розробку додатків завдяки декларативному синтаксису та реактивній обробці даних, значно спростивши створення динамічних та відзивчивих користувацьких інтерфейсів.
В основі фреймворка лежить обгортка властивостей
📖 У статті детально описані різні механізми, від класичних протоколів
А ще приділено увагу продуктивності та складним ієрархіям view в додатку.
🇺🇦 iOSDevUA
Автор статті вважає, що SwiftUI справжнім чином революціонізував розробку додатків завдяки декларативному синтаксису та реактивній обробці даних, значно спростивши створення динамічних та відзивчивих користувацьких інтерфейсів.
В основі фреймворка лежить обгортка властивостей
@Environment (і пов’язані з цим інструменти).📖 У статті детально описані різні механізми, від класичних протоколів
@EnvironmentObject і ObservableObject до відносно нових макросів @Observable і @Bindable.А ще приділено увагу продуктивності та складним ієрархіям view в додатку.
🇺🇦 iOSDevUA
👍2❤1
💡Системний промпт для Apple Intelligence
Інженери в Apple, так само як і всі інші, не дуже добре розуміють, як взагалі працює LLM.
🇺🇦 iOSDevUA
Інженери в Apple, так само як і всі інші, не дуже добре розуміють, як взагалі працює LLM.
🇺🇦 iOSDevUA
This media is not supported in your browser
VIEW IN TELEGRAM
💡Інтеграція Live Activity і Dynamic Island в iOS: докладний посібник
📖 У масштабній статті описані етапи, які дозволяють ефективно інтегрувати Live Activities та Dynamic Island у додаток для iOS.
Плюс у тому, що розглянуто кожен крок: від обмежень дизайну до обробки оновлень.
📺 Також матеріал доступний у форматі відео.
🇺🇦 iOSDevUA
📖 У масштабній статті описані етапи, які дозволяють ефективно інтегрувати Live Activities та Dynamic Island у додаток для iOS.
Плюс у тому, що розглянуто кожен крок: від обмежень дизайну до обробки оновлень.
📺 Також матеріал доступний у форматі відео.
🇺🇦 iOSDevUA
❤5👍1
🚀 Swift Pathway – офіційний гайд по мові
Apple випустили чудовий вступний гайд по Swift, який можна надсилати всім, хто цікавиться цією мовою: розбір базових концепцій та фіч, сумісність з різними платформами та безліч посилань на детальні матеріали по кожній темі.
🇺🇦 iOSDevUA
Apple випустили чудовий вступний гайд по Swift, який можна надсилати всім, хто цікавиться цією мовою: розбір базових концепцій та фіч, сумісність з різними платформами та безліч посилань на детальні матеріали по кожній темі.
🇺🇦 iOSDevUA
👍1
💡swift-format в Xcode 16
У Xcode 16 з’явився вбудований автоформаттер для коду. Автор статті порівнює його результати з SwiftLint та Prettier і розбирає, як правильно налаштувати його для вашого проєкту.
🇺🇦 iOSDevUA
У Xcode 16 з’явився вбудований автоформаттер для коду. Автор статті порівнює його результати з SwiftLint та Prettier і розбирає, як правильно налаштувати його для вашого проєкту.
🇺🇦 iOSDevUA
👍3❤1🔥1
💡Чому xcodebuild працює повільніше в GUI Xcode
Якщо ви збираєте iOS додаток на CI або з консолі, не відкриваючи Xcode, ви безпосередньо використовуєте xcodebuild. І є концептуальна проблема – інкрементальні білди працюють суттєво повільніше, ніж при збірці з Xcode. Це в основному спричинено тим, що Xcode використовує набір приватних API для того, щоб тримати сервіс постійно прогрітим, а в CLI його доводиться щоразу запускати вручну. Однак є кілька способів трохи покращити ситуацію, які і розглядаються в статті.
🇺🇦 iOSDevUA
Якщо ви збираєте iOS додаток на CI або з консолі, не відкриваючи Xcode, ви безпосередньо використовуєте xcodebuild. І є концептуальна проблема – інкрементальні білди працюють суттєво повільніше, ніж при збірці з Xcode. Це в основному спричинено тим, що Xcode використовує набір приватних API для того, щоб тримати сервіс постійно прогрітим, а в CLI його доводиться щоразу запускати вручну. Однак є кілька способів трохи покращити ситуацію, які і розглядаються в статті.
🇺🇦 iOSDevUA
Medium
Why is xcodebuild slower than the Xcode GUI?
There is a bug, but also it’s designed to be that way
❤1👍1
💡Локальні LLM для iOS розробки
У статті розглядається, як завантажити локальну безкоштовну модель, налаштувати її та інтегрувати з Alex Sidebar.
🇺🇦 iOSDevUA
У статті розглядається, як завантажити локальну безкоштовну модель, налаштувати її та інтегрувати з Alex Sidebar.
🇺🇦 iOSDevUA
Daniel's Journal
How to Set Up a Local AI Model with Xcode, Ollama, Qwen2.5-Coder & Alex Sidebar
I wanted to test out Alex Sidebar (eg a desktop client that aims to enable Cursor like features in Xcode) to explore how well a local custom model could perform during development.
💡Оптимальний спосіб пошуку входження рядка за користувацьким запитом
У різних мовах можуть бути різні варіанти написання одного й того ж терміну. Тому, при реалізації пошуку входжень підрядка за запитом користувача, найкраще скористатися функцією
🇺🇦 iOSDevUA
У різних мовах можуть бути різні варіанти написання одного й того ж терміну. Тому, при реалізації пошуку входжень підрядка за запитом користувача, найкраще скористатися функцією
localizedStandardRange(of:). Вона імітує стандартну поведінку пошуку в iOS, ігноруючи особливості написання та діакритичні знаки.🇺🇦 iOSDevUA
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
💡Підбірка експериментальних анімацій на SwiftUI з кодом
😎 Майкл Лі — дизайнер, який любить створювати прототипи з нестандартними підходами.
Нещодавно він зробив відкритий доступ до всієї колекції (і обіцяє продовжувати її поповнювати).
🛠 Ознайомитися з прикладами можна на GitHub.
🇺🇦 iOSDevUA
😎 Майкл Лі — дизайнер, який любить створювати прототипи з нестандартними підходами.
Нещодавно він зробив відкритий доступ до всієї колекції (і обіцяє продовжувати її поповнювати).
🛠 Ознайомитися з прикладами можна на GitHub.
🇺🇦 iOSDevUA
❤2
💡Оптимізація процесу компіляції та виконання тестів у Xcode
⏳ Компіляція проєктів Xcode може займати багато часу (особливо після очищення кешу).
При цьому час компіляції зазвичай зростає динамічно разом з розширенням проєкту, а швидкість збірок часто підвищується лише завдяки оновленню апаратного забезпечення, що є дорогим процесом.
Протягом багатьох років у Tuist вкладали ресурси в розв’язання цієї проблеми, використовуючи найбільш оригінальний і економічно ефективний підхід за допомогою фіч Xcode.
📖 У цій статті розробники з Tuist пояснюють, що саме може уповільнювати швидкість збірки проєктів, які кроки можна зробити та чому прев’ю в SwiftUI можуть зникати через проблеми з билд-системою самого Xcode.
🇺🇦 iOSDevUA
⏳ Компіляція проєктів Xcode може займати багато часу (особливо після очищення кешу).
При цьому час компіляції зазвичай зростає динамічно разом з розширенням проєкту, а швидкість збірок часто підвищується лише завдяки оновленню апаратного забезпечення, що є дорогим процесом.
Протягом багатьох років у Tuist вкладали ресурси в розв’язання цієї проблеми, використовуючи найбільш оригінальний і економічно ефективний підхід за допомогою фіч Xcode.
📖 У цій статті розробники з Tuist пояснюють, що саме може уповільнювати швидкість збірки проєктів, які кроки можна зробити та чому прев’ю в SwiftUI можуть зникати через проблеми з билд-системою самого Xcode.
🇺🇦 iOSDevUA
💡Параметризовані тести в swift-testing
Параметризовані тести — зручний спосіб запускати відразу кілька схожих тестів з однаковою логікою, але з різними вхідними даними. Swift Testing дає змогу задавати ці параметри за допомогою спеціального макросу, замість того щоб визначати їх вручну в тілі тесту. Це робить репорти набагато зрозумілішими.
У статті також розглядається, як управляти логікою комбінації параметрів, коли на вхід подається кілька значень одночасно.
🇺🇦 iOSDevUA
Параметризовані тести — зручний спосіб запускати відразу кілька схожих тестів з однаковою логікою, але з різними вхідними даними. Swift Testing дає змогу задавати ці параметри за допомогою спеціального макросу, замість того щоб визначати їх вручну в тілі тесту. Це робить репорти набагато зрозумілішими.
У статті також розглядається, як управляти логікою комбінації параметрів, коли на вхід подається кілька значень одночасно.
🇺🇦 iOSDevUA
This media is not supported in your browser
VIEW IN TELEGRAM
💡Реалізація пошукових підказок у SwiftUI
🔎 Модифікатор
У поєднанні з відслідковуванням історії пошуку можна створити інтуїтивно зрозумілий інтерфейс, який допоможе користувачам швидко знаходити те, що вони шукають, а також легко повертатися до раніше переглянутих елементів.
📖 У цьому матеріалі розглядається, як впровадити таку функцію в додаток поетапно:
1️⃣ Реалізація фільтрації пошуку в реальному часі.
2️⃣ Впровадження підказок.
3️⃣ Відслідковування історії пошуку.
4️⃣ Створення зручної навігації.
🇺🇦 iOSDevUA
🔎 Модифікатор
searchSuggestions(_:) — це корисна функція, яка покращує роботу пошуку в додатках для iOS.У поєднанні з відслідковуванням історії пошуку можна створити інтуїтивно зрозумілий інтерфейс, який допоможе користувачам швидко знаходити те, що вони шукають, а також легко повертатися до раніше переглянутих елементів.
📖 У цьому матеріалі розглядається, як впровадити таку функцію в додаток поетапно:
1️⃣ Реалізація фільтрації пошуку в реальному часі.
2️⃣ Впровадження підказок.
3️⃣ Відслідковування історії пошуку.
4️⃣ Створення зручної навігації.
🇺🇦 iOSDevUA
💡Як Sketch адаптував іконку для темної теми
Ідея з tinted icons загалом була хорошою, але більшість адаптованих іконок виглядають досить непривабливо. На фоні цього приклад Sketch виглядає чудово — вони не просто змінили колір іконки, а повністю переглянули її концепцію.
🇺🇦 iOSDevUA
Ідея з tinted icons загалом була хорошою, але більшість адаптованих іконок виглядають досить непривабливо. На фоні цього приклад Sketch виглядає чудово — вони не просто змінили колір іконки, а повністю переглянули її концепцію.
🇺🇦 iOSDevUA
Sketch
Oh no, I need to design a tinted iOS 18 app icon — how to do it right · Sketch Blog
Tinted app icons in iOS 18 were met concerns over visual hierarchy and brand identity. Here are a few tricks we used to make ours work and feel at home.
This media is not supported in your browser
VIEW IN TELEGRAM
💡Приклад інтеграції Natural Language: аналіз тексту та генерація градієнта на основі результату
ℹ️ Natural Language — це фреймворк, що надає набір інструментів для аналізу та обробки тексту.
Його можна використовувати, наприклад, для визначення мови, пошуку схожості між фрагментами тексту та ін.
📖 У своїй статті розглядається особливості використання цього фреймворку, наводить приклади і показує можливості застосування разом з MeshGradient.
🛠 Код прикладу доступний на GitHub.
🇺🇦 iOSDevUA
ℹ️ Natural Language — це фреймворк, що надає набір інструментів для аналізу та обробки тексту.
Його можна використовувати, наприклад, для визначення мови, пошуку схожості між фрагментами тексту та ін.
📖 У своїй статті розглядається особливості використання цього фреймворку, наводить приклади і показує можливості застосування разом з MeshGradient.
🛠 Код прикладу доступний на GitHub.
🇺🇦 iOSDevUA
❤4
💡Writing Tools в Apple Intelligence
Незабаром Apple запустить свій AI для всіх користувачів. Однією з нових можливостей стане впровадження інструментів для роботи з текстом у всіх полях введення. Зараз саме час перевірити, як ваше додаток взаємодіє з цими інструментами та чи не потрібно деякі з них вимкнути.
🇺🇦 iOSDevUA
Незабаром Apple запустить свій AI для всіх користувачів. Однією з нових можливостей стане впровадження інструментів для роботи з текстом у всіх полях введення. Зараз саме час перевірити, як ваше додаток взаємодіє з цими інструментами та чи не потрібно деякі з них вимкнути.
🇺🇦 iOSDevUA
Create with Swift
Exploring Apple Intelligence: Writing Tools
Understand Writing Tools, powered by Apple Intelligence.
❤1
This media is not supported in your browser
VIEW IN TELEGRAM
🎄Новорічна анімація на SwiftUI+AppKit
Розробник знайшов цікаве рішення, щоб додати трохи святкової атмосфери в останній місяць цього року.
🤩 Виявляється, такий ефект можна створити для Mac, і це доводить Simon B. Støvring.
Цікаво, чи зможе хтось з читачів нашого каналу відтворити цей ефект?
🇺🇦 iOSDevUA
Розробник знайшов цікаве рішення, щоб додати трохи святкової атмосфери в останній місяць цього року.
🤩 Виявляється, такий ефект можна створити для Mac, і це доводить Simon B. Støvring.
Цікаво, чи зможе хтось з читачів нашого каналу відтворити цей ефект?
🇺🇦 iOSDevUA
👍4
💡Редактор Godot на iPad
Miguel de Icaza, один з основних розробників Xamarin, останній рік працював над новим проєктом — портом редактора Godot для iPad. І ось, з’явилося перше прев’ю. Якщо у вас є планшет і ви давно хотіли спробувати себе в геймдеві — це чудова можливість!
🇺🇦 iOSDevUA
Miguel de Icaza, один з основних розробників Xamarin, останній рік працював над новим проєктом — портом редактора Godot для iPad. І ось, з’явилося перше прев’ю. Якщо у вас є планшет і ви давно хотіли спробувати себе в геймдеві — це чудова можливість!
🇺🇦 iOSDevUA
Xogot Blog
Xogot: Godot on iPad Preview
We are now ready for folks to take Xogot for a spin and help identify where we fall short of iPad user expectations
💡Корисні поради для Advent of Code на Swift
Щоразу в грудні Ерік Вастл публікує Advent of Code — захоплюючий набір завдань для написання алгоритмів.
Щодня, з 1 по 25 грудня, з’являється нове завдання.
Завдання публікуються поступово, починаючи з найпростіших і поступово ускладнюються.
🔗 Ось простий інструктаж, як приєднатися до Swift-лідерборду.
А на скріншоті кілька порад, як спростити розв’язок завдань за допомогою Swift Algorithms.
🇺🇦 iOSDevUA
Щоразу в грудні Ерік Вастл публікує Advent of Code — захоплюючий набір завдань для написання алгоритмів.
Щодня, з 1 по 25 грудня, з’являється нове завдання.
Завдання публікуються поступово, починаючи з найпростіших і поступово ускладнюються.
🔗 Ось простий інструктаж, як приєднатися до Swift-лідерборду.
А на скріншоті кілька порад, як спростити розв’язок завдань за допомогою Swift Algorithms.
🇺🇦 iOSDevUA
👍2
💡Apple хоче спростити безпеку від data-race
Здається, команда Swift почула скарги від спільноти на те, що нові механізми безпеки від data race в Swift 6 вийшли занадто складними. Нещодавно вони опублікували бачення того, як можна покращити ситуацію.
🇺🇦 iOSDevUA
Здається, команда Swift почула скарги від спільноти на те, що нові механізми безпеки від data race в Swift 6 вийшли занадто складними. Нещодавно вони опублікували бачення того, як можна покращити ситуацію.
🇺🇦 iOSDevUA
GitHub
swift-evolution/visions/approachable-concurrency.md at approachable-concurrency-vision · hborla/swift-evolution
This maintains proposals for changes and user-visible enhancements to the Swift Programming Language. - hborla/swift-evolution
💡Розтягування аудіофайлу до потрібної довжини в Swift
Ця функція може бути корисною для вирішення проблем з синхронізацією (наприклад, при перекладі оригінального файлу та генерації субтитрів).
📖 Том Локхорст і Матейс Кадейк пояснюють, чому комбінації AVMutableComposition та AVAudioUnitTimePitch недостатньо для досягнення потрібного результату. Вони описують метод, що передбачає дублювання конкретних фрагментів аудіо в обчислених точках.
🛠 Код прикладу доступний на GitHub.
🇺🇦 iOSDevUA
Ця функція може бути корисною для вирішення проблем з синхронізацією (наприклад, при перекладі оригінального файлу та генерації субтитрів).
📖 Том Локхорст і Матейс Кадейк пояснюють, чому комбінації AVMutableComposition та AVAudioUnitTimePitch недостатньо для досягнення потрібного результату. Вони описують метод, що передбачає дублювання конкретних фрагментів аудіо в обчислених точках.
🛠 Код прикладу доступний на GitHub.
🇺🇦 iOSDevUA
Nonstrict
Stretching audio by small amounts using Swift | Nonstrict
Stretching an audio file to a certain length can be useful to fix lipsync issues. Our previous approach didn't work for stretching small durations over a large amount of time. We now have a new solution.