🇺🇦 iOS Dev UA - спільнота iOS розробників
384 subscribers
399 photos
42 videos
9 files
960 links
Перша україномовна спільнота iOS розробників 🇺🇦

👨‍💻Цікаві матеріали зі світу розробки для продуктів Apple.
Статті по розробці на Swift та SwiftUI. Огляд нових технологій в розробці від Apple.

чат: @iOSDevsUAChat
Ідеї та пропозиції: @SergeyZhuravel
Download Telegram
💡swift-format в Xcode 16

У Xcode 16 з’явився вбудований автоформаттер для коду. Автор статті порівнює його результати з SwiftLint та Prettier і розбирає, як правильно налаштувати його для вашого проєкту.

🇺🇦 iOSDevUA
👍31🔥1
💡Чому xcodebuild працює повільніше в GUI Xcode

Якщо ви збираєте iOS додаток на CI або з консолі, не відкриваючи Xcode, ви безпосередньо використовуєте xcodebuild. І є концептуальна проблема – інкрементальні білди працюють суттєво повільніше, ніж при збірці з Xcode. Це в основному спричинено тим, що Xcode використовує набір приватних API для того, щоб тримати сервіс постійно прогрітим, а в CLI його доводиться щоразу запускати вручну. Однак є кілька способів трохи покращити ситуацію, які і розглядаються в статті.

🇺🇦 iOSDevUA
1👍1
💡Оптимальний спосіб пошуку входження рядка за користувацьким запитом

У різних мовах можуть бути різні варіанти написання одного й того ж терміну. Тому, при реалізації пошуку входжень підрядка за запитом користувача, найкраще скористатися функцією localizedStandardRange(of:). Вона імітує стандартну поведінку пошуку в iOS, ігноруючи особливості написання та діакритичні знаки.

🇺🇦 iOSDevUA
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
💡Підбірка експериментальних анімацій на SwiftUI з кодом

😎 Майкл Лі — дизайнер, який любить створювати прототипи з нестандартними підходами.

Нещодавно він зробив відкритий доступ до всієї колекції (і обіцяє продовжувати її поповнювати).

🛠 Ознайомитися з прикладами можна на GitHub.

🇺🇦 iOSDevUA
2
💡Оптимізація процесу компіляції та виконання тестів у Xcode

Компіляція проєктів Xcode може займати багато часу (особливо після очищення кешу).

При цьому час компіляції зазвичай зростає динамічно разом з розширенням проєкту, а швидкість збірок часто підвищується лише завдяки оновленню апаратного забезпечення, що є дорогим процесом.

Протягом багатьох років у Tuist вкладали ресурси в розв’язання цієї проблеми, використовуючи найбільш оригінальний і економічно ефективний підхід за допомогою фіч Xcode.

📖 У цій статті розробники з Tuist пояснюють, що саме може уповільнювати швидкість збірки проєктів, які кроки можна зробити та чому прев’ю в SwiftUI можуть зникати через проблеми з билд-системою самого Xcode.

🇺🇦 iOSDevUA
💡Параметризовані тести в swift-testing

Параметризовані тести — зручний спосіб запускати відразу кілька схожих тестів з однаковою логікою, але з різними вхідними даними. Swift Testing дає змогу задавати ці параметри за допомогою спеціального макросу, замість того щоб визначати їх вручну в тілі тесту. Це робить репорти набагато зрозумілішими.

У статті також розглядається, як управляти логікою комбінації параметрів, коли на вхід подається кілька значень одночасно.

🇺🇦 iOSDevUA
This media is not supported in your browser
VIEW IN TELEGRAM
💡Реалізація пошукових підказок у SwiftUI

🔎 Модифікатор searchSuggestions(_:) — це корисна функція, яка покращує роботу пошуку в додатках для iOS.

У поєднанні з відслідковуванням історії пошуку можна створити інтуїтивно зрозумілий інтерфейс, який допоможе користувачам швидко знаходити те, що вони шукають, а також легко повертатися до раніше переглянутих елементів.

📖 У цьому матеріалі розглядається, як впровадити таку функцію в додаток поетапно:

1️⃣ Реалізація фільтрації пошуку в реальному часі.
2️⃣ Впровадження підказок.
3️⃣ Відслідковування історії пошуку.
4️⃣ Створення зручної навігації.

🇺🇦 iOSDevUA
💡Як Sketch адаптував іконку для темної теми

Ідея з tinted icons загалом була хорошою, але більшість адаптованих іконок виглядають досить непривабливо. На фоні цього приклад Sketch виглядає чудово — вони не просто змінили колір іконки, а повністю переглянули її концепцію.

🇺🇦 iOSDevUA
This media is not supported in your browser
VIEW IN TELEGRAM
💡Приклад інтеграції Natural Language: аналіз тексту та генерація градієнта на основі результату

ℹ️ Natural Language — це фреймворк, що надає набір інструментів для аналізу та обробки тексту.

Його можна використовувати, наприклад, для визначення мови, пошуку схожості між фрагментами тексту та ін.

📖 У своїй статті розглядається особливості використання цього фреймворку, наводить приклади і показує можливості застосування разом з MeshGradient.

🛠 Код прикладу доступний на GitHub.

🇺🇦 iOSDevUA
4
💡Writing Tools в Apple Intelligence

Незабаром Apple запустить свій AI для всіх користувачів. Однією з нових можливостей стане впровадження інструментів для роботи з текстом у всіх полях введення. Зараз саме час перевірити, як ваше додаток взаємодіє з цими інструментами та чи не потрібно деякі з них вимкнути.

🇺🇦 iOSDevUA
1
This media is not supported in your browser
VIEW IN TELEGRAM
🎄Новорічна анімація на SwiftUI+AppKit

Розробник знайшов цікаве рішення, щоб додати трохи святкової атмосфери в останній місяць цього року.

🤩 Виявляється, такий ефект можна створити для Mac, і це доводить Simon B. Støvring.

Цікаво, чи зможе хтось з читачів нашого каналу відтворити цей ефект?

🇺🇦 iOSDevUA
👍4
💡Редактор Godot на iPad

Miguel de Icaza, один з основних розробників Xamarin, останній рік працював над новим проєктом — портом редактора Godot для iPad. І ось, з’явилося перше прев’ю. Якщо у вас є планшет і ви давно хотіли спробувати себе в геймдеві — це чудова можливість!

🇺🇦 iOSDevUA
💡Корисні поради для Advent of Code на Swift

Щоразу в грудні Ерік Вастл публікує Advent of Code — захоплюючий набір завдань для написання алгоритмів.

Щодня, з 1 по 25 грудня, з’являється нове завдання.

Завдання публікуються поступово, починаючи з найпростіших і поступово ускладнюються.

🔗 Ось простий інструктаж, як приєднатися до Swift-лідерборду.

А на скріншоті кілька порад, як спростити розв’язок завдань за допомогою Swift Algorithms.

🇺🇦 iOSDevUA
👍2
💡Apple хоче спростити безпеку від data-race

Здається, команда Swift почула скарги від спільноти на те, що нові механізми безпеки від data race в Swift 6 вийшли занадто складними. Нещодавно вони опублікували бачення того, як можна покращити ситуацію.

🇺🇦 iOSDevUA
💡Розтягування аудіофайлу до потрібної довжини в Swift

Ця функція може бути корисною для вирішення проблем з синхронізацією (наприклад, при перекладі оригінального файлу та генерації субтитрів).

📖 Том Локхорст і Матейс Кадейк пояснюють, чому комбінації AVMutableComposition та AVAudioUnitTimePitch недостатньо для досягнення потрібного результату. Вони описують метод, що передбачає дублювання конкретних фрагментів аудіо в обчислених точках.

🛠 Код прикладу доступний на GitHub.

🇺🇦 iOSDevUA
💡Дайджест 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
💡Створення клону додатку Messages за допомогою SwiftUI

📖 У статті автор ділиться своїм підходом до верстки списку чатів, вибору вкладень та розглядає особливості реалізації «баблів» повідомлень за допомогою Path.

🇺🇦 iOSDevUA
This media is not supported in your browser
VIEW IN TELEGRAM
💡Візуальні експерименти зі SwiftUI

Невелика колекція експериментів з UI/UX на SwiftUI, серед яких можна знайти досить нестандартні рішення.

🇺🇦 iOSDevUA
👍1
💡SwiftUI анімації в UIKit

З iOS 18 з’явилася можливість використовувати SwiftUI Animation API для анімації UIKit вьюшок. Для цього достатньо створити об’єкт анімації і передати його в метод UIView.animate().

🇺🇦 iOSDevUA
👍2
💡В який день тижня сабмітити додаток, щоб швидше пройти рев’ю

Команда Runway, через продукт якої релізиться велика кількість додатків, проаналізувала кореляцію між днями тижня, коли додатки відправляються на рев’ю, і часом, який займає їх перевірка. Ось основні тренди:

👉 Найшвидше рев’ю проходить у четвер, в середньому 4-5 годин.
👉 На другому місці за швидкістю — середа та субота, 5-6 годин.
👉 Найдовше рев’ю триває по п’ятницях і неділях, 12-16 годин.

До того ж у них є зручний сервіс з аналізом поточної швидкості роботи команди рев’ю.

🇺🇦 iOSDevUA