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

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

чат: @iOSDevsUAChat
Ідеї та пропозиції: @SergeyZhuravel
Download Telegram
💡Як заборонити видаляти ваш додаток

Виявляється, в iOS є офіційний API, за допомогою якого можна заборонити видаляти ваш додаток. Він входить до Screen Time API. Але є два нюанси. По-перше, потрібно отримати спеціальний апрув від Apple, по-друге, користувач також повинен дати явну згоду на цей забор.

🇺🇦 iOSDevUA
💡Як працювати з MeshGradient у iOS 18

У iOS 18 з’явилася можливість створювати mesh-градієнти.

Загалом, це легкий у використанні спосіб створення незвичайних ефектів.

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

🇺🇦 iOSDevUA
👍2🔥2
💡Стаття про те, чим поганий UserDefaults

Заголовок трохи кричущий, звісно, а ще в кінці автор «продає» свою кастомну бібліотеку, але це вам вирішувати, пропускати цю частину чи ні. А в решті цікавими речами про UserDefaults пише. Може бути корисно 👍

👉 https://christianselig.com/2024/10/beware-userdefaults/

🇺🇦 iOSDevUA
💡SafariExtension на SwiftUI

Якби мене одразу спитали, на чому розробляються розширення для Safari, я б був впевнений, що це JavaScript. Виявляється, їх можна писати нативно на SwiftUI!

🇺🇦 iOSDevUA
😱3
💡Реалізація завантажувача файлів у SwiftUI

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

📖 Маттео Манфердіни у своєму блозі написав величезний матеріал про свій підхід до створення завантажувача файлів.

Стаття розбита на кілька частин:

1️⃣ Завантаження файлів та як відстежувати прогрес завантаження.
2️⃣ Реалізація архітектури для завантаження кількох файлів.
3️⃣ Відстежуємо прогрес за допомогою Swift Concurrency.
4️⃣ Створення інтерфейсу SwiftUI для управління завантаженням.

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

🇺🇦 iOSDevUA
🔥1
💡Огляд недавньої Server-Side Swift конференції

Нещодавно відбулася перша велика конференція, присвячена Swift на сервері. Саме на ній анонсували інтероп з Java та такі речі, як плагін для контейнеризації, про які я вже розповідав на каналі.

Тримайте статтю з коротким змістом усіх доповідей, щоб ви могли самі вирішити, на що ще звернути увагу. Я все ще дивуюся, що Things, мій улюблений туду лист, досить давно перейшов на Swift і, здається, задоволені.

🇺🇦 iOSDevUA
💡Чи знаєте ви, що таке security-scoped bookmarks?

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

👉 https://www.avanderlee.com/swift/security-scoped-bookmarks-for-url-access/

🇺🇦 iOSDevUA
💡Як зберігати мікросекунди при конвертації Date <-> String

Невелике нагадування – при конвертації string в дату і назад за допомогою DateFormatter інформація про мікросекунди втрачається. Якщо для вас вони важливі, то в статті розглядається, як зберегти їх значення.

🇺🇦 iOSDevUA
💡Епізод Swift Talk про Concurrency

Хлопці з Objc.io випустили безкоштовний епізод свого відеоблогу про Swift Concurrency, де на прикладі невеликого macOS додатку розбираються з основними функціями та помилками компіляції.

🇺🇦 iOSDevUA
💡У Apple вийшла серія туторіалів по Instruments про баги з потоками та як їх дебажити

Використовуйте Instruments для аналізу performance, використання ресурсів та поведінки ваших додатків. Дізнайтеся, як покращити відгук, зменшити використання пам’яті та аналізувати складну поведінку з часом.

👉 https://developer.apple.com/tutorials/instruments

🇺🇦 iOSDevUA
💡Підбірка доповідей з iOS Conf SG 2024

📺 Understanding our users – корисне відео, в якому розбираються основи того, що питати у користувачів, щоб розвивати продукт у потрібному напрямку.

📺 Swift beyond Apple platforms — про можливості та проблеми використання Swift від веб-розробки до роботи в embedded-системах.

📺 The Swift Actor Pitfall: Understanding and Managing Reentrancy – розбір неочевидної та простої помилки, пов’язаної зі Swift Concurrency.

Не можна пройти повз і міграцію кодової бази на async/await.

🔗 А весь плейліст з доповідями доступний ось тут.

🇺🇦 iOSDevUA
💡Як працювати зі Swift Data та Core Data у фоновому режимі

Хоча SwiftData набагато простіше в налаштуванні, фреймворк успадкував багато проблем Core Data (включаючи ті, які стримували багатьох розробників від використання Core Data у своїх додатках).

Одна з найбільших проблем — управління моделями у різних контекстах. Моделі Swift Data та Core Data небезпечно використовувати разом у різних потоках (вони не є Sendable і не thread-safe). Apple навіть вказує на це у своєму керівництві (посилання).

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

🇺🇦 iOSDevUA
💡Нові статті в документації Apple

Тримайте пачку жовтневих оновлень документації Apple:

👉 Win-back offers – спеціальний тип підписок, спрямований на повернення користувачів, які від вас пішли
👉 Camera Control: HIG та документація
👉 Гайд по підтримці різних розмірів годинників
👉 Нові семпли для visionOS

🇺🇦 iOSDevUA
👍1
💡Genesis – новий генератор статичних сайтів на Swift

Генератор статичних сайтів – один із найпростіших способів створити той самий блог, про який ви давно мріяли. А якщо цей генератор написаний на Swift, ви ще можете погратися з незвичайним застосуванням улюбленої мови.

Genesis – ще один такий генератор. Від альтернатив його відрізняє максимально проста реалізація, відсутність якихось зовнішніх залежностей та робота зі рядками замість складних DSL.

🇺🇦 iOSDevUA
Сергій, iOS розробник, ділиться своїм досвідом оптимізації обробки відео в додатку для соціальних мереж.

Він пояснює використання AVFoundation, асинхронне завантаження ресурсів, а також впровадження AsyncDisplayKit для покращення продуктивності при роботі з UICollectionView.

👉 https://dou.ua/forums/topic/50877/

🇺🇦 iOSDevUA
👍4🔥21
💡Нова вимога до оновлень додатків в ЄС

Починаючи з 17-го жовтня для відправки оновлень додатків в App Store на території Європейського Союзу (ЄС) власникам акаунтів або адміністраторам програми Apple Developer Program необхідно ввести статус торговця в App Store Connect.

Вам треба буде вибрати ваш статус — трейдер / не трейдер.

Якщо ви є торговцем, вам потрібно буде надати інформацію про себе, перш ніж ви зможете відправити свій додаток на перевірку.

Від 17 лютого 2025 року додатки без статусу торговця будуть видалятися з App Store в ЄС до тих пір, поки статус торговця не буде надано та перевірено з метою дотримання Закону про цифрові послуги.

👉 https://developer.apple.com/news/?id=yfacfeal

🇺🇦 iOSDevUA
💡Рекомендації з оптимізації продуктивності

GitHub-репозиторій з підбіркою статей, інструментів та кейсів оптимізації різних аспектів продуктивності.

🇺🇦 iOSDevUA
Якщо вам раптом дуже хочеться (з якоїсь причини) написати сайт на Swift, звісно, не без HTML, то ось матеріал про те, як це зробити. Тут йдеться про Swift result builder, тому можливо сайт вам і не потрібен, але хоча б про цю частину мови дізнаєтесь 👍

👉 https://www.hackingwithswift.com/articles/266/build-your-next-website-in-swift

🇺🇦 iOSDevUA
💡Малювання кастомних фігур у SwiftUI: приклади та код

У SwiftUI протокол Shape визначає контур нашої в’ю.

Він використовується для малювання та проектування власних фігур або контролів різної складності.

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

🇺🇦 iOSDevUA
Офіційний GitHub Copilot для Xcode 🥳

Open Source і інтегрований безпосередньо в Xcode. Поки в беті.
Встановлюється як додаток — інструкція в README.

👉 https://github.com/github/CopilotForXcode

🇺🇦 iOSDevUA
🔥4