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

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

чат: @iOSDevsUAChat
Ідеї та пропозиції: @SergeyZhuravel
Download Telegram
💡Виявлення облич на зображеннях за допомогою фреймворку Vision

Розпізнавання облич може бути корисним інструментом для багатьох додатків.

Наприклад, в системному «Фото» від Apple це використовується для організації спеціальної колекції.

В iOS 18 для розробників з’явилася можливість використовувати новий запит FaceObservation, який спрощує роботу з такими завданнями.

📖 Доступне пояснення та приклад використання є в цій статті.

🇺🇦 iOSDevUA
🔥1
💡Невеликий матеріал про те, як запитати у Apple прискорене рев’ю вашого додатку. Наприклад, тому що ви терміново хочете випустити фікс критичної помилки 😱
Сподіваюся, що багато хто вже знає про це, але в будь-якому випадку ось:

👉 https://www.polpiella.dev/expedited-app-reviews

🇺🇦 iOSDevUA
👍5
This media is not supported in your browser
VIEW IN TELEGRAM
💡Ефект переливаючогося стикера на Metal+Swift

🤩 Знайшов блискучу (в прямому і переносному сенсі) реалізацію фойл-ефекту. До речі, автор пише, що намагався відтворити те, що можна побачити в різних картках, наприклад, у покемонах.

Використано одразу кілька шейдерів і модифікацій всередині.

📖 Бонусом йде репозиторій з кодом (з коробки доступно для налаштування кілька параметрів).

🇺🇦 iOSDevUA
5
💡Докладне пояснення роботи з Environment в SwiftUI

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

В основі фреймворка лежить обгортка властивостей @Environment (і пов’язані з цим інструменти).

📖 У статті детально описані різні механізми, від класичних протоколів @EnvironmentObject і ObservableObject до відносно нових макросів @Observable і @Bindable.

А ще приділено увагу продуктивності та складним ієрархіям view в додатку.

🇺🇦 iOSDevUA
👍21
💡Системний промпт для Apple Intelligence

Інженери в 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
5👍1
🚀 Swift Pathway – офіційний гайд по мові

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

🇺🇦 iOSDevUA
👍1
💡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