💡Що відбувається, коли ви переміщаєте файл у Git?
Це цікаве питання, адже Git є невід’ємною частиною роботи кожного розробника. Хтось використовує Xcode, Tower, інші надають перевагу консолі, але розуміння принципів роботи важливе для всіх.
❗️ Часто вважають, що коміти в Git — це диференційні diffs, але це не зовсім так.
📌 У своїй статті Бруно Роша пояснює, що коміти — це snapshots. Тобто при будь-якій зміні файлу Git зберігає його повну копію в репозиторії.
📂 Окремо цікаво, як Git визначає, що два файли однакові, навіть якщо вони мають різні імена.
📖 Детальний розбір і пояснення інших цікавих моментів у статті: https://swiftrocks.com/what-happens-when-you-move-a-file-in-git
🇺🇦 iOSDevUA
Це цікаве питання, адже Git є невід’ємною частиною роботи кожного розробника. Хтось використовує Xcode, Tower, інші надають перевагу консолі, але розуміння принципів роботи важливе для всіх.
❗️ Часто вважають, що коміти в Git — це диференційні diffs, але це не зовсім так.
📌 У своїй статті Бруно Роша пояснює, що коміти — це snapshots. Тобто при будь-якій зміні файлу Git зберігає його повну копію в репозиторії.
📂 Окремо цікаво, як Git визначає, що два файли однакові, навіть якщо вони мають різні імена.
📖 Детальний розбір і пояснення інших цікавих моментів у статті: https://swiftrocks.com/what-happens-when-you-move-a-file-in-git
🇺🇦 iOSDevUA
Swiftrocks
What happens when you move a file in git?
Is renaming large folders in git repos an issue? Let's find out.
💡Стаття про те, як створити подібне menu bar в macOS за допомогою SwiftUI.
👉 https://troz.net/post/2025/mac_menu_data/
🇺🇦 iOSDevUA
👉 https://troz.net/post/2025/mac_menu_data/
🇺🇦 iOSDevUA
💡Task.sleep() vs Task.yield(): В чому різниця?
У Swift Concurrency існують два способи призупинити виконання асинхронного коду:
🛑
🔄
Попри схожу поведінку, вони мають суттєві відмінності, які важливо розуміти.
📖 В цій статті Антуан пояснює, як правильно використовувати обидва методи і в яких випадках вони будуть корисними.
🇺🇦 iOSDevUA
У Swift Concurrency існують два способи призупинити виконання асинхронного коду:
🛑
Task.sleep() — дозволяє поставити задачу «спати» на вказаний проміжок часу.🔄
Task.yield() — звільняє потік і дозволяє іншим завданням виконатися перед тим, як продовжити.Попри схожу поведінку, вони мають суттєві відмінності, які важливо розуміти.
📖 В цій статті Антуан пояснює, як правильно використовувати обидва методи і в яких випадках вони будуть корисними.
🇺🇦 iOSDevUA
💡Я не знаю, навіщо вам це потрібно, але не поділитися просто не можу.
Swift Package на Android? Будь ласка, тримайте! 🙃
Дуже детальний розбір 🔍
👉 https://skip.tools/blog/android-native-swift-packages/
🇺🇦 iOSDevUA
Swift Package на Android? Будь ласка, тримайте! 🙃
Дуже детальний розбір 🔍
👉 https://skip.tools/blog/android-native-swift-packages/
🇺🇦 iOSDevUA
Skip
Swift Everywhere: Bringing Swift Packages to Android
Skip brings SwiftUI app development to Android
This media is not supported in your browser
VIEW IN TELEGRAM
💡Noora – UI компоненти для CLI
Створювати консольні утиліти на Swift набагато приємніше, ніж використовувати Python чи Ruby. Noora — це Swift-пакет, що надає зручні графічні елементи для створення стильних консольних інтерфейсів. Серед доступних компонентів: алерти, запити “так/ні”, індикатор прогресу та багато іншого.
🔗 Детальніше можна переглянути тут: Noora Package.
🇺🇦 iOSDevUA
Створювати консольні утиліти на Swift набагато приємніше, ніж використовувати Python чи Ruby. Noora — це Swift-пакет, що надає зручні графічні елементи для створення стильних консольних інтерфейсів. Серед доступних компонентів: алерти, запити “так/ні”, індикатор прогресу та багато іншого.
🔗 Детальніше можна переглянути тут: Noora Package.
🇺🇦 iOSDevUA
❤2
💡NSHipster про Ollama
Mattt продовжує оновлювати свій, здавалося б, давно забутий блог. Тепер його статті більше присвячені різним інструментам, які можуть бути корисними не тільки iOS-розробникам, а й ширшому колу спеціалістів.
🔍 У новій публікації він розповідає про Ollama – CLI-інструмент для встановлення та керування локальними LLM-моделями.
📖 Деталі за посиланням: NSHipster про Ollama.
🇺🇦 iOSDevUA
Mattt продовжує оновлювати свій, здавалося б, давно забутий блог. Тепер його статті більше присвячені різним інструментам, які можуть бути корисними не тільки iOS-розробникам, а й ширшому колу спеціалістів.
🔍 У новій публікації він розповідає про Ollama – CLI-інструмент для встановлення та керування локальними LLM-моделями.
📖 Деталі за посиланням: NSHipster про Ollama.
🇺🇦 iOSDevUA
NSHipster
Ollama
While we wait for Apple Intelligence to arrive on our devices, something remarkable is already running on our Macs. Think of it as a locavore approach to artificial intelligence: homegrown, sustainable, and available year-round.
❤1
💡Cooperative Cancellation в Swift Concurrency
🔹 В Swift Concurrency механізм скасування та зупинки задач — це дві різні концепції.
Задача не припиняється автоматично, але рантайм повідомляє, що вона позначена як скасована. Далі рішення залишається за вами: наприклад, можна повернути пустий або частковий результат, залежно від логіки програми.
📖 Детальний розбір цієї теми доступний у статті: Cooperative Cancellation в Swift Concurrency.
🇺🇦 iOSDevUA
🔹 В Swift Concurrency механізм скасування та зупинки задач — це дві різні концепції.
Задача не припиняється автоматично, але рантайм повідомляє, що вона позначена як скасована. Далі рішення залишається за вами: наприклад, можна повернути пустий або частковий результат, залежно від логіки програми.
📖 Детальний розбір цієї теми доступний у статті: Cooperative Cancellation в Swift Concurrency.
🇺🇦 iOSDevUA
Swift with Majid
Task Cancellation in Swift Concurrency
Swift Concurrency provides a cooperative cancellation model to handle task cancellation. This week, we will learn what a cooperative cancellation model is, how to use it, and how to be a good citizen and handle it correctly.
💡Корисні інструменти для терміналу
Ось кілька цікавих утиліт, які можуть значно покращити роботу в терміналі:
🔹 Atuin – зберігає історію команд з підтримкою fuzzy-пошуку.
🔹 Starship – зручний спосіб налаштувати та кастомізувати вигляд терміналу.
🔹 fzf – інтуїтивний fuzzy-пошук по файлах.
🔹 Secure Shellfish – iOS-застосунок для SSH-підключень до вашої машини.
🇺🇦 iOSDevUA
Ось кілька цікавих утиліт, які можуть значно покращити роботу в терміналі:
🔹 Atuin – зберігає історію команд з підтримкою fuzzy-пошуку.
🔹 Starship – зручний спосіб налаштувати та кастомізувати вигляд терміналу.
🔹 fzf – інтуїтивний fuzzy-пошук по файлах.
🔹 Secure Shellfish – iOS-застосунок для SSH-підключень до вашої машини.
🇺🇦 iOSDevUA
💡Toolbar і NavigationView у SwiftUI
🔹 Використання
Якщо потрібно, щоб тулбар відображався завжди, автор статті випробував кілька підходів і знайшов робоче, хоча і трохи костильне рішення.
📖 Деталі та приклад реалізації доступні тут: https://www.joshholtz.com/blog/2025/02/08/swiftui-navigation-view-if-needed.html
🇺🇦 iOSDevUA
🔹 Використання
.toolbar у SwiftUI додає тулбар до вью, але працює це тільки в межах NavigationView.Якщо потрібно, щоб тулбар відображався завжди, автор статті випробував кілька підходів і знайшов робоче, хоча і трохи костильне рішення.
📖 Деталі та приклад реалізації доступні тут: https://www.joshholtz.com/blog/2025/02/08/swiftui-navigation-view-if-needed.html
🇺🇦 iOSDevUA
Josh Holtz
SwiftUI - Navigation View If Needed
I needed a way to add a toolbar in a view in SwiftUI without knowing if that view came from a navigation stack or not.
💡SharingGRDB – альтернатива SwiftData
Команда Pointfree представила SharingGRDB, яка може стати альтернативою SwiftData.
🔹 Схожий API, як у SwiftData, що спрощує міграцію.
🔹 Під капотом використовується SQLite, що дає більше контролю над базою даних.
🔹 Можливість прямого доступу до вмісту бази.
🛠 Приклади використання доступні у репозиторії: GitHub.
📖 Детальніше про бібліотеку можна прочитати у блозі Pointfree.
🇺🇦 iOSDevUA
Команда Pointfree представила SharingGRDB, яка може стати альтернативою SwiftData.
🔹 Схожий API, як у SwiftData, що спрощує міграцію.
🔹 Під капотом використовується SQLite, що дає більше контролю над базою даних.
🔹 Можливість прямого доступу до вмісту бази.
🛠 Приклади використання доступні у репозиторії: GitHub.
📖 Детальніше про бібліотеку можна прочитати у блозі Pointfree.
🇺🇦 iOSDevUA
www.pointfree.co
SQLiteData: A SwiftData Alternative
We are excited to announce a new open source library that can serve as a SwiftData alternative for many types of apps out there today. It provides tools that work in SwiftUI views, @Observable models, UIKit view controllers, and gives direct access to SQLite.
💡Просте налаштування модуляризації для iOS-додатків
Модульний підхід у розробці iOS-додатків має багато переваг:
🔹 Краща тестованість – кожен модуль можна перевіряти окремо.
🔹 Прискорення збірки – правильне розподілення покращує швидкість компіляції.
🔹 Легша командна робота – різні частини додатка можна розробляти незалежно.
📖 У статті детально розглянуто підхід до модульної архітектури через Core/Domain/Presentation шари. Також показано, як масштабувати цей метод для великих проектів.
🛠 Код доступний на GitHub: ModularTemplate.
🇺🇦 iOSDevUA
Модульний підхід у розробці iOS-додатків має багато переваг:
🔹 Краща тестованість – кожен модуль можна перевіряти окремо.
🔹 Прискорення збірки – правильне розподілення покращує швидкість компіляції.
🔹 Легша командна робота – різні частини додатка можна розробляти незалежно.
📖 У статті детально розглянуто підхід до модульної архітектури через Core/Domain/Presentation шари. Також показано, як масштабувати цей метод для великих проектів.
🛠 Код доступний на GitHub: ModularTemplate.
🇺🇦 iOSDevUA
💡Що нового у Swift Concurrency 6.1
Swift Concurrency поступово стає зручнішим для розробників, як і було обіцяно в пропозалі Approachable Concurrency.
Нещодавно вийшла бета Swift 6.1, яка додала нові функції, що спрощують роботу з асинхронними задачами.
📖 Детальний розбір оновлень – у цій статті.
🇺🇦 iOSDevUA
Swift Concurrency поступово стає зручнішим для розробників, як і було обіцяно в пропозалі Approachable Concurrency.
Нещодавно вийшла бета Swift 6.1, яка додала нові функції, що спрощують роботу з асинхронними задачами.
📖 Детальний розбір оновлень – у цій статті.
🇺🇦 iOSDevUA
💡Синхронне виконання задач в iOS-додатках
Більшість iOS-розробників уникають блокування основного потоку, переносячи тривалі завдання на фонові черги. Це допомагає зберегти плавність роботи інтерфейсу.
Однак, як зазначає Мэтт у своїй статті, короткотривалі процеси можуть працювати швидше саме на основному потоці. Причина в тому, що перемикання між потоками хоч і здається незначним, але все ж має певні витрати ресурсів.
Крім того, додавання паралелізму може значно ускладнити код і його підтримку.
📖 Більше деталей та практичних прикладів – у статті автора.
🇺🇦 iOSDevUA
Більшість iOS-розробників уникають блокування основного потоку, переносячи тривалі завдання на фонові черги. Це допомагає зберегти плавність роботи інтерфейсу.
Однак, як зазначає Мэтт у своїй статті, короткотривалі процеси можуть працювати швидше саме на основному потоці. Причина в тому, що перемикання між потоками хоч і здається незначним, але все ж має певні витрати ресурсів.
Крім того, додавання паралелізму може значно ускладнити код і його підтримку.
📖 Більше деталей та практичних прикладів – у статті автора.
🇺🇦 iOSDevUA
👍2❤1
💡Обхід захисту від дебагу та джейлбрейка
Деякі додатки, особливо банківські, мають вбудовані механізми безпеки, що блокують підключення дебагера або повністю відключають роботу на джейлбрейкнутому пристрої.
📖 У цій статті розглядається, як обійти такі обмеження, підключити дебагер і виконати довільний код у рантаймі.
Матеріал буде корисним для розробників, які хочуть перевірити стійкість своїх додатків до таких атак.
🇺🇦 iOSDevUA
Деякі додатки, особливо банківські, мають вбудовані механізми безпеки, що блокують підключення дебагера або повністю відключають роботу на джейлбрейкнутому пристрої.
📖 У цій статті розглядається, як обійти такі обмеження, підключити дебагер і виконати довільний код у рантаймі.
Матеріал буде корисним для розробників, які хочуть перевірити стійкість своїх додатків до таких атак.
🇺🇦 iOSDevUA
bryce.co
Debugging An Undebuggable App
This app has a surprising number of anti-debugging protections. Let's figure out how to bypass them.
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
💡Симетричні та асиметричні ефекти в SwiftUI з використанням Scroll Transition
📖 Корисний гайд про створення ефектів анімації під час скролу з Scroll Transition Modifier.
У матеріалі наведені приклади коду, що допоможуть легко впровадити такі переходи у ваш додаток.
Важливо: цей модифікатор працює лише на iOS 17 і новіших версіях.
🇺🇦 iOSDevUA
📖 Корисний гайд про створення ефектів анімації під час скролу з Scroll Transition Modifier.
У матеріалі наведені приклади коду, що допоможуть легко впровадити такі переходи у ваш додаток.
Важливо: цей модифікатор працює лише на iOS 17 і новіших версіях.
🇺🇦 iOSDevUA
👍1
💡Воркфлоу роботи з LLM у розробці
AI поступово змінює підхід до розробки, як для нових проектів, так і при роботі з існуючим кодом. У статті описано структурований підхід, який допомагає ефективно використовувати LLM у робочому процесі.
Основні етапи:
👉 Спільний брейншторм із AI у чаті – на виході отримуємо чітку специфікацію задачі.
👉 На основі спеки AI формує план атомарних завдань.
👉 Завдання передаються LLM або агенту для поетапної реалізації.
📖 Детальний опис процесу – за посиланням.
🇺🇦 iOSDevUA
AI поступово змінює підхід до розробки, як для нових проектів, так і при роботі з існуючим кодом. У статті описано структурований підхід, який допомагає ефективно використовувати LLM у робочому процесі.
Основні етапи:
👉 Спільний брейншторм із AI у чаті – на виході отримуємо чітку специфікацію задачі.
👉 На основі спеки AI формує план атомарних завдань.
👉 Завдання передаються LLM або агенту для поетапної реалізації.
📖 Детальний опис процесу – за посиланням.
🇺🇦 iOSDevUA
harper.blog
My LLM codegen workflow atm
A detailed walkthrough of my current workflow for using LLms to build software, from brainstorming through planning and execution.
💡Новий інструмент аналізу продуктивності: Processor Trace
Тривале виконання операцій у головному потоці може викликати фризи, проблеми з відображенням або навіть повну некерованість додатка.
🛠 У Xcode 16.3 Beta 2 з’явився новий інструмент Processor Trace, який дозволяє аналізувати навантаження на процесор.
З його допомогою можна отримати детальну інформацію про виконуваний код, включно з гілками виконання та інструкціями.
❗️ Обмеження:
🔹 Працює тільки на M4 та iPhone 16 і вище.
🔹 Використання трасування сповільнює пристрій приблизно на 1 %.
Цей інструмент допомагає перевірити активність CPU і вирішити, які завдання перенести у фоновий режим за допомогою Swift Concurrency або dispatch queue.
🇺🇦 iOSDevUA
Тривале виконання операцій у головному потоці може викликати фризи, проблеми з відображенням або навіть повну некерованість додатка.
🛠 У 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
📡 У цьому матеріалі показано, як реалізувати AWS Lambda на Swift для керування розумними лампочками.
Автор розбирає:
🔹 Технічні особливості реалізації
🔹 Продуктивність такого рішення
🔹 Орієнтовну вартість серверлесс-бекенду
Цікавий кейс для тих, хто хоче спробувати Swift у хмарних технологіях. 🚀
🇺🇦 iOSDevUA
Ryan Token
Serverless Swift
It’s Swift on Server, minus the server. Deployed on AWS via Swift Cloud.
💡Зміни в пошуку App Store: додадуть теги та пошук за змістом
🔍 Apple оновлює алгоритм пошуку в App Store – тепер додадуть теги, а сам пошук більше не базуватиметься лише на збігу букв, а враховуватиме сенс запитів.
🛠 Поки що оновлення доступне лише для частини додатків у США, але протягом року його планують розгорнути для всіх.
🇺🇦 iOSDevUA
🔍 Apple оновлює алгоритм пошуку в App Store – тепер додадуть теги, а сам пошук більше не базуватиметься лише на збігу букв, а враховуватиме сенс запитів.
🛠 Поки що оновлення доступне лише для частини додатків у США, але протягом року його планують розгорнути для всіх.
📊 Як це вплине на пошукові позиції додатків – дізнаємось згодом.
🇺🇦 iOSDevUA
👍1
💡Доповіді про Swift з FOSDEM 2025
Якщо вам цікаво почути нетипові доповіді про Swift, то FOSDEM – саме те, що потрібно! Тут не буде стандартних тем про iOS-розробку, зате багато про серверний Swift, embedded та технічні аспекти мови.
Ось кілька цікавих виступів, які вже доступні до перегляду:
🔗 Swift та Java: взаємодія між мовами
🔗 Ферофлюїдний музичний візуалізатор на Embedded Swift
🔗 Дистрибутивний трейсинг у серверному Swift
🇺🇦 iOSDevUA
Якщо вам цікаво почути нетипові доповіді про Swift, то FOSDEM – саме те, що потрібно! Тут не буде стандартних тем про iOS-розробку, зате багато про серверний Swift, embedded та технічні аспекти мови.
Ось кілька цікавих виступів, які вже доступні до перегляду:
🔗 Swift та Java: взаємодія між мовами
🔗 Ферофлюїдний музичний візуалізатор на Embedded Swift
🔗 Дистрибутивний трейсинг у серверному Swift
🇺🇦 iOSDevUA
archive.fosdem.org
FOSDEM 2025 - Foreign Function and Memory APIs and Swift/Java interoperability
🚀 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
● Jailbreak detection
● Static integrity checks
● Debugger detection
● Reverse engineering tools detection
● Network settings detection
Захистіть свої додатки без зусиль за допомогою SecurityKit!
🔗GitHub: https://github.com/FuturraGroup/SecurityKit
🇺🇦 iOSDevUA
GitHub
GitHub - FuturraGroup/SecurityKit: SecurityKit is a lightweight, easy-to-use Swift library that helps protect iOS apps according…
SecurityKit is a lightweight, easy-to-use Swift library that helps protect iOS apps according to the OWASP MASVS standard, chapter v8, providing an advanced security and anti-tampering layer. - Fut...
👍3