💡Від масивних SwiftUI‑в’юшок до перевикористовуваних компонентів: підхід із root‑view у стилі MVVM для модульного інтерфейсу
📖 У цій статті Маттео Манфердіні ділиться своїм баченням проблеми “масивних вʼюшок” у SwiftUI — і чому саме вони часто стають джерелом архітектурного хаосу.
Ось ключові блоки:
1️⃣ Чому великі вʼюшки викликають архітектурні проблеми
— Вʼю починає містити не лише UI, а й бізнес-логіку, локальний стан, обробку даних, навігацію й навіть логіку доступу до мережі.
2️⃣ Як перейти до модульних і перевикористовуваних вʼюшок
— Розбиття великих екранів на прості компоненти, що не залежать від зовнішніх джерел даних.
3️⃣ Чому контент-вʼю повинні відповідати лише за візуальне представлення
— Вʼю має показувати дані, але не вирішувати, що з ними робити.
Також автор пояснює поширене непорозуміння:
4️⃣ Root‑view як міст між UI і внутрішньою архітектурою застосунку
— Саме в кореневій вʼюшці відбувається підключення до моделі даних, обробників стану, мережевих викликів тощо.
🧩 Це підхід, що дозволяє розділити інтерфейс і логіку, зробити код чистішим і компоненти — легшими у повторному використанні. Ідеально підходить для побудови складних, але підтримуваних SwiftUI-застосунків.
🇺🇦 iOSDevUA
📖 У цій статті Маттео Манфердіні ділиться своїм баченням проблеми “масивних вʼюшок” у SwiftUI — і чому саме вони часто стають джерелом архітектурного хаосу.
Ось ключові блоки:
1️⃣ Чому великі вʼюшки викликають архітектурні проблеми
— Вʼю починає містити не лише UI, а й бізнес-логіку, локальний стан, обробку даних, навігацію й навіть логіку доступу до мережі.
2️⃣ Як перейти до модульних і перевикористовуваних вʼюшок
— Розбиття великих екранів на прості компоненти, що не залежать від зовнішніх джерел даних.
3️⃣ Чому контент-вʼю повинні відповідати лише за візуальне представлення
— Вʼю має показувати дані, але не вирішувати, що з ними робити.
Також автор пояснює поширене непорозуміння:
Багато розробників вважають, що MVVM — це обов’язково по ViewModel на кожну вʼюшку. Але, за словами Маттео, ViewModel потрібна лише на рівні root‑вʼю, а не для кожного підкомпонента.
4️⃣ Root‑view як міст між UI і внутрішньою архітектурою застосунку
— Саме в кореневій вʼюшці відбувається підключення до моделі даних, обробників стану, мережевих викликів тощо.
🧩 Це підхід, що дозволяє розділити інтерфейс і логіку, зробити код чистішим і компоненти — легшими у повторному використанні. Ідеально підходить для побудови складних, але підтримуваних SwiftUI-застосунків.
🇺🇦 iOSDevUA
❤1
💡Універсальний гайд із використання Foundation Models Framework
Фреймворк Foundation Models відкриває можливості генеративного ШІ прямо на пристроях Apple — включно з обробкою природної мови, створенням контенту та іншими задачами — з максимальною продуктивністю та повагою до приватності, адже все виконується локально, без відправки даних у хмару.
📖 У своєму блозі Азам уже почав працювати над глибоким гідом і ділиться першим поглядом на ключові концепції. Стаття оновлюється, але вже зараз доступні базові приклади й структура.
Матеріал поділений на зручні блоки:
🔹 Вимоги до запуску
🔹 Керована генерація
🔹 Інтеграція з SwiftUI‑застосунком
🔹 Інструменти розробника
🔹 Збереження результатів (без повторного запиту)
🔹 Оптимізація продуктивності
🧩 Крім того, вже доступна репозиторія з прикладами:
🛠 Генерація резюме для довгого тексту
🛠 Планувальник подорожей
🛠 Генератор жартів
🛠 Створення рецептів за інгредієнтами
⚠️ Для запуску прикладів вам знадобиться macOS Tahoe, Xcode 26 і Apple Silicon.
Чудовий старт для розробників, які хочуть інтегрувати локальний AI у свої iOS-застосунки.
🇺🇦 iOSDevUA
Фреймворк Foundation Models відкриває можливості генеративного ШІ прямо на пристроях Apple — включно з обробкою природної мови, створенням контенту та іншими задачами — з максимальною продуктивністю та повагою до приватності, адже все виконується локально, без відправки даних у хмару.
📖 У своєму блозі Азам уже почав працювати над глибоким гідом і ділиться першим поглядом на ключові концепції. Стаття оновлюється, але вже зараз доступні базові приклади й структура.
Матеріал поділений на зручні блоки:
🔹 Вимоги до запуску
🔹 Керована генерація
🔹 Інтеграція з SwiftUI‑застосунком
🔹 Інструменти розробника
🔹 Збереження результатів (без повторного запиту)
🔹 Оптимізація продуктивності
🧩 Крім того, вже доступна репозиторія з прикладами:
🛠 Генерація резюме для довгого тексту
🛠 Планувальник подорожей
🛠 Генератор жартів
🛠 Створення рецептів за інгредієнтами
⚠️ Для запуску прикладів вам знадобиться macOS Tahoe, Xcode 26 і Apple Silicon.
Чудовий старт для розробників, які хочуть інтегрувати локальний AI у свої iOS-застосунки.
🇺🇦 iOSDevUA
❤1
💡Огляд новинок у тулингу після WWDC — від команди Tuist
Команда Tuist зібрала все найцікавіше, що з’явилося у світі інструментів для розробки після WWDC 2025. Ось основне:
🔧 Покращення у сфері тестування
— Тепер доступна можливість запису відео під час запуску UI‑тестів. Це суттєво полегшить аналіз багів та поведінки інтерфейсу.
🔧 Новий макрос #playground
— Альтернатива SwiftUI Previews, але для не-UI коду. Дозволяє миттєво переглядати результат виконання фрагментів логіки, утиліт чи модулів, які не мають візуального представлення.
🔧 Проєкт container від Apple
— Опенсорсний інструмент, що дозволяє запускати Linux-контейнери прямо на macOS. Повністю реалізований на Swift — ідеальний варіант для тих, хто хоче легкі, ізольовані середовища без сторонніх рішень типу Docker.
Це оновлення ще раз підкреслює, що Swift — це не лише про UI, а повноцінна екосистема для сучасного девелопменту.
🇺🇦 iOSDevUA
Команда Tuist зібрала все найцікавіше, що з’явилося у світі інструментів для розробки після WWDC 2025. Ось основне:
🔧 Покращення у сфері тестування
— Тепер доступна можливість запису відео під час запуску UI‑тестів. Це суттєво полегшить аналіз багів та поведінки інтерфейсу.
🔧 Новий макрос #playground
— Альтернатива SwiftUI Previews, але для не-UI коду. Дозволяє миттєво переглядати результат виконання фрагментів логіки, утиліт чи модулів, які не мають візуального представлення.
🔧 Проєкт container від Apple
— Опенсорсний інструмент, що дозволяє запускати Linux-контейнери прямо на macOS. Повністю реалізований на Swift — ідеальний варіант для тих, хто хоче легкі, ізольовані середовища без сторонніх рішень типу Docker.
Це оновлення ще раз підкреслює, що Swift — це не лише про UI, а повноцінна екосистема для сучасного девелопменту.
🇺🇦 iOSDevUA
tuist.dev
Developer experience wins from WWDC25
Apple's WWDC25 brought exciting developer tooling updates: new UI testing capabilities, in-code playgrounds, explicit modules by default, and their own container CLI. Here's how we think about them at Tuist.
This media is not supported in your browser
VIEW IN TELEGRAM
💡Dragula — drag’n’drop рушій для SwiftUI
Dragula — це нова бібліотека для SwiftUI, яка значно спрощує створення інтерфейсів із перетягуванням (drag & drop).
🧩 Підтримує:
— списки з секціями
— горизонтальний і вертикальний скрол
— просте налаштування без зайвого коду
Чудовий вибір для тих, хто хоче реалізувати зручне перетягування елементів у SwiftUI — як у звичних списках, так і в більш складних layout’ах.
🇺🇦 iOSDevUA
Dragula — це нова бібліотека для SwiftUI, яка значно спрощує створення інтерфейсів із перетягуванням (drag & drop).
🧩 Підтримує:
— списки з секціями
— горизонтальний і вертикальний скрол
— просте налаштування без зайвого коду
Чудовий вибір для тих, хто хоче реалізувати зручне перетягування елементів у SwiftUI — як у звичних списках, так і в більш складних layout’ах.
🇺🇦 iOSDevUA
❤7
💡Mesh‑градієнти в SwiftUI
На відміну від лінійних чи радіальних, mesh‑градієнти дозволяють набагато гнучкіше керувати розподілом кольорів на площині. Це відкриває нові можливості для створення виразних, органічних заливок.
У статті розглядається:
🎨 як створювати такі градієнти в SwiftUI
📐 як керувати геометрією й позиціями кольорів
🌀 як створювати складні форми й анімації на їх основі
Чудовий ресурс для тих, хто хоче вийти за межі стандартних заливок і створити по-справжньому унікальний візуальний стиль у SwiftUI.
🇺🇦 iOSDevUA
На відміну від лінійних чи радіальних, mesh‑градієнти дозволяють набагато гнучкіше керувати розподілом кольорів на площині. Це відкриває нові можливості для створення виразних, органічних заливок.
У статті розглядається:
🎨 як створювати такі градієнти в SwiftUI
📐 як керувати геометрією й позиціями кольорів
🌀 як створювати складні форми й анімації на їх основі
Чудовий ресурс для тих, хто хоче вийти за межі стандартних заливок і створити по-справжньому унікальний візуальний стиль у SwiftUI.
🇺🇦 iOSDevUA
🔥3
💡На Swift тепер офіційно можна буде розробляти Android‑застосунки
На swift.org оголосили про створення нової робочої групи, мета якої — зробити Android офіційно підтримуваною платформою для Swift.
📖 Деталі — на сторінці Swift Android Workgroup
Основні завдання групи:
🔹 Розвивати та вдосконалювати підтримку Android у офіційному дистрибутиві Swift
🔹 Рекомендувати зміни у ключових бібліотеках Swift — таких як Foundation і Dispatch — для кращої сумісності з Android‑підходами
🔹 Визначити підтримувані архітектури та API‑рівні Android
🔹 Створити рекомендації з інтеграції Swift із Java SDK і пакування Swift‑бібліотек в Android‑застосунки
🔹 Працювати над підтримкою дебагу Swift‑коду на Android
🔹 Консультувати спільноту щодо додавання Android‑сумісності в сторонні Swift‑пакети
🚀 Це серйозний крок у бік кросплатформенності Swift і відкриває нові можливості для розробників iOS, які хочуть виходити за межі екосистеми Apple.
🇺🇦 iOSDevUA
На swift.org оголосили про створення нової робочої групи, мета якої — зробити Android офіційно підтримуваною платформою для Swift.
📖 Деталі — на сторінці Swift Android Workgroup
Основні завдання групи:
🔹 Розвивати та вдосконалювати підтримку Android у офіційному дистрибутиві Swift
🔹 Рекомендувати зміни у ключових бібліотеках Swift — таких як Foundation і Dispatch — для кращої сумісності з Android‑підходами
🔹 Визначити підтримувані архітектури та API‑рівні Android
🔹 Створити рекомендації з інтеграції Swift із Java SDK і пакування Swift‑бібліотек в Android‑застосунки
🔹 Працювати над підтримкою дебагу Swift‑коду на Android
🔹 Консультувати спільноту щодо додавання Android‑сумісності в сторонні Swift‑пакети
🚀 Це серйозний крок у бік кросплатформенності Swift і відкриває нові можливості для розробників iOS, які хочуть виходити за межі екосистеми Apple.
🇺🇦 iOSDevUA
Swift.org
Swift is a general-purpose programming language built using a modern approach to safety, performance, and software design patterns.
🔥4
Якщо ви не знали: у логах Xcode можна всього за кілька кліків приховати всі повідомлення від певної бібліотеки, процесу або підсистеми.
Зручно, коли потрібно сфокусуватися лише на релевантних логах і прибрати зайвий шум під час дебагу.
🇺🇦 iOSDevUA
Зручно, коли потрібно сфокусуватися лише на релевантних логах і прибрати зайвий шум під час дебагу.
🇺🇦 iOSDevUA
❤4
💡FaultOrdering — опенсорсний інструмент від Emerge Tools для прискорення запуску iOS‑застосунків
Emerge Tools, які нещодавно стали частиною Sentry, презентували перший спільний реліз — інструмент FaultOrdering, що генерує order-файли для оптимізації запуску застосунку.
🔗 Офіційний анонс
📖 Детальний розбір — у блозі Sentry:
Читати статтю
🛠 GitHub-репозиторій
🔍 Що таке order-файли і навіщо вони потрібні?
Це простий текстовий файл, який містить список символів (один символ на рядок), що критично важливі для швидкого старту застосунку. Під час лінкування ці символи групуються ближче один до одного — щоб завантаження відбувалося швидше.
Приклад із HackerNews від Emerge Tools:
Тут є символи з Objective‑C, C і Swift, що активно викликаються одразу після запуску.
🎯 Хто вже використовує подібні техніки?
У статті згадуються Spotify, Snapchat та Airbnb — всі вони працюють з order-файлами для оптимізації старту.
📉 У практиці Emerge Tools було зафіксовано до 20% скорочення часу запуску застосунку.
💬 А ви використовуєте подібні техніки для оптимізації старту?
Можливо, маєте простіші альтернативи або досвід впровадження подібних рішень? Поділіться!
🇺🇦 iOSDevUA
Emerge Tools, які нещодавно стали частиною Sentry, презентували перший спільний реліз — інструмент FaultOrdering, що генерує order-файли для оптимізації запуску застосунку.
🔗 Офіційний анонс
📖 Детальний розбір — у блозі Sentry:
Читати статтю
🛠 GitHub-репозиторій
🔍 Що таке order-файли і навіщо вони потрібні?
Це простий текстовий файл, який містить список символів (один символ на рядок), що критично важливі для швидкого старту застосунку. Під час лінкування ці символи групуються ближче один до одного — щоб завантаження відбувалося швидше.
Приклад із HackerNews від Emerge Tools:
+[SentryAppStartTracker load]
+[SentryCrashDefaultMachineContextWrapper load]
_main
_$s10HackerNews0aB3AppVAC7SwiftUI0C0AAWl
_$s10HackerNews0aB3AppV7SwiftUI0C0AadEPxycfCTW
_$s10HackerNews0aB3AppVACycfCTf4d_n
Тут є символи з Objective‑C, C і Swift, що активно викликаються одразу після запуску.
🎯 Хто вже використовує подібні техніки?
У статті згадуються Spotify, Snapchat та Airbnb — всі вони працюють з order-файлами для оптимізації старту.
📉 У практиці Emerge Tools було зафіксовано до 20% скорочення часу запуску застосунку.
💬 А ви використовуєте подібні техніки для оптимізації старту?
Можливо, маєте простіші альтернативи або досвід впровадження подібних рішень? Поділіться!
🇺🇦 iOSDevUA
Sentry
Emerge Tools is now a part of Sentry
Sentry acquires Emerge Tools, enhancing mobile monitoring. Improve app performance, reduce bugs, and ship lighter apps with this new partnership.
💡enum чи bool?
Вибір за вами — а тут трохи міркувань на цю тему:
🔗 Читайте пост
Коли ви керуєте станом — особливо, наприклад, відкриттям sheet’ів у SwiftUI — часто постає питання:
вистачить простого
У матеріалі розглядаються переваги enum, коли сценарії взаємодії ускладнюються, і чому надто багато
Коротко, але по суті — раджу до прочитання, якщо ви дбаєте про чистоту архітектури.
🇺🇦 iOSDevUA
Вибір за вами — а тут трохи міркувань на цю тему:
🔗 Читайте пост
Коли ви керуєте станом — особливо, наприклад, відкриттям sheet’ів у SwiftUI — часто постає питання:
вистачить простого
Bool, чи все ж краще створити enum із різними варіантами?У матеріалі розглядаються переваги enum, коли сценарії взаємодії ускладнюються, і чому надто багато
Bool-змінних може призвести до плутанини.Коротко, але по суті — раджу до прочитання, якщо ви дбаєте про чистоту архітектури.
🇺🇦 iOSDevUA
manu.show
Sheets Manipulation
Enum-Based vs Boolean-Based approaches
❤5
💡Як виграти Apple Design Award: Any Distance тепер у відкритому доступі
Застосунок Any Distance спочатку створювався як простий інструмент для красивого візуального обміну своїми тренуваннями в соцмережах. Згодом проєкт перетворився на венчурний стартап із амбіцією посунути Strava — і хоча цього не сталося, у 2023 році застосунок здобув Apple Design Award за графіку та оформлення.
📖 У блозі Даніель Кунц розповідає, чому команда врешті зробила застосунок open source: серед причин — помилки в стратегії стартапу та складнощі зі збором коштів на розвиток.
Також він ділиться критикою документації SwiftUI:
Крім того, Даніель згадує, що витратив багато часу на роботу з Metal, щоби досягти того рівня продуктивності та візуального ефекту, який ми бачимо в застосунку.
🛠 І найцікавіше — проєкт повністю відкритий:
🔗 GitHub — Any Distance iOS
Чудова можливість подивитися, як виглядає справжній дизайнерський застосунок Apple зсередини.
🇺🇦 iOSDevUA
Застосунок Any Distance спочатку створювався як простий інструмент для красивого візуального обміну своїми тренуваннями в соцмережах. Згодом проєкт перетворився на венчурний стартап із амбіцією посунути Strava — і хоча цього не сталося, у 2023 році застосунок здобув Apple Design Award за графіку та оформлення.
📖 У блозі Даніель Кунц розповідає, чому команда врешті зробила застосунок open source: серед причин — помилки в стратегії стартапу та складнощі зі збором коштів на розвиток.
Також він ділиться критикою документації SwiftUI:
«Apple покаже вам сто способів створити простий TODO-ліст, який навряд чи скомпілюється швидко, але коли справа доходить до реальних складних інтерфейсів — ви залишаєтесь самі. Через брак прикладів LLM теж не особливо допоможуть».
Крім того, Даніель згадує, що витратив багато часу на роботу з Metal, щоби досягти того рівня продуктивності та візуального ефекту, який ми бачимо в застосунку.
🛠 І найцікавіше — проєкт повністю відкритий:
🔗 GitHub — Any Distance iOS
Чудова можливість подивитися, як виглядає справжній дизайнерський застосунок Apple зсередини.
🇺🇦 iOSDevUA
👍2
💡Чому варто відмовитися від Timer.publish у SwiftUI — і що використовувати замість
На перший погляд
Автор ділиться прикладами, які демонструють неочевидні баги, пов’язані з оновленням в’юшок, і пропонує кращі альтернативи, зокрема використання Task з async/await,
Рекомендується до перегляду всім, хто регулярно працює з анімаціями, таймерами та інтервальними оновленнями у SwiftUI.
🇺🇦 iOSDevUA
На перший погляд
Timer.publish здається зручним способом реалізувати таймер у SwiftUI. Але в цій статті пояснюється, чому це не найкраще рішення — особливо з погляду на продуктивність, повторне створення таймерів та контроль над життєвим циклом.Автор ділиться прикладами, які демонструють неочевидні баги, пов’язані з оновленням в’юшок, і пропонує кращі альтернативи, зокрема використання Task з async/await,
ObservableObject або @StateObject із явним контролем часу.Рекомендується до перегляду всім, хто регулярно працює з анімаціями, таймерами та інтервальними оновленнями у SwiftUI.
🇺🇦 iOSDevUA
Medium
Stop using Timer.publish in your SwiftUI views
Create a reusable view modifier instead
👍1
💡Реверс-інжиніринг Coding Intelligence у Xcode — як влаштовано AI-кодинг під капотом
Цього року в Xcode зʼявилась повноцінна версія Coding Intelligence — інструменту, що інтегрує AI‑допомогу прямо в середовище розробки.
📖 У статті Пітера Фрізе автор спробував зазирнути “під капот” і частково зрозуміти, як саме працює цей інструмент. Це свого роду дослідження — неофіційне, але досить глибоке.
🔍 Зокрема, він аналізує:
— Реверс системних інструкцій Xcode — які prompt-и передаються в бекенд, і що саме формує відповіді інтелектуального помічника.
— Типові сценарії використання Coding Intelligence — як Xcode розпізнає контекст, які підказки дає, і як вони пов’язані з діями користувача.
Цей огляд буде особливо цікавим тим, хто хоче краще розуміти логіку роботи AI‑підказок в Xcode і, можливо, навчитися створювати ефективніші промпти для взаємодії з ними.
🇺🇦 iOSDevUA
Цього року в Xcode зʼявилась повноцінна версія Coding Intelligence — інструменту, що інтегрує AI‑допомогу прямо в середовище розробки.
📖 У статті Пітера Фрізе автор спробував зазирнути “під капот” і частково зрозуміти, як саме працює цей інструмент. Це свого роду дослідження — неофіційне, але досить глибоке.
🔍 Зокрема, він аналізує:
— Реверс системних інструкцій Xcode — які prompt-и передаються в бекенд, і що саме формує відповіді інтелектуального помічника.
— Типові сценарії використання Coding Intelligence — як Xcode розпізнає контекст, які підказки дає, і як вони пов’язані з діями користувача.
Цей огляд буде особливо цікавим тим, хто хоче краще розуміти логіку роботи AI‑підказок в Xcode і, можливо, навчитися створювати ефективніші промпти для взаємодії з ними.
🇺🇦 iOSDevUA
👍1
💡Великий огляд новинок у SwiftUI для iOS 26!
У цьому матеріалі зібрано все, що зʼявилося нового у SwiftUI з виходом iOS 26 — і повірте, змін справді багато.
🆕 Нові компоненти
⚙️ Покращення продуктивності
🎨 Більше контролю над анімаціями та макетами
🧩 Нові API для навігації та інтеграції з системою
Автор також залишив багато корисних посилань усередині статті — не забудьте по них пройтися, щоб зануритися в тему глибше!
Ідеальний ресурс, якщо хочете швидко оновити знання після WWDC.
🇺🇦 iOSDevUA
У цьому матеріалі зібрано все, що зʼявилося нового у SwiftUI з виходом iOS 26 — і повірте, змін справді багато.
🆕 Нові компоненти
⚙️ Покращення продуктивності
🎨 Більше контролю над анімаціями та макетами
🧩 Нові API для навігації та інтеграції з системою
Автор також залишив багато корисних посилань усередині статті — не забудьте по них пройтися, щоб зануритися в тему глибше!
Ідеальний ресурс, якщо хочете швидко оновити знання після WWDC.
🇺🇦 iOSDevUA
Hacking with Swift
What's new in SwiftUI for iOS 26
WebView, rich text editing for TextEditor, section index list titles, and more
💡Продовжуємо знайомство з новинками в Swift — цього разу про concurrent
🧠 У новому матеріалі розбирається, що таке concurrent у Swift‑Concurrency, як він працює, і коли його варто застосовувати.
📌 Є приклади коду, пояснення відмінностей між паралельністю й асинхронністю, а також поради, як уникати типових помилок.
Все чітко, структуровано й зрозуміло — саме те, що треба для впевненого старту або систематизації знань. 👍
🇺🇦 iOSDevUA
🧠 У новому матеріалі розбирається, що таке concurrent у Swift‑Concurrency, як він працює, і коли його варто застосовувати.
📌 Є приклади коду, пояснення відмінностей між паралельністю й асинхронністю, а також поради, як уникати типових помилок.
Все чітко, структуровано й зрозуміло — саме те, що треба для впевненого старту або систематизації знань. 👍
🇺🇦 iOSDevUA
SwiftLee
@concurrent explained with code examples
Explore the new @concurrent attribute in Swift 6.2 and its role in Swift Concurrency for better asynchronous function handling.
❤2
This media is not supported in your browser
VIEW IN TELEGRAM
💡Чому оновлюються view у SwiftUI — простий спосіб дебагу
При відлагодженні SwiftUI-інтерфейсу корисно розуміти, що саме викликає оновлення в’юшки. Один із найпростіших (і офіційно підтримуваних!) способів — це використання методу
🔍 Цей метод виводить у консоль:
— які властивості змінилися,
— чи змінилася структура або ідентичність вʼю (
— чи просто змінилося значення (
📖 Раніше це було прихованим API (як тут на StackOverflow), але зараз метод згадується вже й в офіційній документації Apple.
⚙️ Надзвичайно зручно для пошуку зайвих перерендерів або оптимізації складних екранів у SwiftUI.
🇺🇦 iOSDevUA
При відлагодженні SwiftUI-інтерфейсу корисно розуміти, що саме викликає оновлення в’юшки. Один із найпростіших (і офіційно підтримуваних!) способів — це використання методу
Self._printChanges() всередині body замість звичайного print.🔍 Цей метод виводить у консоль:
— які властивості змінилися,
— чи змінилася структура або ідентичність вʼю (
@identity),— чи просто змінилося значення (
@self).📖 Раніше це було прихованим API (як тут на StackOverflow), але зараз метод згадується вже й в офіційній документації Apple.
⚙️ Надзвичайно зручно для пошуку зайвих перерендерів або оптимізації складних екранів у SwiftUI.
🇺🇦 iOSDevUA
❤4🔥2
💡Що нового в UIKit у iOS 26 — короткий огляд важливих змін
Якщо ви досі користуєтесь (або змушені користуватись 🙂) UIKit і вам цікаво, що нового Apple додала у версії iOS 26, — ось зручний і короткий огляд змін, на які справді варто звернути увагу.
Так, UIKit усе ще живий, його активно вдосконалюють і допилюють — і тут зібрані саме ті фічі, які можуть бути корисними в реальних проєктах.
Ідеально, якщо ви хочете бути в курсі, не заглиблюючись одразу в усі сесії WWDC.
🇺🇦 iOSDevUA
Якщо ви досі користуєтесь (або змушені користуватись 🙂) UIKit і вам цікаво, що нового Apple додала у версії iOS 26, — ось зручний і короткий огляд змін, на які справді варто звернути увагу.
Так, UIKit усе ще живий, його активно вдосконалюють і допилюють — і тут зібрані саме ті фічі, які можуть бути корисними в реальних проєктах.
Ідеально, якщо ви хочете бути в курсі, не заглиблюючись одразу в усі сесії WWDC.
🇺🇦 iOSDevUA
Swiftjective-C
iOS 26: Notable UIKit Additions
TODO.
👍2
💡Робота з таймером у AlarmKit — як почати за кілька кроків
Один із нових фреймворків, представлений на WWDC, — це AlarmKit. Він дозволяє легко реалізовувати таймери та будильники прямо в системному інтерфейсі iOS.
🔧 Щоб почати роботу, достатньо:
— імпортувати фреймворк
— додати ключ
— виконати базову конфігурацію
📖 У цьому гайді показано, як створити таймер із підтримкою Live Activity для локскріну та Dynamic Island, а також як налаштовувати інтервали, стилі й інтеграцію з UI.
Чудовий стартовий приклад для тих, хто хоче додати глибоку інтеграцію таймерів у свій застосунок на iOS 18+.
🇺🇦 iOSDevUA
Один із нових фреймворків, представлений на WWDC, — це AlarmKit. Він дозволяє легко реалізовувати таймери та будильники прямо в системному інтерфейсі iOS.
🔧 Щоб почати роботу, достатньо:
— імпортувати фреймворк
— додати ключ
NSAlarmKitUsageDescription до Info.plist— виконати базову конфігурацію
📖 У цьому гайді показано, як створити таймер із підтримкою Live Activity для локскріну та Dynamic Island, а також як налаштовувати інтервали, стилі й інтеграцію з UI.
Чудовий стартовий приклад для тих, хто хоче додати глибоку інтеграцію таймерів у свій застосунок на iOS 18+.
🇺🇦 iOSDevUA
❤4👍1
🎬Трохи корисного для дизайнерів (або розробників, які самі малюють інтерфейси)
🎨 Якщо ви хочете, щоб ваш дизайн виглядав у стилі нового Liquid Glass від Apple, ось короткий і практичний 10-хвилинний ролик про те, як реалізувати цей ефект у Figma.
Ідеально підійде для створення макетів, що виглядають сучасно й відповідають трендам iOS 26.
Навіть якщо ви не дизайнер, але маєте власні уявлення про UI — варто подивитися!
🇺🇦 iOSDevUA
🎨 Якщо ви хочете, щоб ваш дизайн виглядав у стилі нового Liquid Glass від Apple, ось короткий і практичний 10-хвилинний ролик про те, як реалізувати цей ефект у Figma.
Ідеально підійде для створення макетів, що виглядають сучасно й відповідають трендам iOS 26.
Навіть якщо ви не дизайнер, але маєте власні уявлення про UI — варто подивитися!
🇺🇦 iOSDevUA
YouTube
How to Make Apple's Liquid Glass Effect In Figma
How to generate Apple’s liquid glass effect in Figma, step-by-step – including WHY we modify each property that we do.
CONTENTS
0:00 Intro
0:49 Adding the Texture effect
2:09 Adding the Background Blur
4:09 Adding into an autolayout button
7:04 Creating…
CONTENTS
0:00 Intro
0:49 Adding the Texture effect
2:09 Adding the Background Blur
4:09 Adding into an autolayout button
7:04 Creating…
💡Про @Observable в UIKit — як це працює і на що звернути увагу
Як ми вже згадували раніше, Apple несподівано додала підтримку
У статті пояснюється:
🔹 як працює система автоматичного трекінгу
🔹 у чому різниця між
🔹 які існують обмеження та тонкощі
🔹 як уникнути просідання продуктивності, якщо трекінг спрацьовує занадто часто або в неправильний момент
Це обов’язкове читання для всіх, хто вже будує застосунки на UIKit, але хоче скористатися перевагами сучасного реактивного підходу — без повного переходу на SwiftUI.
🇺🇦 iOSDevUA
Як ми вже згадували раніше, Apple несподівано додала підтримку
@Observable в UIKit — і одразу ж із підтримкою до iOS 18. Тепер зміни в об’єктах можна автоматично відстежувати навіть у класичних UIKit-застосунках.У статті пояснюється:
🔹 як працює система автоматичного трекінгу
🔹 у чому різниця між
@Observable у SwiftUI та UIKit🔹 які існують обмеження та тонкощі
🔹 як уникнути просідання продуктивності, якщо трекінг спрацьовує занадто часто або в неправильний момент
Це обов’язкове читання для всіх, хто вже будує застосунки на UIKit, але хоче скористатися перевагами сучасного реактивного підходу — без повного переходу на SwiftUI.
🇺🇦 iOSDevUA
steipete.me
Automatic Observation Tracking in UIKit and AppKit: The Feature Apple Forgot to Mention | Peter Steinberger
Discover how iOS 18's hidden automatic observation tracking brings SwiftUI-like reactive programming to UIKit and AppKit, making your UI code cleaner and more maintainable.
👍3
💡Про макрос #playground з останнього WWDC — новий спосіб запускати код у Canvas
📖 У статті пояснюється, як працює новий макрос
Це сучасна альтернатива старим Playground-файлам:
— дозволяє запускати фрагменти коду прямо в Xcode Canvas
— працює не лише з UI, а й із будь-якою логікою
— ідеально підходить для швидкого тестування функцій, форматтерів, алгоритмів тощо
Макрос працює напряму у Swift-файлі й не потребує окремого проєкту чи Playgrounds-оточення.
Зручний, мінімалістичний і повністю інтегрований у Xcode 26. Рекомендується для всіх, хто часто експериментує з кодом.
🇺🇦 iOSDevUA
📖 У статті пояснюється, як працює новий макрос
#playground, представлений на WWDC.Це сучасна альтернатива старим Playground-файлам:
— дозволяє запускати фрагменти коду прямо в Xcode Canvas
— працює не лише з UI, а й із будь-якою логікою
— ідеально підходить для швидкого тестування функцій, форматтерів, алгоритмів тощо
Макрос працює напряму у Swift-файлі й не потребує окремого проєкту чи Playgrounds-оточення.
Зручний, мінімалістичний і повністю інтегрований у Xcode 26. Рекомендується для всіх, хто часто експериментує з кодом.
🇺🇦 iOSDevUA
🔥4
💡Що варто знати про Foundation Model від Apple
Головне, що потрібно розуміти про локальну LLM, яку Apple інтегрувала в iOS, — вона компактна й обмежена за сучасними мірками.
🔹 Об’єм контекстного вікна — лише 4096 токенів.
Тобто не варто сприймати її як “похідну версію ChatGPT у кишені”.
Натомість варто дивитися на неї як на інструмент для перетворення вільного тексту у структуровані дані, помічника для простих локальних завдань — форматування, витягу інформації, узагальнення, тегування тощо.
Ідеально підходить для використання прямо на пристрої — швидко, приватно й без інтернету. Але не замінить хмарні LLM у складних сценаріях.
🇺🇦 iOSDevUA
Головне, що потрібно розуміти про локальну LLM, яку Apple інтегрувала в iOS, — вона компактна й обмежена за сучасними мірками.
🔹 Об’єм контекстного вікна — лише 4096 токенів.
Тобто не варто сприймати її як “похідну версію ChatGPT у кишені”.
Натомість варто дивитися на неї як на інструмент для перетворення вільного тексту у структуровані дані, помічника для простих локальних завдань — форматування, витягу інформації, узагальнення, тегування тощо.
Ідеально підходить для використання прямо на пристрої — швидко, приватно й без інтернету. Але не замінить хмарні LLM у складних сценаріях.
🇺🇦 iOSDevUA
Ronnie Rocha - iOS Developer & AI Engineer
WWDC 2025: Apple’s On-Device Foundation Model Is Here.. But Is It Any Good? - Ronnie Rocha - iOS Developer & AI Engineer
I’ve been an Apple “fanboy” for almost 20 years now. Ever since I got my first MacBook Pro back in 2005. I’ve been developing for iOS for the past 15 of those years, and every June, I get excited for WWDC like it’s Christmas morning. 🤓 This year? Honestly…