💡Чому 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.
💡Дайджест Swift Evolution: травень-листопад
Оскільки ми заговорили про оновлення в Swift, ось дайджест з коротким розбором всіх останніх важливих прийнятих пропозицій:
👉SE-0436: Objective-C implementations in Swift
👉SE-0438: Metatype Keypaths
👉SE-0439: Allow trailing comma in comma-separated lists
👉SE-0443: Precise Control Flags over Compiler Warnings
👉SE-0444: Member import visibility
👉SE-0445: Improving String.Index's printed descriptions
🇺🇦 iOSDevUA
Оскільки ми заговорили про оновлення в Swift, ось дайджест з коротким розбором всіх останніх важливих прийнятих пропозицій:
👉SE-0436: Objective-C implementations in Swift
👉SE-0438: Metatype Keypaths
👉SE-0439: Allow trailing comma in comma-separated lists
👉SE-0443: Precise Control Flags over Compiler Warnings
👉SE-0444: Member import visibility
👉SE-0445: Improving String.Index's printed descriptions
🇺🇦 iOSDevUA
Substack
Swift Evolution Monthly: May-November 2024
Discover the latest Swift updates, from Objective-C compatibility improvements to metatype keypaths, trailing commas, and new compiler controls—plus a must-have app for tracking proposals!
💡Створення клону додатку Messages за допомогою SwiftUI
📖 У статті автор ділиться своїм підходом до верстки списку чатів, вибору вкладень та розглядає особливості реалізації «баблів» повідомлень за допомогою Path.
🇺🇦 iOSDevUA
📖 У статті автор ділиться своїм підходом до верстки списку чатів, вибору вкладень та розглядає особливості реалізації «баблів» повідомлень за допомогою Path.
🇺🇦 iOSDevUA
This media is not supported in your browser
VIEW IN TELEGRAM
💡Візуальні експерименти зі SwiftUI
Невелика колекція експериментів з UI/UX на SwiftUI, серед яких можна знайти досить нестандартні рішення.
🇺🇦 iOSDevUA
Невелика колекція експериментів з UI/UX на SwiftUI, серед яких можна знайти досить нестандартні рішення.
🇺🇦 iOSDevUA
👍1
💡SwiftUI анімації в UIKit
З iOS 18 з’явилася можливість використовувати SwiftUI Animation API для анімації UIKit вьюшок. Для цього достатньо створити об’єкт анімації і передати його в метод
🇺🇦 iOSDevUA
З iOS 18 з’явилася можливість використовувати SwiftUI Animation API для анімації UIKit вьюшок. Для цього достатньо створити об’єкт анімації і передати його в метод
UIView.animate().🇺🇦 iOSDevUA
Nil Coalescing
Animate UIKit views with SwiftUI animations in iOS 18
With iOS 18, we can now use SwiftUI animations to animate UIKit views, making it easier to bring SwiftUI’s expressive and flexible animations into UIKit projects.
👍2
💡В який день тижня сабмітити додаток, щоб швидше пройти рев’ю
Команда Runway, через продукт якої релізиться велика кількість додатків, проаналізувала кореляцію між днями тижня, коли додатки відправляються на рев’ю, і часом, який займає їх перевірка. Ось основні тренди:
👉 Найшвидше рев’ю проходить у четвер, в середньому 4-5 годин.
👉 На другому місці за швидкістю — середа та субота, 5-6 годин.
👉 Найдовше рев’ю триває по п’ятницях і неділях, 12-16 годин.
До того ж у них є зручний сервіс з аналізом поточної швидкості роботи команди рев’ю.
🇺🇦 iOSDevUA
Команда Runway, через продукт якої релізиться велика кількість додатків, проаналізувала кореляцію між днями тижня, коли додатки відправляються на рев’ю, і часом, який займає їх перевірка. Ось основні тренди:
👉 Найшвидше рев’ю проходить у четвер, в середньому 4-5 годин.
👉 На другому місці за швидкістю — середа та субота, 5-6 годин.
👉 Найдовше рев’ю триває по п’ятницях і неділях, 12-16 годин.
До того ж у них є зручний сервіс з аналізом поточної швидкості роботи команди рев’ю.
🇺🇦 iOSDevUA
LinkedIn
Which day of the week should you submit your app to Apple to get reviewed most quickly?
A team asked me this the other day, so…
A team asked me this the other day, so…
Which day of the week should you submit your app to Apple to get reviewed most quickly?
A team asked me this the other day, so I've been digging into Runway's review time data to see if there's a clear answer.
Turns out there are some noticeable trends:…
A team asked me this the other day, so I've been digging into Runway's review time data to see if there's a clear answer.
Turns out there are some noticeable trends:…
💡Підсвітка коду в SwiftUI
Розбір того, як реалізувати підсвітку Swift коду у віджеті Text в SwiftUI за допомогою пакета swift-syntax.
🇺🇦 iOSDevUA
Розбір того, як реалізувати підсвітку Swift коду у віджеті Text в SwiftUI за допомогою пакета swift-syntax.
🇺🇦 iOSDevUA
❤2