💡Немає нічого гіршого за Xcode
Якщо раптом забули — ось нагадування: мало хто робить гірший дев-тулчейн, ніж Apple, і з роками ситуація, здається, лише погіршується.
🇺🇦 iOSDevUA
Якщо раптом забули — ось нагадування: мало хто робить гірший дев-тулчейн, ніж Apple, і з роками ситуація, здається, лише погіршується.
🇺🇦 iOSDevUA
🤡1
💡Створення кастомних контролів у SwiftUI
У порівнянні з UIKit сьогодні набагато простіше зібрати власний елемент керування — під будь-які потреби.
Джордан Морган пропонує підхід, де кожен контрол має відповідати трьом правилам:
1️⃣ Легко вивчити — якщо взаємодія неочевидна, користувачі нею не користуватимуться.
2️⃣ Запам’ятовуваність — якщо немає сильної причини відходити від системного UI, варто двічі подумати, перш ніж робити своє.
3️⃣ Доступність — елемент має працювати для всіх; якщо це неможливо, можливо, його не слід реалізовувати.
🇺🇦 iOSDevUA
У порівнянні з UIKit сьогодні набагато простіше зібрати власний елемент керування — під будь-які потреби.
Джордан Морган пропонує підхід, де кожен контрол має відповідати трьом правилам:
1️⃣ Легко вивчити — якщо взаємодія неочевидна, користувачі нею не користуватимуться.
2️⃣ Запам’ятовуваність — якщо немає сильної причини відходити від системного UI, варто двічі подумати, перш ніж робити своє.
3️⃣ Доступність — елемент має працювати для всіх; якщо це неможливо, можливо, його не слід реалізовувати.
🇺🇦 iOSDevUA
❤2
This media is not supported in your browser
VIEW IN TELEGRAM
💡Легка демонстрація «липкого» ефекту в SwiftUI
📖 Мінсан Чой поділився оригінальним підходом до реалізації gooey-ефекту в інтерфейсі — і все це без Metal 😉
Дивитися пост
🛠 Вихідний код доступний на GitHub:
radiofun/gooeyblobs — Gooey.swift.
🇺🇦 iOSDevUA
📖 Мінсан Чой поділився оригінальним підходом до реалізації gooey-ефекту в інтерфейсі — і все це без Metal 😉
Дивитися пост
🛠 Вихідний код доступний на GitHub:
radiofun/gooeyblobs — Gooey.swift.
🇺🇦 iOSDevUA
❤11
💡Чому зміна розміру зображень на macOS у 5 разів повільніша, ніж на iOS
Дуже якісне пояснення, чому ресайз через
🇺🇦 iOSDevUA
Дуже якісне пояснення, чому ресайз через
NSImage на macOS займає неприйнятно багато часу, тоді як у симуляторі iOS все працює блискавично. Розбір причин і більш швидких підходів (зокрема через CGImageSource) — всередині.🇺🇦 iOSDevUA
Max Seelemann
Fast Thumbnails with CGImageSource
When working with images, we rarely need to show them at full size — most often ist’s rather as a thumbnail or preview. Using fully loaded images for this is quite slow, so we implemented a thumbnail cache.
While modernizing this component, I remembered…
While modernizing this component, I remembered…
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
💡Відтворюємо ефект Apple Intelligence — розбір + код
В новій iOS можна помітити анімований контурний «glow», який динамічно підсвічує форми та компоненти.
📖 У цьому розборі автор пробує відтворити ефект у SwiftUI за допомогою поєднання модифікаторів background і overlay, а також ділиться готовим розширенням:
https://livsycode.com/swiftui/an-apple-intelligence-style-glow-effect-in-swiftui/
🛠 Код доступний тут:
https://github.com/Livsy90/IntelligenceGlow/tree/main
🇺🇦 iOSDevUA
В новій iOS можна помітити анімований контурний «glow», який динамічно підсвічує форми та компоненти.
📖 У цьому розборі автор пробує відтворити ефект у SwiftUI за допомогою поєднання модифікаторів background і overlay, а також ділиться готовим розширенням:
https://livsycode.com/swiftui/an-apple-intelligence-style-glow-effect-in-swiftui/
🛠 Код доступний тут:
https://github.com/Livsy90/IntelligenceGlow/tree/main
🇺🇦 iOSDevUA
💡Swift Profile Recorder
В екосистемі серверного Swift з’являються нові офіційні інструменти. Цього разу — in-process профілювальник, який просто вбудовується в будь-який сервіс і віддає результати профілювання через cURL-запити. Ідеально для швидкої діагностики продуктивності без складного оверхеду.
🇺🇦 iOSDevUA
В екосистемі серверного Swift з’являються нові офіційні інструменти. Цього разу — in-process профілювальник, який просто вбудовується в будь-який сервіс і віддає результати профілювання через cURL-запити. Ідеально для швидкої діагностики продуктивності без складного оверхеду.
🇺🇦 iOSDevUA
Swift.org
Introducing Swift Profile Recorder: Identifying Performance Bottlenecks in Production
Swift Profile Recorder, an in-process sampling profiler for Swift services, is now available as an open source project.
💡Кешування зображень у SwiftUI
Ще з iOS 15 з’явився дуже корисний
У таких випадках без кешу не обійтися. Часто бачу, як заради цього підтягують зайві залежності, хоча все значно простіше — особливо, якщо нам достатньо кешу лише в пам’яті (а запис на диск додає не так вже й багато складності).
📖 У цій статті розглянуто базовий, але дієвий підхід із використанням NSCache та його налаштування — чудово підходить для новачків:
https://www.createwithswift.com/image-caching-in-swiftui/
🇺🇦 iOSDevUA
Ще з iOS 15 з’явився дуже корисний
AsyncImage (дозволяє завантажувати картинки без блокування інтерфейсу), але є нюанс: під час швидкого скролу вгору-вниз зображення може завантажуватися повторно.У таких випадках без кешу не обійтися. Часто бачу, як заради цього підтягують зайві залежності, хоча все значно простіше — особливо, якщо нам достатньо кешу лише в пам’яті (а запис на диск додає не так вже й багато складності).
📖 У цій статті розглянуто базовий, але дієвий підхід із використанням NSCache та його налаштування — чудово підходить для новачків:
https://www.createwithswift.com/image-caching-in-swiftui/
🇺🇦 iOSDevUA
💡Як керувати контекстом у Foundation Models
Дуже докладні Tech Notes від Apple про найкращі практики оптимізації малого контекстного вікна локальної LLM: як стискати підказки, прибирати зайве, використовувати резюме та ключові токени, щоб умістити максимум корисних даних.
🇺🇦 iOSDevUA
Дуже докладні Tech Notes від Apple про найкращі практики оптимізації малого контекстного вікна локальної LLM: як стискати підказки, прибирати зайве, використовувати резюме та ключові токени, щоб умістити максимум корисних даних.
🇺🇦 iOSDevUA
Apple Developer Documentation
TN3193: Managing the on-device foundation model’s context window | Apple Developer Documentation
Learn how to budget for the context window limit of Apple’s on-device foundation model and handle the error when reaching the limit.
📦 xcsift — оптимізація логів Xcode для AI
Контекст — водночас найкорисніший і найдорожчий ресурс у роботі з AI-агентами: надто великий контекст погіршує якість відповіді й підвищує вартість кожного запиту до LLM.
xcsift — це CLI-утиліта, що перетворює логи xcodebuild на короткий, зрозумілий JSON із усією ключовою інформацією. Менше шуму → менше токенів → дешевші й точніші AI-ітерації.
🇺🇦 iOSDevUA
Контекст — водночас найкорисніший і найдорожчий ресурс у роботі з AI-агентами: надто великий контекст погіршує якість відповіді й підвищує вартість кожного запиту до LLM.
xcsift — це CLI-утиліта, що перетворює логи xcodebuild на короткий, зрозумілий JSON із усією ключовою інформацією. Менше шуму → менше токенів → дешевші й точніші AI-ітерації.
🇺🇦 iOSDevUA
❤2
💡Приклади використання Foundation Models Framework
Нещодавно я ділився прикладом з улюбленого застосунку рецептів, де Foundation Models допомагають структурувати контент. А Apple підготувала свою добірку кейсів: від спрощеного логування силових тренувань до підбору музики за вмістом відео — все прямо на пристрої з повагою до приватності.
🇺🇦 iOSDevUA
Нещодавно я ділився прикладом з улюбленого застосунку рецептів, де Foundation Models допомагають структурувати контент. А Apple підготувала свою добірку кейсів: від спрощеного логування силових тренувань до підбору музики за вмістом відео — все прямо на пристрої з повагою до приватності.
🇺🇦 iOSDevUA
Apple Newsroom
Apple’s Foundation Models framework unlocks new intelligent app experiences
Developers around the world are able to bring even more intelligent experiences into their apps by tapping into Apple’s Foundation Models framework.
💡Swift Transformers 1.0
Бібліотека swift-transformers від Hugging Face, що спрощує роботу з локальними LLM на Swift, отримала перший стабільний реліз. Окрім базових примітивів для інференсу й керування моделями, з її допомогою можна завантажувати та піднімати в пам’яті будь-які моделі з Hugging Face.
🇺🇦 iOSDevUA
Бібліотека swift-transformers від Hugging Face, що спрощує роботу з локальними LLM на Swift, отримала перший стабільний реліз. Окрім базових примітивів для інференсу й керування моделями, з її допомогою можна завантажувати та піднімати в пам’яті будь-які моделі з Hugging Face.
🇺🇦 iOSDevUA
huggingface.co
Swift Transformers Reaches 1.0 – and Looks to the Future
We’re on a journey to advance and democratize artificial intelligence through open source and open science.
💡Memory Integrity Enforcement — нова технологія безпеки від Apple
Наші пристрої зберігають багато конфіденційних даних, тож їх потрібно захищати. Якщо у застосунку є вразливості, зловмисники можуть використати їх, аби дістатися до даних у вашому app або його розширеннях.
Багато команд проходять регулярні аудити безпеки й перевіряють джейлбрейк чи наявність підозрілих процесів. Нещодавно в Xcode з’явилася опція Enhanced Security (її можна увімкнути в проєкті), що допомагає прибрати чимало поширених ризиків.
Тепер Apple представила Memory Integrity Enforcement (MIE) — підхід, який не лише підсилює захист, а й допомагає виявляти складні для діагностики помилки роботи з пам’яттю та усувати їх у коді.
📺 Переглянути сесію можна на сайті Apple або на YouTube.
📖 Додатковий розбір.
🇺🇦 iOSDevUA
Наші пристрої зберігають багато конфіденційних даних, тож їх потрібно захищати. Якщо у застосунку є вразливості, зловмисники можуть використати їх, аби дістатися до даних у вашому app або його розширеннях.
Багато команд проходять регулярні аудити безпеки й перевіряють джейлбрейк чи наявність підозрілих процесів. Нещодавно в Xcode з’явилася опція Enhanced Security (її можна увімкнути в проєкті), що допомагає прибрати чимало поширених ризиків.
Тепер Apple представила Memory Integrity Enforcement (MIE) — підхід, який не лише підсилює захист, а й допомагає виявляти складні для діагностики помилки роботи з пам’яттю та усувати їх у коді.
📺 Переглянути сесію можна на сайті Apple або на YouTube.
📖 Додатковий розбір.
🇺🇦 iOSDevUA
Apple Developer
Secure your app with Memory Integrity Enforcement - Meet With Apple - Videos - Apple Developer
Discover Memory Integrity Enforcement (MIE), a new security technology where hardware, the operating system, and the compiler work...
💡Про увагу до деталей від Apple
З кожним новим релізом macOS та iOS легендарна «увага до дрібниць» у Apple, здається, тане. Останній випуск із Liquid Glass лише погіршив ситуацію — як у загальному UX, так і за планкою якості. У статті — найпоказовіші приклади того, наскільки все просіло.
🇺🇦 iOSDevUA
З кожним новим релізом macOS та iOS легендарна «увага до дрібниць» у Apple, здається, тане. Останній випуск із Liquid Glass лише погіршив ситуацію — як у загальному UX, так і за планкою якості. У статті — найпоказовіші приклади того, наскільки все просіло.
🇺🇦 iOSDevUA
💯3
💡Створення UIKit-застосунку зі стилем Liquid Glass
Більшість великих проєктів поки не переходять на нову стилістику, але деякі топ-апки (наприклад, Telegram) уже частково оновлюють ключові компоненти.
Якщо дизайн поки оновлювати не плануєте — нещодавно я писав, як вимкнути «скляний» стиль для ваших проєктів.
А от якщо ви готуєтеся адоптити можливості iOS 26, варто знати кілька порад.
Наприклад, щоб прибрати ефект скла для кнопок у навбарі, можна використати hidesSharedBackground
А щоб візуально розділити групи кнопок, додайте .fixedSpace().
📖 Ще більше корисних фіч — у цьому розборі:
https://appcircle.io/blog/wwdc25-build-a-uikit-app-with-the-new-liquid-glass-design.
Перехід у будь-якому разі буде не надто швидким (потрібно підтримувати і старі опції), але, як бачимо, для UIKit нові можливості цілком реально впроваджувати вже зараз.
🇺🇦 iOSDevUA
Більшість великих проєктів поки не переходять на нову стилістику, але деякі топ-апки (наприклад, Telegram) уже частково оновлюють ключові компоненти.
Якщо дизайн поки оновлювати не плануєте — нещодавно я писав, як вимкнути «скляний» стиль для ваших проєктів.
А от якщо ви готуєтеся адоптити можливості iOS 26, варто знати кілька порад.
Наприклад, щоб прибрати ефект скла для кнопок у навбарі, можна використати hidesSharedBackground
А щоб візуально розділити групи кнопок, додайте .fixedSpace().
📖 Ще більше корисних фіч — у цьому розборі:
https://appcircle.io/blog/wwdc25-build-a-uikit-app-with-the-new-liquid-glass-design.
Перехід у будь-якому разі буде не надто швидким (потрібно підтримувати і старі опції), але, як бачимо, для UIKit нові можливості цілком реально впроваджувати вже зараз.
🇺🇦 iOSDevUA
💡Як тестувати iOS-застосунки в Zed
Продовження серії про налаштування Zed для повноцінної iOS-розробки: цього разу — як конфігурувати запуск тестів для застосунків і Swift-пакетів.
Деталі та покрокові інструкції тут 👉 https://luxmentis.org/blog/test-xcode-apps-in-zed/.
🇺🇦 iOSDevUA
Продовження серії про налаштування Zed для повноцінної iOS-розробки: цього разу — як конфігурувати запуск тестів для застосунків і Swift-пакетів.
Деталі та покрокові інструкції тут 👉 https://luxmentis.org/blog/test-xcode-apps-in-zed/.
🇺🇦 iOSDevUA
❤1
💡Передавання даних у SwiftUI: порівняння підходів
📖 Маттео Манфердіні ділиться базовими принципами збереження та передачі інформації всередині застосунку.
Він порівнює різні флоу обміну даними й підходи до властивостей — від сесії WWDC19 до варіанта Криса Ейдхофа, структуруючи матеріал у кілька великих розділів:
➡️ Архітектура та “джерела правди”: де має жити істинний стан застосунку
➡️ Передавання значень у View: пропси, environment, bindings
➡️ Створення та керування станом: @State, @StateObject, @ObservedObject, @EnvironmentObject
➡️ Обхід дерева View: коли підіймаємо стан вище та як уникати проп-ланцюгів
Зручний конспект для тих, хто хоче вибудувати прозорий data flow у SwiftUI без «магії» та зайвих залежностей.
🇺🇦 iOSDevUA
📖 Маттео Манфердіні ділиться базовими принципами збереження та передачі інформації всередині застосунку.
Він порівнює різні флоу обміну даними й підходи до властивостей — від сесії WWDC19 до варіанта Криса Ейдхофа, структуруючи матеріал у кілька великих розділів:
➡️ Архітектура та “джерела правди”: де має жити істинний стан застосунку
➡️ Передавання значень у View: пропси, environment, bindings
➡️ Створення та керування станом: @State, @StateObject, @ObservedObject, @EnvironmentObject
➡️ Обхід дерева View: коли підіймаємо стан вище та як уникати проп-ланцюгів
Зручний конспект для тих, хто хоче вибудувати прозорий data flow у SwiftUI без «магії» та зайвих залежностей.
🇺🇦 iOSDevUA
❤1
💡Нове розширення для фонового завантаження ресурсів в iOS 26.1
➡️ В iOS 26.1 у PhotoKit (поки що лише там, сподіваємось на розширення в майбутньому) з’явився новий тип розширень — Background Resource Upload.
Система сама керує передаванням файлів від імені вашого застосунку та обробляє їх у фоні — навіть якщо користувач переключився в іншу апку чи заблокував пристрій.
Бонуси: автоматичне керування мережею, енергозаощадженням і таймінгами — все, щоб забезпечити надійну доставку без вашого ручного мікроменеджменту.
📖 Приклад коду та офіційна документація.
🇺🇦 iOSDevUA
➡️ В iOS 26.1 у PhotoKit (поки що лише там, сподіваємось на розширення в майбутньому) з’явився новий тип розширень — Background Resource Upload.
Система сама керує передаванням файлів від імені вашого застосунку та обробляє їх у фоні — навіть якщо користувач переключився в іншу апку чи заблокував пристрій.
Бонуси: автоматичне керування мережею, енергозаощадженням і таймінгами — все, щоб забезпечити надійну доставку без вашого ручного мікроменеджменту.
📖 Приклад коду та офіційна документація.
🇺🇦 iOSDevUA
❤4👍2
💡Swift SDK для Android уже доступний
📖 Оголошено попередні (nightly) збірки Swift SDK для Android.
Вже доступні: гайд зі старту для запуску коду на Android-пристроях, репозиторій із прикладами, а також публічна дошка прогресу основних фіч.
🇺🇦 iOSDevUA
📖 Оголошено попередні (nightly) збірки Swift SDK для Android.
Вже доступні: гайд зі старту для запуску коду на Android-пристроях, репозиторій із прикладами, а також публічна дошка прогресу основних фіч.
🇺🇦 iOSDevUA
This media is not supported in your browser
VIEW IN TELEGRAM
💡Трансформація Glass Views за допомогою glassEffectID
Серед нових API для побудови інтерфейсів виділяється модифікатор glassEffectID.
З ним можна реалізувати плавні переходи між в’юшками — наприклад, «розділяти» одну кнопку на кілька і навпаки.
Як і завжди, є умови: зокрема, потрібно використовувати GlassEffectContainer.
📖 Зрозумілий приклад застосування
🛠 Код демо-проєкту.
Як застосувати Liquid Glass до кастомних в’юшок — дивіться в офіційній документації.
🇺🇦 iOSDevUA
Серед нових API для побудови інтерфейсів виділяється модифікатор glassEffectID.
З ним можна реалізувати плавні переходи між в’юшками — наприклад, «розділяти» одну кнопку на кілька і навпаки.
Як і завжди, є умови: зокрема, потрібно використовувати GlassEffectContainer.
📖 Зрозумілий приклад застосування
🛠 Код демо-проєкту.
Як застосувати Liquid Glass до кастомних в’юшок — дивіться в офіційній документації.
🇺🇦 iOSDevUA
❤2
📊 Які розміри шрифтів обирають користувачі
Команда застосунку Flighty, який має велику базу користувачів, поділилася цікавою аналітикою: які розміри системних шрифтів найчастіше обирають люди в налаштуваннях iOS.
Також наведено відсоток користувачів, що активно використовують accessibility-функції, пов’язані зі шрифтами — масштабування, динамічний текст та інші параметри доступності.
Корисна статистика для дизайнерів і розробників, які хочуть краще зрозуміти, як реально виглядають їхні інтерфейси у користувачів.
🇺🇦 iOSDevUA
Команда застосунку Flighty, який має велику базу користувачів, поділилася цікавою аналітикою: які розміри системних шрифтів найчастіше обирають люди в налаштуваннях iOS.
Також наведено відсоток користувачів, що активно використовують accessibility-функції, пов’язані зі шрифтами — масштабування, динамічний текст та інші параметри доступності.
Корисна статистика для дизайнерів і розробників, які хочуть краще зрозуміти, як реально виглядають їхні інтерфейси у користувачів.
🇺🇦 iOSDevUA
❤1
💡Apple Dev таймлайн — усі зміни з WWDC
Ділюся сайтом, де зібрано, які фреймворки та користувацькі оновлення представили на кожному WWDC починаючи з 2015 року. Зручно простежити еволюцію платформ і швидко знаходити потрібні релізи.
Дивитися тут 👉 https://www.whatsnewinwwdc.com/
🇺🇦 iOSDevUA
Ділюся сайтом, де зібрано, які фреймворки та користувацькі оновлення представили на кожному WWDC починаючи з 2015 року. Зручно простежити еволюцію платформ і швидко знаходити потрібні релізи.
Дивитися тут 👉 https://www.whatsnewinwwdc.com/
🇺🇦 iOSDevUA
❤3