💡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
💡Покрокова анімація в SwiftUI
На talk.objc.io вийшов безкоштовний випуск, у якому детально розглядається створення анімації для заголовка та кількох комірок, що з’являються у шаховому порядку з плавною зміною прозорості та градієнта.
📖 Переглянути відео та ознайомитися з прикладами коду можна тут: talk.objc.io.
🇺🇦 iOSDevUA
На talk.objc.io вийшов безкоштовний випуск, у якому детально розглядається створення анімації для заголовка та кількох комірок, що з’являються у шаховому порядку з плавною зміною прозорості та градієнта.
📖 Переглянути відео та ознайомитися з прикладами коду можна тут: talk.objc.io.
🇺🇦 iOSDevUA
💡Створення UDP-сервера та клієнта в Swift за допомогою Network Framework
Модель OSI описує, як пристрої у локальних і глобальних мережах передають дані. Вона складається з 7 рівнів, і хоча для більшості завдань достатньо URLSession, для роботи з TCP та UDP потрібен Network Framework, який забезпечує більший контроль на транспортному рівні.
📖 У цьому матеріалі розглядається створення UDP-сервера та клієнта на практичному прикладі.
🛠 Повний код доступний на GitHub.
🇺🇦 iOSDevUA
Модель OSI описує, як пристрої у локальних і глобальних мережах передають дані. Вона складається з 7 рівнів, і хоча для більшості завдань достатньо URLSession, для роботи з TCP та UDP потрібен Network Framework, який забезпечує більший контроль на транспортному рівні.
📖 У цьому матеріалі розглядається створення UDP-сервера та клієнта на практичному прикладі.
🛠 Повний код доступний на GitHub.
🇺🇦 iOSDevUA
👍1
💡Проблеми продуктивності List у SwiftUI на macOS
Автор стверджує, що стандартний List у SwiftUI може мати проблеми з продуктивністю на macOS при роботі з великим обсягом даних (10 000+ елементів).
💡 Рішення – власна кастомна реалізація, яка позбавлена цих недоліків.
Сам не тестував, але матеріал виглядає цікавим.
📖 Ознайомитися можна тут: Custom Lazy List у SwiftUI.
🇺🇦 iOSDevUA
Автор стверджує, що стандартний List у SwiftUI може мати проблеми з продуктивністю на macOS при роботі з великим обсягом даних (10 000+ елементів).
💡 Рішення – власна кастомна реалізація, яка позбавлена цих недоліків.
Сам не тестував, але матеріал виглядає цікавим.
📖 Ознайомитися можна тут: Custom Lazy List у SwiftUI.
🇺🇦 iOSDevUA
Nil Coalescing
Designing a custom lazy list in SwiftUI with better performance
Implement a high-performance lazy scrolling list in SwiftUI by efficiently reusing views for smooth scrolling with large datasets.
💡Які версії iOS зараз використовуються?
Якщо ви обираєте мінімальну підтримувану версію iOS для свого застосунку, ось актуальна статистика використання різних версій iOS:
📊 Розподіл основних версій:
1️⃣ iOS 18 – 79,5%
2️⃣ iOS 17 – 13,7%
3️⃣ iOS 16 – 5%
📌 Детальне розбиття за мінорними версіями доступне тут.
🇺🇦 iOSDevUA
Якщо ви обираєте мінімальну підтримувану версію iOS для свого застосунку, ось актуальна статистика використання різних версій iOS:
📊 Розподіл основних версій:
1️⃣ iOS 18 – 79,5%
2️⃣ iOS 17 – 13,7%
3️⃣ iOS 16 – 5%
📌 Детальне розбиття за мінорними версіями доступне тут.
🇺🇦 iOSDevUA
👍1😁1
Picker у SwiftUI: приклади та пояснення 🎨
Корисний матеріал про Picker у SwiftUI – як його налаштовувати, стилізувати та використовувати у додатках.
📖 Розбір з прикладами коду та поясненнями, щоб краще зрозуміти його можливості.
🇺🇦 iOSDevUA
Корисний матеріал про Picker у SwiftUI – як його налаштовувати, стилізувати та використовувати у додатках.
📖 Розбір з прикладами коду та поясненнями, щоб краще зрозуміти його можливості.
🇺🇦 iOSDevUA
💡Lynx – новий кросплатформенний фреймворк від TikTok
TikTok презентували Lynx – новий UI-фреймворк для кросплатформеної розробки.
🔹 Чим він відрізняється?
Концептуально він нагадує React Native: використовує веб-технології, але рендерить інтерфейс у нативні компоненти кожної платформи.
⚡️ Головна фішка – продуктивність
Lynx працює на двох окремих рантаймах:
1️⃣ Один відповідає за високопріоритетні UI-операції
2️⃣ Другий – за основний користувацький код
🛠 Детальніше про проєкт – у блозі розробників.
🇺🇦 iOSDevUA
TikTok презентували Lynx – новий UI-фреймворк для кросплатформеної розробки.
🔹 Чим він відрізняється?
Концептуально він нагадує React Native: використовує веб-технології, але рендерить інтерфейс у нативні компоненти кожної платформи.
⚡️ Головна фішка – продуктивність
Lynx працює на двох окремих рантаймах:
1️⃣ Один відповідає за високопріоритетні UI-операції
2️⃣ Другий – за основний користувацький код
🛠 Детальніше про проєкт – у блозі розробників.
🇺🇦 iOSDevUA
💡Model Context Protocol (MCP) у Swift
У блозі NSHipster вийшла нова стаття, де детально розбирають MCP (Model Context Protocol) – протокол для взаємодії LLM із зовнішніми інструментами.
🔍 Що цікавого?
📖 У статті пояснюється, як працює протокол та для чого він може знадобитися.
🛠 Крім того, автори відкрили Swift SDK для MCP у відкритий доступ.
🇺🇦 iOSDevUA
У блозі NSHipster вийшла нова стаття, де детально розбирають MCP (Model Context Protocol) – протокол для взаємодії LLM із зовнішніми інструментами.
🔍 Що цікавого?
📖 У статті пояснюється, як працює протокол та для чого він може знадобитися.
🛠 Крім того, автори відкрили Swift SDK для MCP у відкритий доступ.
🇺🇦 iOSDevUA
NSHipster
Model Context Protocol (MCP)
Language Server Protocol (LSP) revolutionized how programming languages integrate with developer tools. Model Context Protocol (MCP) aims to do the same for a new generation of AI tools.
❤1
💡Оптимізація таблиць у SwiftUI через UIKit
Якщо продуктивність списків у SwiftUI в певних кейсах недостатня, є ефективний підхід:
🔹 Використовувати SwiftUI тільки для розмітки ячейок
🔹 А для управління таблицею переключитися на UICollectionView
Це стало можливим завдяки новому механізму конфігурації UIKit, який дозволяє інтегрувати SwiftUI в комірки.
📖 Детальніше про методику – в оригінальній статті.
🇺🇦 iOSDevUA
Якщо продуктивність списків у SwiftUI в певних кейсах недостатня, є ефективний підхід:
🔹 Використовувати SwiftUI тільки для розмітки ячейок
🔹 А для управління таблицею переключитися на UICollectionView
Це стало можливим завдяки новому механізму конфігурації UIKit, який дозволяє інтегрувати SwiftUI в комірки.
📖 Детальніше про методику – в оригінальній статті.
🇺🇦 iOSDevUA
Swift with Majid
SwiftUI Performance - How to use UIKit
Nowadays, Apple platform development has undergone significant changes. Previously, we believed that building the core of an app around UIKit and using SwiftUI for certain screens was a good idea. This week, we’ll delve into the foundation of app development…
💡Виявлення та усунення зависань в iOS-додатках
📖 У цій статті розглядається одна з найпоширеніших причин погіршення продуктивності iOS-додатків.
Спойлер: у всьому винні важкі обчислення в головному потоці.
Описано, як виявляти зависання за допомогою App Hangs Detection та Instruments, змодельовано сценарій зависання інтерфейсу у SwiftUI-проєкті, а також показано кроки для виправлення цієї проблеми.
🇺🇦 iOSDevUA
📖 У цій статті розглядається одна з найпоширеніших причин погіршення продуктивності iOS-додатків.
Спойлер: у всьому винні важкі обчислення в головному потоці.
Описано, як виявляти зависання за допомогою App Hangs Detection та Instruments, змодельовано сценарій зависання інтерфейсу у SwiftUI-проєкті, а також показано кроки для виправлення цієї проблеми.
🇺🇦 iOSDevUA
❤2
💡Новий реліз Copilot for Xcode
Вийшла оновлена версія плагіна Copilot, яка офіційно вийшла з бети та стала загальнодоступною. Головна новація – можливість вибору моделі LLM для чату: Claude Sonnet, o1 або o3-mini.
🇺🇦 iOSDevUA
Вийшла оновлена версія плагіна Copilot, яка офіційно вийшла з бети та стала загальнодоступною. Головна новація – можливість вибору моделі LLM для чату: Claude Sonnet, o1 або o3-mini.
🇺🇦 iOSDevUA
💡У Південній Кореї запровадили систему підтвердження для підписок
• Користувач оформлює триал
• Триал завершується
🆕 Apple надсилає запит на додаткове підтвердження (через email і push-сповіщення)
• Після цього відбувається списання або скасування підписки
Підтвердження потрібне лише при переході з триалу або промо-офера, коли змінюється ціна. Якщо користувач одразу оформлює підписку за стандартною вартістю — додаткових дій не потрібно.
Нововведення запроваджене через місцеве законодавство та поки що діє лише в Південній Кореї. В інших країнах усе залишається без змін.
👉 https://developer.apple.com/news/?id=bo1b122z
🇺🇦 iOSDevUA
• Користувач оформлює триал
• Триал завершується
🆕 Apple надсилає запит на додаткове підтвердження (через email і push-сповіщення)
• Після цього відбувається списання або скасування підписки
Підтвердження потрібне лише при переході з триалу або промо-офера, коли змінюється ціна. Якщо користувач одразу оформлює підписку за стандартною вартістю — додаткових дій не потрібно.
Нововведення запроваджене через місцеве законодавство та поки що діє лише в Південній Кореї. В інших країнах усе залишається без змін.
👉 https://developer.apple.com/news/?id=bo1b122z
🇺🇦 iOSDevUA
Apple
Upcoming changes to offers and trials for subscriptions in South Korea - Latest News - Apple Developer
Starting February 14, 2025, new regulatory requirements in South Korea will apply to all apps with offers and trials for auto-renewing subscriptions.To comply, if you offer trials or offers for auto-renewing subscriptions to your app or game, additional consent…
Дуже детальний та корисний матеріал про рендеринг у SwiftUI 🔥
👉 https://twocentstudios.com/2025/03/10/pixel-art-swift-ui/
🇺🇦 iOSDevUA
👉 https://twocentstudios.com/2025/03/10/pixel-art-swift-ui/
🇺🇦 iOSDevUA
This media is not supported in your browser
VIEW IN TELEGRAM
💡Динамічна адаптація до доступного простору за допомогою ViewThatFits
Його принцип роботи простий:
Зазвичай вибір йде від найбільшого до найменшого, проте, якщо вью може поміститися лише вздовж однієї осі, порядок може змінюватися.
За замовчуванням
📖 Гарний приклад використання ViewThatFits можна знайти тут та в офіційній документації.
🇺🇦 iOSDevUA
ViewThatFits — це компонент SwiftUI, доступний із iOS 16.Його принцип роботи простий:
ViewThatFits вибирає перший дочірній елемент, розмір якого найбільш підходить до запропонованого простору.Зазвичай вибір йде від найбільшого до найменшого, проте, якщо вью може поміститися лише вздовж однієї осі, порядок може змінюватися.
За замовчуванням
ViewThatFits працює з обмеженнями по горизонтальній та вертикальній осях.📖 Гарний приклад використання ViewThatFits можна знайти тут та в офіційній документації.
🇺🇦 iOSDevUA
👍3
💡Невеликий навчальний матеріал (для зовсім новачків) про одну з головних проблем верстки – роботу з Safe Area та Insets.
👉 https://www.createwithswift.com/placing-ui-components-within-the-safe-area-inset/
🇺🇦 iOSDevUA
👉 https://www.createwithswift.com/placing-ui-components-within-the-safe-area-inset/
🇺🇦 iOSDevUA
❤3
💡Що відбувається з Apple Intelligence
Минулого тижня Apple знову відклали реліз нових AI-фіч, які ще на WWDC обіцяли показати користувачам. Одночасно з цим відбувся витік інформації з внутрішнього обговорення команди Siri:
👉 AI стабільно працює лише у 66-80% випадків, що поки що надто мало для продакшну.
👉 Менеджер команди Siri звинувачує маркетинг у тому, що ті занадто рано показали ще недопрацьовані фічі, створивши завищені очікування.
👉 Звільняти топ-менеджерів через ці проблеми поки що не планують, але повністю таку можливість не виключають.
👉 Apple Intelligence випустять лише тоді, коли будуть впевнені у якості.
🇺🇦 iOSDevUA
Минулого тижня Apple знову відклали реліз нових AI-фіч, які ще на WWDC обіцяли показати користувачам. Одночасно з цим відбувся витік інформації з внутрішнього обговорення команди Siri:
👉 AI стабільно працює лише у 66-80% випадків, що поки що надто мало для продакшну.
👉 Менеджер команди Siri звинувачує маркетинг у тому, що ті занадто рано показали ще недопрацьовані фічі, створивши завищені очікування.
👉 Звільняти топ-менеджерів через ці проблеми поки що не планують, але повністю таку можливість не виключають.
👉 Apple Intelligence випустять лише тоді, коли будуть впевнені у якості.
🇺🇦 iOSDevUA
Daring Fireball
Something Is Rotten in the State of Cupertino
Who decided these personalized Siri features should go in the WWDC keynote, with a promise they’d arrive in the coming year, when, at the time, they were in such an unfinished state they could not be demoed to the media even in a controlled environment? Three…
❤1
💡Коректний пошук входження рядка
❌ name.lowercased().contains(searchText.lowercased())
✅ name.localizedStandardContains(searchText)
Чому другий варіант кращий:
👉 Автоматично враховує регістр (case insensitive).
👉 Ігнорує діакритичні знаки (наприклад, cafe vs café).
👉 Коректно працює з локально-специфічними символами (наприклад, ẞ → ss).
👉 Підтримується в SwiftData.
🇺🇦 iOSDevUA
❌ name.lowercased().contains(searchText.lowercased())
✅ name.localizedStandardContains(searchText)
Чому другий варіант кращий:
👉 Автоматично враховує регістр (case insensitive).
👉 Ігнорує діакритичні знаки (наприклад, cafe vs café).
👉 Коректно працює з локально-специфічними символами (наприклад, ẞ → ss).
👉 Підтримується в SwiftData.
🇺🇦 iOSDevUA
❤3