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

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

чат: @iOSDevsUAChat
Ідеї та пропозиції: @SergeyZhuravel
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
🕹 Гра «Життя» Конвея: реалізація на MetalKit

Ендрю Глейв продемонстрував, як створити візуалізацію гри «Життя» за допомогою MetalKit. В основі реалізації використовуються vertex та fragment шейдери, що дозволяє досягти плавної та ефективної графіки.

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

🇺🇦 iOSDevUA
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
💡Реалізація шейдера з презентації Apple для iPhone 16e

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

Розробник Bobby Bobak вирішив перенести цей ефект у SwiftUI – він додав можливість налаштовувати рівень заломлення та блюр.

📖 Код реалізації доступний на GitHub.
📱 Оригінальний пост від Стіва Хейні.

🇺🇦 iOSDevUA
4🔥1🤯1
💡Як вимкнути анімації в додатку при ввімкненні відповідної опції в Accessibility

📖 Короткий навчальний матеріал про те, як реалізувати підтримку відключення анімацій у вашому додатку, якщо користувач активував відповідний перемикач у налаштуваннях Accessibility.

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

🇺🇦 iOSDevUA
This media is not supported in your browser
VIEW IN TELEGRAM
💡Безкоштовна альтернатива App Center Distribution

🚀 Emerge відкрили безкоштовний доступ до свого сервісу для поширення iOS та Android білдів. Це чудова альтернатива App Center Distribution, особливо з такими умовами:

✔️ 5000 білдів на місяць
✔️ Необмежена кількість користувачів
✔️ SSO
✔️ SDK для автоматичних сповіщень про нові версії

📖 Детальніше про сервіс можна почитати тут.

🇺🇦 iOSDevUA
😱3
💡Робоча група Swift для Android

🚀 Використання Swift для розробки під Android набирає оберти! Спільнота сформувала робочу групу, до якої увійшли розробники Skip та інші ентузіасти.

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

🔗 Обговорення ведеться тут 👉 https://forums.swift.org/t/swift-on-android-working-group/77780.

🇺🇦 iOSDevUA
👍1
💡Як перевірити state restoration у SwiftUI

У SwiftUI відновлення стану реалізується через SceneStorage. Однак протестувати його вручну складно, адже при закритті через app switcher стейт скидається.

Щоб перевірити збереження стану, виконайте такі кроки:

1️⃣ Запустіть додаток у симуляторі
2️⃣ Змініть стейт (наприклад, перемістіться по навігації)
3️⃣ Натисніть Home, щоб відправити додаток у бекграунд
4️⃣ Натисніть Stop у Xcode
5️⃣ Запустіть додаток знову та перевірте, чи збережений стан відновився

📖 Детальніше про це в матеріалі 👉 https://nilcoalescing.com/blog/TestingSceneStorageStatePersistenceInXcode/

🇺🇦 iOSDevUA
👍21
💡Що відкритий Swift Build означає для екосистеми

📖 Команда Tuist підготувала детальний аналіз одного з головних анонсів останнього місяця.

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

💡 Один із потенційних наступних кроків — створення універсального DSL для опису проєктів, який зможе замінити Package.swift і xcodeproj.

🇺🇦 iOSDevUA
🔥1
🎬Детальний гайд по Apple Search Ads: налаштування та оптимізація

📖 Вийшов корисний матеріал про Apple Search Ads, у якому пояснюється, як правильно налаштувати рекламу, оптимізувати кампанії та підвищити ефективність просування додатків.

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

https://www.youtube.com/watch?v=W6_bN3AZo_s

🇺🇦 iOSDevUA
💡Що відбувається, коли ви переміщаєте файл у Git?

Це цікаве питання, адже Git є невід’ємною частиною роботи кожного розробника. Хтось використовує Xcode, Tower, інші надають перевагу консолі, але розуміння принципів роботи важливе для всіх.

❗️ Часто вважають, що коміти в Git — це диференційні diffs, але це не зовсім так.

📌 У своїй статті Бруно Роша пояснює, що коміти — це snapshots. Тобто при будь-якій зміні файлу Git зберігає його повну копію в репозиторії.

📂 Окремо цікаво, як Git визначає, що два файли однакові, навіть якщо вони мають різні імена.

📖 Детальний розбір і пояснення інших цікавих моментів у статті: https://swiftrocks.com/what-happens-when-you-move-a-file-in-git

🇺🇦 iOSDevUA
💡Стаття про те, як створити подібне menu bar в macOS за допомогою SwiftUI.

👉 https://troz.net/post/2025/mac_menu_data/

🇺🇦 iOSDevUA
💡Task.sleep() vs Task.yield(): В чому різниця?

У Swift Concurrency існують два способи призупинити виконання асинхронного коду:
🛑 Task.sleep() — дозволяє поставити задачу «спати» на вказаний проміжок часу.
🔄 Task.yield() — звільняє потік і дозволяє іншим завданням виконатися перед тим, як продовжити.

Попри схожу поведінку, вони мають суттєві відмінності, які важливо розуміти.

📖 В цій статті Антуан пояснює, як правильно використовувати обидва методи і в яких випадках вони будуть корисними.

🇺🇦 iOSDevUA
💡Я не знаю, навіщо вам це потрібно, але не поділитися просто не можу.

Swift Package на Android? Будь ласка, тримайте! 🙃

Дуже детальний розбір 🔍

👉 https://skip.tools/blog/android-native-swift-packages/

🇺🇦 iOSDevUA
This media is not supported in your browser
VIEW IN TELEGRAM
💡Noora – UI компоненти для CLI

Створювати консольні утиліти на Swift набагато приємніше, ніж використовувати Python чи Ruby. Noora — це Swift-пакет, що надає зручні графічні елементи для створення стильних консольних інтерфейсів. Серед доступних компонентів: алерти, запити “так/ні”, індикатор прогресу та багато іншого.

🔗 Детальніше можна переглянути тут: Noora Package.

🇺🇦 iOSDevUA
2
💡NSHipster про Ollama

Mattt продовжує оновлювати свій, здавалося б, давно забутий блог. Тепер його статті більше присвячені різним інструментам, які можуть бути корисними не тільки iOS-розробникам, а й ширшому колу спеціалістів.

🔍 У новій публікації він розповідає про Ollama – CLI-інструмент для встановлення та керування локальними LLM-моделями.

📖 Деталі за посиланням: NSHipster про Ollama.

🇺🇦 iOSDevUA
1
💡Cooperative Cancellation в Swift Concurrency

🔹 В Swift Concurrency механізм скасування та зупинки задач — це дві різні концепції.

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

📖 Детальний розбір цієї теми доступний у статті: Cooperative Cancellation в Swift Concurrency.

🇺🇦 iOSDevUA
💡Корисні інструменти для терміналу

Ось кілька цікавих утиліт, які можуть значно покращити роботу в терміналі:

🔹 Atuin – зберігає історію команд з підтримкою fuzzy-пошуку.
🔹 Starship – зручний спосіб налаштувати та кастомізувати вигляд терміналу.
🔹 fzf – інтуїтивний fuzzy-пошук по файлах.
🔹 Secure Shellfish – iOS-застосунок для SSH-підключень до вашої машини.

🇺🇦 iOSDevUA
💡Toolbar і NavigationView у SwiftUI

🔹 Використання .toolbar у SwiftUI додає тулбар до вью, але працює це тільки в межах NavigationView.

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

📖 Деталі та приклад реалізації доступні тут: https://www.joshholtz.com/blog/2025/02/08/swiftui-navigation-view-if-needed.html

🇺🇦 iOSDevUA
💡SharingGRDB – альтернатива SwiftData

Команда Pointfree представила SharingGRDB, яка може стати альтернативою SwiftData.

🔹 Схожий API, як у SwiftData, що спрощує міграцію.
🔹 Під капотом використовується SQLite, що дає більше контролю над базою даних.
🔹 Можливість прямого доступу до вмісту бази.

🛠 Приклади використання доступні у репозиторії: GitHub.
📖 Детальніше про бібліотеку можна прочитати у блозі Pointfree.

🇺🇦 iOSDevUA
💡Просте налаштування модуляризації для iOS-додатків

Модульний підхід у розробці iOS-додатків має багато переваг:

🔹 Краща тестованість – кожен модуль можна перевіряти окремо.
🔹 Прискорення збірки – правильне розподілення покращує швидкість компіляції.
🔹 Легша командна робота – різні частини додатка можна розробляти незалежно.

📖 У статті детально розглянуто підхід до модульної архітектури через Core/Domain/Presentation шари. Також показано, як масштабувати цей метод для великих проектів.

🛠 Код доступний на GitHub: ModularTemplate.

🇺🇦 iOSDevUA
💡Що нового у Swift Concurrency 6.1

Swift Concurrency поступово стає зручнішим для розробників, як і було обіцяно в пропозалі Approachable Concurrency.

Нещодавно вийшла бета Swift 6.1, яка додала нові функції, що спрощують роботу з асинхронними задачами.

📖 Детальний розбір оновлень – у цій статті.

🇺🇦 iOSDevUA