🇺🇦 iOS Dev UA - спільнота iOS розробників
384 subscribers
399 photos
42 videos
9 files
959 links
Перша україномовна спільнота iOS розробників 🇺🇦

👨‍💻Цікаві матеріали зі світу розробки для продуктів Apple.
Статті по розробці на Swift та SwiftUI. Огляд нових технологій в розробці від Apple.

чат: @iOSDevsUAChat
Ідеї та пропозиції: @SergeyZhuravel
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
💡Додаток для тренувань на watchOS із HealthKit + SwiftUI

Той, хто бодай раз писав застосунок для Apple Watch, знає, скільки проблем може виникнути вже на етапі з’єднання: затяжні синхронізації, копіювання символів, випадкові втрати attach, обмеження фіч тощо.

Я добре з цим знайомий: постійно створюю віджети й stand‑alone‑рішення для годинника й навіть консультував стартап під час розробки власного протоколу. Тож кожен завершений (або хоча б доведений до робочої точки) приклад — справді цінний.

Нині Strava майже монополіст серед фітнес‑тре­керів, але альтернативи є. Один із них — відкритий проєкт від 0Itsuki0, де автор ділиться досвідом роботи з воркаутами:

1. SwiftUI: простий додаток для тренувань із HealthKit (частина 1)
2. SwiftUI: читання даних із HealthKit
3. SwiftUI: поділ тренування на під‑активності

🛠 Увесь код доступний на GitHub: https://github.com/0Itsuki0/SwiftUI_SimpleWorkoutApp

🇺🇦 iOSDevUA
👍31
💡Чому написати калькулятор — насправді складно

Для багатьох із нас калькулятор був чи не першим додатком, написаним ще на Basic чи Pascal. Здається, усе просто: базові математичні операції вже визначені. Та варто зануритися глибше, і з’ясовується, що обчислення з плаваючою точкою, порядок виконання, межі точності й різні алгоритми округлення роблять «звичайний» калькулятор справжнім викликом.

У цій розповіді пояснюють, чому математика не така очевидна, як здається, й чому калькулятор на Android частіше дає коректні результати, ніж стандартний на iOS.

🇺🇦 iOSDevUA
💡Актори у Swift — навіщо вони потрібні?

Актор — це посилальний тип, подібний до класу, призначений для безпечного керування змінним станом у багатопотоковому середовищі.

Запроваджені у Swift 5.5, актори допомагають розробникам писати потокобезпечний і, що важливо, передбачуваний код під час роботи з асинхронними задачами.

📖 У цьому матеріалі пояснюється, чим актори відрізняються від класів, як і коли їх застосовувати, а також наведено приклади — зокрема, просту реалізацію чат-сервера.

🇺🇦 iOSDevUA
💡Безкоштовні моделі OpenAI у Cursor та Windsurf

Якщо ви ще не встигли спробувати нове покоління AI‑редакторів коду, зараз — саме час. OpenAI нещодавно випустила кілька нових моделей, спеціально оптимізованих для розробки, а сервіси Cursor та Windsurf відкрили до них безкоштовний доступ.

Ідеальна можливість познайомитися з AI‑асистентами прямо у вашому редакторі.

🇺🇦 iOSDevUA
💡Swift Play Experimental — новий проєкт від Apple

🛠 У репозиторії Apple зʼявився новий експериментальний інструмент, який можна використовувати для навчання, тренувань або тестування Swift‑коду.

Прототип містить:
• Макрос #Playground — дозволяє визначати виконувані блоки коду прямо в будь-якому Swift‑файлі.
• Команда swift play — автоматично перезапускає виконання коду після будь-яких змін.
• Playgrounds API — дає змогу будь-якому інструменту чи IDE реалізувати підтримку запуску блоків із #Playground (як це реалізовано для swift play).

📖 Опис і приклади використання

ℹ️ Проєкт наразі має статус експериментального, тому не рекомендований для продакшену — але автори закликають спробувати.

🇺🇦 iOSDevUA
🔥2
💡Міграція на Bazel і прискорення збірок у 3 рази

Ще одна історія успішного переходу на Bazel — цього разу з трьохкратним прискоренням збірок як на CI, так і на локальних машинах розробників. У статті детально розглянуто ключові етапи:

👉 Досягнення повної сумісності з Xcode через rules_xcodeproj
👉 Проблеми, з якими зіткнулися: code coverage, конфігурація наборів правил і збільшення розміру бінарників
👉 Покроковий план міграції для команд, які планують повторити цей шлях

Корисний досвід для тих, хто прагне стабільних і швидких збірок у великих iOS-проєктах.

🇺🇦 iOSDevUA
💡Що нового у SwiftWasm

Підтримка WebAssembly у Swift розвивається дуже стрімко. Починаючи зі Swift 6.1, для збірки Wasm більше не потрібен кастомний патчений тулчейн — достатньо офіційного!

Тож якщо ви ще не експериментували зі створенням веб‑застосунків на Swift, саме час почати.

🇺🇦 iOSDevUA
💡Навчальний матеріал про одну з найменш інтуїтивних (у порівнянні з map, compactMap тощо) функцій для роботи з колекціями — reduce

Детальне й зрозуміле пояснення того, як працює reduce, коли його варто використовувати та чим він корисний у реальних задачах. 👍

👉 https://www.avanderlee.com/swift/swift-reduce-combining-elements-into-a-single-value/

🇺🇦 iOSDevUA
💡Колекція корисних макросів для Swift

Я вже ділився цим репозиторієм два роки тому, але з того часу він суттєво розширився. Ось кілька цікавих новинок:

👉 CloakedString — макрос для обфускації рядків, що допомагає приховати чутливі дані у білді.
👉 MemoizMacro — реалізація мемоізації функцій через макроси.
👉 SwiftNet — зручний інструмент для мережевих запитів із підтримкою пінінгу сертифікатів, колбеків та інших фічей.

Корисна добірка для тих, хто хоче витиснути максимум зі Swift‑макросів.

🇺🇦 iOSDevUA
🎬Доповіді з конференції try! Swift Tokyo 2025

Буквально тиждень тому завершилася одна з наймасштабніших iOS-конференцій — і виступи вже доступні онлайн.

📺 Understanding Render Loop to optimise SwiftUI
Розбір рендер-циклу SwiftUI та його впливу на продуктивність. Пояснюється, як працює інтерфейс “під капотом”, і які техніки допоможуть усунути лаги.

📺 Special effects with SwiftUI Text
Демонстрація можливостей TextRenderer у SwiftUI — як додати ефектів до тексту й зробити UI більш динамічним.

📺 Rendering beautiful text using MSDFs and Metal
Реалізація високоякісного тексту в реальному часі на нескінченному канвасі за допомогою Metal і техніки MSDF.

📺 Raymarching Shaders with SwiftUI
Як поєднати SwiftUI та raymarching для створення потужних шейдерів у нативному середовищі.

📺 SwiftSyntax: for good and evil
SwiftSyntax — це бібліотека від Apple, яка може бути використана як для аналізу й форматування коду, так і для його генерації. У доповіді розглянуто нетипові сценарії її застосування.

📺 Повний плейлист усіх виступів:
Дивитися всі доповіді

🇺🇦 iOSDevUA
4
🔥Apple більше не зможе блокувати зовнішні способи оплати в США

Суд у США остаточно заборонив Apple перешкоджати розміщенню посилань на сторонні платіжні сервіси. Відтепер розробники iOS-додатків можуть вільно перенаправляти користувачів на оплату через веб — без комісії в 15–30%, яку раніше стягувала Apple.

Це рішення фактично прирівнює США до Європейського Союзу, де подібні правила вже діють завдяки регуляції DMA (Digital Markets Act).

Apple оновила правила App Store, офіційно дозволивши вбудовувати сторонні платіжні системи для користувачів у США. Тепер розробники можуть інтегрувати власні еквайринги без порушення політик — усе чітко прописано в оновлених гайдлайнах.

🇺🇦 iOSDevUA
👍1
💡Плагін для iOS‑розробки у VS Code

Якщо ви використовуєте VS Code і займаєтеся iOS‑розробкою — зверніть увагу на цікавий плагін SweetPad. Його мета — відтворити більшість ключових можливостей Xcode прямо у VS Code.

На поточному етапі плагін уже вміє:
👉 Автодоповнювати Swift‑код
👉 Збирати та запускати застосунки
👉 Форматувати код
👉 Керувати симуляторами та підключеними пристроями
👉 Запускати дебаггер і юніт‑тести

Цікавий варіант для тих, хто хоче спростити робоче середовище або відмовитися від Xcode для повсякденних задач.

🇺🇦 iOSDevUA
3
💡Як працювати з Measurement у Swift

У Swift передбачено спеціальний тип — Measurement, який значно спрощує роботу з різними одиницями вимірювання.

Легке перетворення величин між різними одиницями
Автоматична адаптація до вибраної локалі (наприклад, метрична чи імперська система)
Коректне форматування назв одиниць за допомогою NumberFormatter

Усе це робить Measurement зручним інструментом для побудови інтерфейсів, що враховують локалізацію та типи величин.

🇺🇦 iOSDevUA
3
💡Нещодавно з’явилися матеріали про зміни в Swift 6.1, з особливим акцентом на Concurrency.
А тепер — оновлення для Swift 6.2, знову ж — із фокусом на паралелізм.

Усе пояснено доступно, з якісними прикладами — варто переглянути! 👍

👉 https://www.avanderlee.com/concurrency/swift-6-2-concurrency-changes/

🇺🇦 iOSDevUA
2
💡Нещодавно я вже ділився матеріалом про відлагодження SwiftUI‑застосунків за допомогою Instruments та інших інструментів.

Ось ще один корисний ресурс на цю ж тему — з поясненнями та відео, якщо зручніше дивитися у форматі 📽

👉 https://www.donnywals.com/using-instruments-to-profile-a-swiftui-app/

🇺🇦 iOSDevUA
2
💡Детальний матеріал про те, як керувати залежностями в бінарних Swift‑пакетах.

Якщо не хочете заглиблюватися в технічні подробиці — на початку є коротка відповідь на головне запитання, а далі вже розбір нюансів для тих, хто хоче зрозуміти все до кінця.

👉 https://danielsaidi.com/blog/2025/05/02/adding-dependencies-to-binary-swift-packages

🇺🇦 iOSDevUA
💡Перші приклади попереджень про зовнішні покупки в iOS‑застосунках

Після нещодавнього судового рішення, у якому Apple програла, застосункам у США дозволили використовувати зовнішні способи оплати.

І ось — у App Store вже почали зʼявлятися перші додатки з новим механізмом.

Тепер користувач бачить:
👉 Спеціальну позначку біля кнопки завантаження
👉 Тег external purchases
👉 Попередження доступне як на iOS, так і у веб‑версії стору

Це новий етап у зміні політик App Store, який відкриває більше свободи для розробників.

🇺🇦 iOSDevUA
2
💡Sentry придбали Emerge Tools

На випадок, якщо ви забули — Emerge Tools це крутий стартап, який розробляє інструменти для аналізу розміру застосунків та їхньої продуктивності.

Стало відомо, що продукт і команда переходять до Sentry — компанії, яка вже створює, мабуть, найкраще рішення на ринку для аналізу крешів. Завдяки цій угоді Sentry має всі шанси стати універсальним стандартом для моніторингу та покращення нефункціональної якості мобільних застосунків.

🇺🇦 iOSDevUA
💡Swift Regex — інструмент для перевірки регулярних виразів

Корисний проєкт від Кішікави Кацуми нещодавно отримав круте оновлення — тепер у ньому з’явився дебаггер, який дозволяє покроково стежити за тим, як працює пошук по regex.

🛠 Спробувати можна тут: swiftregex.com
💻 Або заглянути в репозиторій на GitHub — і, за бажання, зробити свій вклад у розвиток.

До речі, на нещодавній конференції в Токіо автор розповідав, як створити власний mini-regex engine у Swift — з фокусом лише на трьох базових операціях: конкатенація, чергування, повторення.

📋 Слайди презентації
💡 Код прикладу — теж у відкритому доступі.

🇺🇦 iOSDevUA
💡Партнерство Apple та Anthropic

Ця новина пройшла майже непоміченою: за чутками, Apple співпрацює з Anthropic — творцями одного з найкращих LLM для програмування — над інтеграцією AI у Xcode.

Що саме це означає, поки не ясно: це може бути як просто підтримка Claude як додаткової моделі, так і глибша інтеграція на рівні дефолтного асистента — або ж щось ще масштабніше.

🇺🇦 iOSDevUA
👍21💩1