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

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

чат: @iOSDevsUAChat
Ідеї та пропозиції: @SergeyZhuravel
Download Telegram
💡Плани swift-foundation на 2025

Команда, що розробляє версію Foundation на Swift, поділилася планами на наступний рік:

👉 Покращення продуктивності бібліотеки, зокрема — написання нових бенчмарків
👉 Продовження переписування частин Foundation з C на Swift
👉 Допомога спільноті в виправленні незначних, але дратівливих проблем у дизайні та реалізації

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

David v.Knobelsdorff нещодавно створив шаховий додаток від початку до кінця за допомогою SwiftUI та задокументував весь процес у своєму блозі.

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

1️⃣ Мотивація та термінологія.
2️⃣ Навіщо потрібні pgn-файли і як з ними працювати.
3️⃣ Реалізація логіки.
4️⃣ Створення набору компонентів.
5️⃣ База даних та кодування ходів.
6️⃣ FSRS-алгоритм (тут можна прочитати про нього додатково).
7️⃣ Шахові головоломки.
8️⃣ Використання локального шахового движка.
9️⃣ Тестування та висновки.

🇺🇦 iOSDevUA
🔥6
💡Аналог Cursor для Xcode

Новини з Copilot не закінчуються. Вийшов в бета-версії стартап Alex Sidebar, який позиціонується як Cursor для Xcode. Що він вміє:

👉 За шорткатом відкривати чат, в контекст якого потрапляє виділений фрагмент коду
👉 У сайдбар, відкритий поруч з Xcode, можна перетягувати зображення, для якого буде згенерований код
👉 Семантичний пошук по всій кодовій базі
👉 Автоматичний фікс помилок
👉 Автоматичне створення нових файлів коду

Поки в бета-версії, спробувати можна безкоштовно.

🇺🇦 iOSDevUA
🔥3
💡Що таке краш в iOS: детальний розбір

Звичайно, факт того, що краш — це завершення роботи додатка, є очевидним.

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

📖 Ділюсь чудовою статтею, у якій складна тема розглядається з гумором (і навіть наведені 9 рівнів зла від падіння фрейм-рейту до компрометації системи в цілому).

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

🇺🇦 iOSDevUA
🔥5👍1🤩1
💡Swift проти мемів

Ладно, а тепер – справжня головна новина тижня. На форумі Swift заборонили меми, тож, за властивістю транзитивності, публікувати меми тепер заборонено і всім айосерам.

🇺🇦 iOSDevUA
💡Виявлення облич на зображеннях за допомогою фреймворку 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