💡Про увагу до деталей від 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
💡Економіка self-hosted CI
GitHub дозволяє підключати self-hosted ранери для виконання GitHub Actions — тобто використовувати власні Mac mini або інші сервери замість хмарних.
У статті розбирається, наскільки це може бути вигідно: автор порівнює вартість оренди macOS-інстансів у хмарі з витратами на придбання й утримання власних пристроїв, а також ділиться покроковим гайдом із підключення таких раннерів до CI-пайплайнів.
Як результат — нижча вартість, швидші збірки й повний контроль над середовищем виконання.
🇺🇦 iOSDevUA
GitHub дозволяє підключати self-hosted ранери для виконання GitHub Actions — тобто використовувати власні Mac mini або інші сервери замість хмарних.
У статті розбирається, наскільки це може бути вигідно: автор порівнює вартість оренди macOS-інстансів у хмарі з витратами на придбання й утримання власних пристроїв, а також ділиться покроковим гайдом із підключення таких раннерів до CI-пайплайнів.
Як результат — нижча вартість, швидші збірки й повний контроль над середовищем виконання.
🇺🇦 iOSDevUA
Jeffverkoeyen
Saving $4000+/month with self-hosted runners — featherless software design
🔥1
💡Доповідь про Swift на Android
Swift на Android продовжує розвиватися та набирати популярність. Якщо ви не дуже стежили за темою, раджу переглянути якісний оглядовий виступ з нещодавньої NSSpain.
🇺🇦 iOSDevUA
Swift на Android продовжує розвиватися та набирати популярність. Якщо ви не дуже стежили за темою, раджу переглянути якісний оглядовий виступ з нещодавньої NSSpain.
🇺🇦 iOSDevUA
YouTube
Android Doesn’t Deserve Swift—But We Did It Anyway - Pierluigi Cifani
Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.
💡Роадмапа роботи тайп-чекера в Swift і плани на його покращення
Нарешті в одному місці з’явилося детальне пояснення не лише поточних проблем, а й загалом того, як влаштований тайп-чекер у Swift.
📖 В офіційній документації вийшов великий пост від Слави Пєстова, де описано, що вже зроблено для оптимізації перевірки типів у компіляторі, що в роботі зараз і що планується далі.
Туди входять:
• зміни, реалізовані в Swift 6.2;
• те, що вже в main-гілці;
• завдання, заплановані для Swift 6.3;
• і навіть попередні довгострокові плани розвитку.
Йдеться про ту саму ситуацію, коли компілятор видає:
Слава розклав усе по категоріях і пояснив ключові аспекти:
➡️ Перевантаження — які взагалі типи перевантаження Swift дозволяє.
➡️ Розв’язування обмежень — як компілятор визначає типи під час компіляції.
➡️ Алгоритмічна складність — чому певні вирази можуть різко «зависати».
➡️ Що означає “reasonable time”.
➡️ Робота з некоректними виразами та діагностика.
➡️ Цілі й нецілі оновлень.
➡️ Поліпшення у Swift 6.2.
➡️ Що заплановано у Swift 6.3.
➡️ Майбутні покращення — оптимізація біндінгів, видалення старих хаків тощо.
➡️ Довгострокові плани.
Цей документ — must-read для тих, хто хоче зрозуміти, чому іноді компілятор “задумується” і як Swift рухається до більш стабільної та швидкої перевірки типів.
🇺🇦 iOSDevUA
Нарешті в одному місці з’явилося детальне пояснення не лише поточних проблем, а й загалом того, як влаштований тайп-чекер у Swift.
📖 В офіційній документації вийшов великий пост від Слави Пєстова, де описано, що вже зроблено для оптимізації перевірки типів у компіляторі, що в роботі зараз і що планується далі.
Туди входять:
• зміни, реалізовані в Swift 6.2;
• те, що вже в main-гілці;
• завдання, заплановані для Swift 6.3;
• і навіть попередні довгострокові плани розвитку.
Йдеться про ту саму ситуацію, коли компілятор видає:
“The compiler is unable to type-check this expression in reasonable time.”
Слава розклав усе по категоріях і пояснив ключові аспекти:
➡️ Перевантаження — які взагалі типи перевантаження Swift дозволяє.
➡️ Розв’язування обмежень — як компілятор визначає типи під час компіляції.
➡️ Алгоритмічна складність — чому певні вирази можуть різко «зависати».
➡️ Що означає “reasonable time”.
➡️ Робота з некоректними виразами та діагностика.
➡️ Цілі й нецілі оновлень.
➡️ Поліпшення у Swift 6.2.
➡️ Що заплановано у Swift 6.3.
➡️ Майбутні покращення — оптимізація біндінгів, видалення старих хаків тощо.
➡️ Довгострокові плани.
Цей документ — must-read для тих, хто хоче зрозуміти, чому іноді компілятор “задумується” і як Swift рухається до більш стабільної та швидкої перевірки типів.
🇺🇦 iOSDevUA
Swift Forums
Roadmap for improving the type checker
Roadmap for improving the type checker In the past, we've released various "manifestos" and "roadmaps" to discuss planned improvements to the language. This post is also a roadmap of sorts, but instead, the focus is on the implementation rather than user…
❤2
🎬 Доповіді з конференції Swift Connection 2025
У відкритому доступі з’явився список виступів із цьогорічної паризької конференції. Серед найцікавіших:
📺 Що насправді відбувається з вашим iOS-застосунком під час компіляції
У сесії розглядають файли .xcarchive та .ipa, показуючи, що саме Xcode робить із вихідним кодом. Також пояснюють процес компіляції, роботу з Mach-O, Info.plist, метаданими Obj-C/Swift та іншими компонентами.
📺 Покращена обробка помилок у Swift: від Obj-C Legacy до Swift 6
Автор ділиться тим, чому навіть LocalizedError не завжди є надійним рішенням, і як виглядає справді нативна обробка помилок у Swift.
📺 Дивовижний світ приватних API
У доповіді пояснюють не лише, як працюють приватні API, а й як їх шукати та використовувати в Objective-C (і навіть пробувати у Swift).
📺 Створення iOS-застосунків без Xcode за допомогою Cursor + Claude
У лекції розповідають про Cursor, Claude Code та показують, як налаштувати проєкт для збірки поза межами Xcode.
🇺🇦 iOSDevUA
У відкритому доступі з’явився список виступів із цьогорічної паризької конференції. Серед найцікавіших:
📺 Що насправді відбувається з вашим iOS-застосунком під час компіляції
У сесії розглядають файли .xcarchive та .ipa, показуючи, що саме Xcode робить із вихідним кодом. Також пояснюють процес компіляції, роботу з Mach-O, Info.plist, метаданими Obj-C/Swift та іншими компонентами.
📺 Покращена обробка помилок у Swift: від Obj-C Legacy до Swift 6
Автор ділиться тим, чому навіть LocalizedError не завжди є надійним рішенням, і як виглядає справді нативна обробка помилок у Swift.
📺 Дивовижний світ приватних API
У доповіді пояснюють не лише, як працюють приватні API, а й як їх шукати та використовувати в Objective-C (і навіть пробувати у Swift).
📺 Створення iOS-застосунків без Xcode за допомогою Cursor + Claude
У лекції розповідають про Cursor, Claude Code та показують, як налаштувати проєкт для збірки поза межами Xcode.
🇺🇦 iOSDevUA
📺 Нове інтерв’ю з Крісом Латтнером — від Swift до Mojo
Особливо сподобався момент, де Кріс розповів:
І тоді він просто створив власну мову програмування. 💪
Оце я розумію спосіб вирішити проблему! Красиво, Кріс, без зайвих слів.
Серед цікавих тем інтерв’ю:
➡️ Компілятори початку 2000-х
➡️ Чому Латтнер створив LLVM
➡️ Як створюють мови програмування
➡️ Swift Playgrounds — як зробити програмування доступним кожному
➡️ Які проблеми вирішив Swift і який технічний борг з’явився
➡️ Недоліки компілятора Swift
➡️ Що можна винести з вивчення компіляторів
Це інтерв’ю — не просто історія Swift, а чудовий екскурс у мислення людини, яка стоїть за LLVM, Swift і тепер Mojo.
🇺🇦 iOSDevUA
Особливо сподобався момент, де Кріс розповів:
«До Swift я намагався писати пет-проєкти на Objective-C, але мене дратували квадратні дужки, і я постійно боровся з указівниками та крашами. Мені навіть здавалося, що я недостатньо хороший, щоб створювати застосунки.»
https://youtu.be/Fxp3131i1yE?t=2470
І тоді він просто створив власну мову програмування. 💪
Оце я розумію спосіб вирішити проблему! Красиво, Кріс, без зайвих слів.
Серед цікавих тем інтерв’ю:
➡️ Компілятори початку 2000-х
➡️ Чому Латтнер створив LLVM
➡️ Як створюють мови програмування
➡️ Swift Playgrounds — як зробити програмування доступним кожному
➡️ Які проблеми вирішив Swift і який технічний борг з’явився
➡️ Недоліки компілятора Swift
➡️ Що можна винести з вивчення компіляторів
Це інтерв’ю — не просто історія Swift, а чудовий екскурс у мислення людини, яка стоїть за LLVM, Swift і тепер Mojo.
🇺🇦 iOSDevUA
YouTube
From Swift to Mojo and high-performance AI Engineering with Chris Lattner
Chris Lattner is one of the most influential engineers of the past two decades. He created the LLVM compiler infrastructure and the Swift programming language – and Swift opened iOS development to a broader group of engineers. With Mojo, he’s now aiming to…
💡Статус переходу SwiftPM на Swift Build
На початку року Apple відкрила код Swift Build — власної системи складання, метою якої є повна міграція Swift Package Manager на цю платформу.
Наразі основні функції SwiftPM уже підтримуються, і ви можете протестувати нову систему, передавши під час складання флаг:
Подальші плани
Apple планує завершити перехід до кінця наступного року, після чого стару систему складання буде повністю видалено. Це має забезпечити єдиний, узгоджений інструмент збірки для всіх проєктів на Swift, з кращою швидкодією, масштабованістю та інтеграцією з Xcode і серверними середовищами.
🇺🇦 iOSDevUA
На початку року Apple відкрила код Swift Build — власної системи складання, метою якої є повна міграція Swift Package Manager на цю платформу.
Наразі основні функції SwiftPM уже підтримуються, і ви можете протестувати нову систему, передавши під час складання флаг:
--build-system swiftbuildПодальші плани
Apple планує завершити перехід до кінця наступного року, після чого стару систему складання буде повністю видалено. Це має забезпечити єдиний, узгоджений інструмент збірки для всіх проєктів на Swift, з кращою швидкодією, масштабованістю та інтеграцією з Xcode і серверними середовищами.
🇺🇦 iOSDevUA
Swift Forums
SwiftPM on Swift Build - October Update
SwiftPM on Swift Build - October Update Back in February, we open sourced Swift Build with the goal of adopting it as SwiftPM's unified cross-platform build system implementation. I'd like to share a quick collection of updates on the progress towards that…
❤2
📦 AnyLanguageModel — використання будь-яких LLM у ваших застосунках
Mattt, автор легендарного NSHipster, представив нову бібліотеку AnyLanguageModel. Вона повністю сумісна за API з FoundationModels від Apple, але дозволяє працювати з будь-якою великою мовною моделлю (LLM).
Все максимально просто: достатньо лише замінити import FoundationModels на import AnyLanguageModel, і ваш код миттєво зможе використовувати альтернативні моделі — від OpenAI до локальних варіантів.
🚀 Ідеальне рішення для тих, хто хоче гнучко експериментувати з AI у Swift-застосунках, не переписуючи логіку під кожного провайдера.
🇺🇦 iOSDevUA
Mattt, автор легендарного NSHipster, представив нову бібліотеку AnyLanguageModel. Вона повністю сумісна за API з FoundationModels від Apple, але дозволяє працювати з будь-якою великою мовною моделлю (LLM).
Все максимально просто: достатньо лише замінити import FoundationModels на import AnyLanguageModel, і ваш код миттєво зможе використовувати альтернативні моделі — від OpenAI до локальних варіантів.
🚀 Ідеальне рішення для тих, хто хоче гнучко експериментувати з AI у Swift-застосунках, не переписуючи логіку під кожного провайдера.
🇺🇦 iOSDevUA
📦 spmgraph — візуалізація графа залежностей SwiftPM
spmgraph — це CLI-інструмент для розробників, який дозволяє:
• візуалізувати граф залежностей Swift Package Manager,
• запускати тести на основі impact-аналізу,
• виконувати архітектурний лінтинг для контролю структури проєкту.
Ідеальний тул для великих кодових баз, де важливо бачити, як модулі взаємопов’язані, і швидко знаходити потенційні проблеми ще до збірки.
🇺🇦 iOSDevUA
spmgraph — це CLI-інструмент для розробників, який дозволяє:
• візуалізувати граф залежностей Swift Package Manager,
• запускати тести на основі impact-аналізу,
• виконувати архітектурний лінтинг для контролю структури проєкту.
Ідеальний тул для великих кодових баз, де важливо бачити, як модулі взаємопов’язані, і швидко знаходити потенційні проблеми ще до збірки.
🇺🇦 iOSDevUA
GitHub
GitHub - getyourguide/spmgraph: A dependency graph management tool for the Swift Package Manager
A dependency graph management tool for the Swift Package Manager - GitHub - getyourguide/spmgraph: A dependency graph management tool for the Swift Package Manager
💡Що нового у Swift — новий розділ на swift.org
На сайті swift.org з’явився новий щомісячний розділ, у якому публікують дайджести про все, що відбувається у світі Swift. Тут не лише новини про мову, а й думки, аналітика та точки зору представників спільноти й екосистеми.
У жовтневому випуску висвітлюються головні підсумки Server-Side Swift Conference, релізи основних пакетів та останні пропозиції Swift Evolution.
Серед цікавих матеріалів — доповідь Бена Коена:
📺 Юзабіліті та продуктивність у Swift
У ній він розповідає, як розвивається мова, і як сучасний Swift дозволяє досягати максимальної продуктивності навіть попри всі зміни, що відбуваються в екосистемі.
📖 Повністю дайджест можна прочитати тут:
https://www.swift.org/blog/whats-new-in-swift-october-2025/
🇺🇦 iOSDevUA
На сайті swift.org з’явився новий щомісячний розділ, у якому публікують дайджести про все, що відбувається у світі Swift. Тут не лише новини про мову, а й думки, аналітика та точки зору представників спільноти й екосистеми.
У жовтневому випуску висвітлюються головні підсумки Server-Side Swift Conference, релізи основних пакетів та останні пропозиції Swift Evolution.
Серед цікавих матеріалів — доповідь Бена Коена:
📺 Юзабіліті та продуктивність у Swift
У ній він розповідає, як розвивається мова, і як сучасний Swift дозволяє досягати максимальної продуктивності навіть попри всі зміни, що відбуваються в екосистемі.
📖 Повністю дайджест можна прочитати тут:
https://www.swift.org/blog/whats-new-in-swift-october-2025/
🇺🇦 iOSDevUA
Swift.org
What's new in Swift: October 2025 Edition
Editor Note: This is the first of a new series, What’s new in Swift, a regular digest featuring what’s new in the Swift project and ecosystem, with insights and perspectives from across the Swift world. This October edition covers highlights from the Server…
👍1
💡Проєктування та створення кастомних лейаутів у SwiftUI
📖 В офіційній документації Apple є чудовий приклад із детальними поясненнями різних інструментів проєктування кастомних лейаутів
🛠 У демо застосунку реалізовані кнопки для голосування за певний тип домашнього улюбленця, показується кількість голосів і відносний рейтинг у лідерборді. Також присутня візуалізація аватарів тварин, розташованих відповідно до їхньої позиції в рейтингу.
Крім цього, у матеріалі детально розбираються:
➡️ Робота ViewThatFits
Як вибирати в’юшку, яка найкраще підходить під доступний простір.
➡️ Підвищення ефективності лейауту за допомогою кешування
Як зменшити кількість перерахунків і підвищити продуктивність.
➡️ Анімація переходів між різними лейаутами
Як створювати плавні зміни між конфігураціями розміщення елементів.
Корисний та наочно структурований ресурс для тих, хто хоче навчитися створювати власні адаптивні, ефективні та красиво анімовані лейаути в SwiftUI.
🇺🇦 iOSDevUA
📖 В офіційній документації Apple є чудовий приклад із детальними поясненнями різних інструментів проєктування кастомних лейаутів
🛠 У демо застосунку реалізовані кнопки для голосування за певний тип домашнього улюбленця, показується кількість голосів і відносний рейтинг у лідерборді. Також присутня візуалізація аватарів тварин, розташованих відповідно до їхньої позиції в рейтингу.
Крім цього, у матеріалі детально розбираються:
➡️ Робота ViewThatFits
Як вибирати в’юшку, яка найкраще підходить під доступний простір.
➡️ Підвищення ефективності лейауту за допомогою кешування
Як зменшити кількість перерахунків і підвищити продуктивність.
➡️ Анімація переходів між різними лейаутами
Як створювати плавні зміни між конфігураціями розміщення елементів.
Корисний та наочно структурований ресурс для тих, хто хоче навчитися створювати власні адаптивні, ефективні та красиво анімовані лейаути в SwiftUI.
🇺🇦 iOSDevUA
💡Оновлення App Store Review Process
Apple внесла кілька важливих змін у процес публікації та маркетингу застосунків:
👉 Тепер можна надсилати нові версії застосунку на рев’ю, навіть якщо попередня ще не пройшла перевірку.
Наприклад, поки рецензують мажорний апдейт, ви можете залити хотфікс критичного бага.
👉 Ліміт кастомних сторінок у App Store збільшили удвічі — до 70.
Кожній сторінці тепер можна задавати власні ключові слова для пошуку.
👉 Промокоди поступово відключать у 2026 році.
Їх замінять offer codes, які працюють і з внутрішніми покупками, і з підписками.
Ці зміни значно спрощують роботу з релізами та дають більше можливостей для гнучкого маркетингу в App Store.
🇺🇦 iOSDevUA
Apple внесла кілька важливих змін у процес публікації та маркетингу застосунків:
👉 Тепер можна надсилати нові версії застосунку на рев’ю, навіть якщо попередня ще не пройшла перевірку.
Наприклад, поки рецензують мажорний апдейт, ви можете залити хотфікс критичного бага.
👉 Ліміт кастомних сторінок у App Store збільшили удвічі — до 70.
Кожній сторінці тепер можна задавати власні ключові слова для пошуку.
👉 Промокоди поступово відключать у 2026 році.
Їх замінять offer codes, які працюють і з внутрішніми покупками, і з підписками.
Ці зміни значно спрощують роботу з релізами та дають більше можливостей для гнучкого маркетингу в App Store.
🇺🇦 iOSDevUA
9to5Mac
Apple adds new App Store submission and marketing features - 9to5Mac
Apple is rolling out a round of enhancements that will make it easier for developers to submit, manage, and market their apps on the App Store.
👍2
💡Порада щодо продуктивності для List + ForEach у SwiftUI
Якщо ваш список помітно підлагує, можна скористатися корисним параметром
https://x.com/KyleSwifter/status/1979849200222531959.
Установивши його в
https://x.com/KyleSwifter/status/1979926926039896387.
🛠 Увімкнути параметр можна й через
https://github.com/Dimillian/IceCubesApp/pull/2350.
Цей підхід допомагає швидко знайти проблеми з ідентифікаторами, переформуванням в’юшок або неефективними моделями даних у ваших списках.
🇺🇦 iOSDevUA
Якщо ваш список помітно підлагує, можна скористатися корисним параметром
-LogForEachSlowPath, про який згадує автор тут:https://x.com/KyleSwifter/status/1979849200222531959.
Установивши його в
YES, SwiftUI почне логувати попередження про «повільні місця» у ForEach — наприклад, такі, як у цьому прикладі:https://x.com/KyleSwifter/status/1979926926039896387.
🛠 Увімкнути параметр можна й через
UserDefaults, як це зроблено в IceCubesApp — ось приклад PR:https://github.com/Dimillian/IceCubesApp/pull/2350.
Цей підхід допомагає швидко знайти проблеми з ідентифікаторами, переформуванням в’юшок або неефективними моделями даних у ваших списках.
🇺🇦 iOSDevUA
❤3