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

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

чат: @iOSDevsUAChat
Ідеї та пропозиції: @SergeyZhuravel
Download Telegram
💡Що відбувається, коли ви переміщаєте файл у 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
💡Синхронне виконання задач в iOS-додатках

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

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

Крім того, додавання паралелізму може значно ускладнити код і його підтримку.

📖 Більше деталей та практичних прикладіву статті автора.

🇺🇦 iOSDevUA
👍21
💡Обхід захисту від дебагу та джейлбрейка

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

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

Матеріал буде корисним для розробників, які хочуть перевірити стійкість своїх додатків до таких атак.

🇺🇦 iOSDevUA
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
💡Симетричні та асиметричні ефекти в SwiftUI з використанням Scroll Transition

📖 Корисний гайд про створення ефектів анімації під час скролу з Scroll Transition Modifier.

У матеріалі наведені приклади коду, що допоможуть легко впровадити такі переходи у ваш додаток.

Важливо: цей модифікатор працює лише на iOS 17 і новіших версіях.

🇺🇦 iOSDevUA
👍1
💡Воркфлоу роботи з LLM у розробці

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

Основні етапи:

👉 Спільний брейншторм із AI у чаті – на виході отримуємо чітку специфікацію задачі.
👉 На основі спеки AI формує план атомарних завдань.
👉 Завдання передаються LLM або агенту для поетапної реалізації.

📖 Детальний опис процесу – за посиланням.

🇺🇦 iOSDevUA
💡Новий інструмент аналізу продуктивності: Processor Trace

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

🛠 У Xcode 16.3 Beta 2 з’явився новий інструмент Processor Trace, який дозволяє аналізувати навантаження на процесор.

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

❗️ Обмеження:
🔹 Працює тільки на M4 та iPhone 16 і вище.
🔹 Використання трасування сповільнює пристрій приблизно на 1 %.

Цей інструмент допомагає перевірити активність CPU і вирішити, які завдання перенести у фоновий режим за допомогою Swift Concurrency або dispatch queue.

🇺🇦 iOSDevUA
1
💡Serverless Swift: створення AWS Lambda на Swift

📡 У цьому матеріалі показано, як реалізувати AWS Lambda на Swift для керування розумними лампочками.

Автор розбирає:
🔹 Технічні особливості реалізації
🔹 Продуктивність такого рішення
🔹 Орієнтовну вартість серверлесс-бекенду

Цікавий кейс для тих, хто хоче спробувати Swift у хмарних технологіях. 🚀

🇺🇦 iOSDevUA
💡Зміни в пошуку App Store: додадуть теги та пошук за змістом

🔍 Apple оновлює алгоритм пошуку в App Store – тепер додадуть теги, а сам пошук більше не базуватиметься лише на збігу букв, а враховуватиме сенс запитів.

🛠 Поки що оновлення доступне лише для частини додатків у США, але протягом року його планують розгорнути для всіх.

📊 Як це вплине на пошукові позиції додатків – дізнаємось згодом.

🇺🇦 iOSDevUA
👍1
💡Доповіді про Swift з FOSDEM 2025

Якщо вам цікаво почути нетипові доповіді про Swift, то FOSDEM – саме те, що потрібно! Тут не буде стандартних тем про iOS-розробку, зате багато про серверний Swift, embedded та технічні аспекти мови.

Ось кілька цікавих виступів, які вже доступні до перегляду:

🔗 Swift та Java: взаємодія між мовами
🔗 Ферофлюїдний музичний візуалізатор на Embedded Swift
🔗 Дистрибутивний трейсинг у серверному Swift

🇺🇦 iOSDevUA
🚀 SecurityKit легка та проста у використанні бібліотеки Swift, яка допомагає захистити iOS додатки відповідно до стандарту OWASP MASVS, розділ v8, забезпечуючи вдосконалений рівень безпеки та захисту від несанкціонованого доступу.

● Jailbreak detection
● Static integrity checks
● Debugger detection
● Reverse engineering tools detection
● Network settings detection

Захистіть свої додатки без зусиль за допомогою SecurityKit!
🔗GitHub: https://github.com/FuturraGroup/SecurityKit

🇺🇦 iOSDevUA
👍3