🇺🇦 iOS Dev UA - спільнота iOS розробників
Открыть в Telegram
Перша україномовна спільнота iOS розробників 🇺🇦 👨💻Цікаві матеріали зі світу розробки для продуктів Apple. Статті по розробці на Swift та SwiftUI. Огляд нових технологій в розробці від Apple. чат: @iOSDevsUAChat Ідеї та пропозиції: @SergeyZhuravel
Больше383
Подписчики
Нет данных24 часа
-17 дней
+830 день
Архив постов
💡Про Safe Area, мабуть, знають усі, і що стосується UIKit, вже давно мали б навчитися працювати з нею.
А от з SwiftUI + Safe Area ще можуть бути проблеми, думаю.
Ось стаття, яка, якщо і не закриє всі питання, то хоча б з базовими має допомогти 👍
👉 https://swiftwithmajid.com/2021/11/03/managing-safe-area-in-swiftui/
🇺🇦 iOSDevUA
💡Apple змінює умови комісії Core Technology Fee, це та, що про альтернативні магазини:
1. Якщо не заробляєте на додатках, то CTF анулюється. Тільки персональні додатки, бізнесу не можна. Підтверджувати статус щорічно.
2. Якщо додаток став вірусним у перші три роки, то CTF за понад мільйон установок брати не будуть. Дохід повинен бути менше €10 млн.
3. Адаптивний CTF від доходу:
До €10 млн: CTF не стягується протягом трьох років.
Від 10 до 50: CTF до €1 млн на рік протягом трьох років.
Понад 50: стягується повний CTF.
Apple раніше говорила, що їхня комісія небезпечна для студентів та вірусних додатків. Нові умови пом'якшують це.
👉 https://developer.apple.com/news/?id=d0z8d8rx
🇺🇦 iOSDevUA
💡У Swift 6 імпорти можна буде робити публічними або приватними. Це також вплине на ваші публічні функції, якщо ви хочете в них повернути щось, що заімпортовано з якоїсь бібліотеки, наприклад, а вона приватна.
Загалом виглядає цікаво, але набагато цікавіше зрозуміти, який профіт ми з цього отримаємо і як це позначиться на часі збирання, наприклад, та інших важливих речах.
Детальніше можна подивитись у статті, але найцікавіші дослідження з цієї теми ще попереду, думаю!
👉 https://www.polpiella.dev/swift-6-import-access-level
🇺🇦 iOSDevUA
💡Створення додатку-чату, використовуючи StreamChat SDK та SwiftUI
🛠 SDK на Github включає в себе гарний набір високопродуктивних та налаштовуваних компонентів інтерфейсу.
📖 А в цій статті наводиться приклад налаштування (близько 100 рядків коду на повністю робочий додаток).
Додам, що SDK та приклад додатку дозволять ознайомитися з чатом, але при власній реалізації чекатимуть зовсім інші складнощі. Наприклад, як додаток буде справлятися з сотнями повідомлень в секунду (вірте, буває і таке), і як при цьому буде поводити себе інтерфейс. Втім, це зовсім інша історія😎
🇺🇦 iOSDevUA
💡Як TextView працює під капотом
Найкраща стаття минулого тижня. Розбір купи деталей того, як TextView працює під капотом – починаючи з того, як обробляються стилі у AttributedString, закінчуючи тим, як курсор реагує на натискання кнопок на клавіатурі в залежності від положення в тексті.
👉 https://papereditor.app/internals
🇺🇦 iOSDevUA
🤚 Якщо в додатку має бути Privacy Manifest, але його немає, то білд не візьмуть на перевірку. До 1 травня були попередження, а вже сьогодні — вимога.
🇺🇦 iOSDevUA
📲 Apple випускає четверті бета-версії для розробників та публічні бета-версії для iOS 17.5, macOS Sonoma 14.5 та інші.
Release Notes:
👉 iOS & iPadOS 17.5 Beta 4 (21F5073b)
👉 macOS Sonoma 14.5 Beta 4 (23F5074a)
👉 tvOS 17.5 Beta 4 (21L5567a)
👉 visionOS 1.2 beta 4 (21O5580a)
👉 watchOS 10.5 beta 4 (21T5571a)
🇺🇦 iOSDevUA
💡Гайд по Swift Argument Parser
Якщо ви пишете на Swift якісь консольні додатки, ви точно використовуєте пакет Swift Argument Parser. У серії постів розбираються всі деталі роботи з ним, зокрема:
👉 Скорочені та повні флаги
👉 Інверсія флагів
👉 Флаги з enum'ами
З цікавого – прямо в статтю вбудована інтерактивна консоль, у якій можна погратися з прикладами.
🇺🇦 iOSDevUA
💡Відео з мітапу Swift Server Side
Нещодавно відбувся перший офіційний мітап Swift Server Side. Програма така:
👉 Як використовувати Swift на Linux, зокрема в хмарі та на портативних пристроях
👉 Розповідь про Vapor від одного з його розробників
👉 Q&A з учасниками Server-Side Workgroup
🇺🇦 iOSDevUA
💡Короткий огляд про lazy vars у Swift
Обов'язково до ознайомлення всім новачкам.
👉 https://www.donnywals.com/what-are-lazy-vars-in-swift/
🇺🇦 iOSDevUA
💡Ефективний спосіб завантаження великих зображень у головному потоці
У більшості випадків нам підійде варіант:
let image = UIImage(named: "big-image")
imageView.image = image
Але якщо картинка дійсно велика, то це може візуально підвісити додаток на деякий час.
Особливо це проявиться, наприклад, при роботі з колекціями.
У такому випадку можна справедливо звернутися до документації (та до поради Вінсента), в яких говориться про те, що все ж є ще один спосіб.
prepareForDisplay декодує нашу картинку у фоновому потоці, і лише після цього можна використовувати результат із completionHandler.
Важливо не забути повернутися у головний потік, звісно.
Або використовувати Task, якщо ви вже перевели (або переводите проект для Swift Concurrency).
🇺🇦 iOSDevUA💡Якщо ви використовуєте SwiftUI, то напевно використовуєте і
.onTapGesture(). Ось стаття, де автор говорить, що з цим потрібно бути обережнішим. І наводить кілька прикладів, де це може призвести до проблем 🤔
👉 https://www.swiftwithvincent.com/blog/be-careful-when-using-ontapgesture
🇺🇦 iOSDevUA💡Детальний розбір модифікаторів Overlay і Background у SwiftUI
У інструментарії SwiftUI overlay і background відіграють незамінну роль у різних сценаріях розробки.
📖 У цій статті розглянуті не тільки їх унікальні атрибути, але й розбираються фундаментальні відмінності від ZStack, а також показані приклади сценаріїв, для яких вони призначені.
🇺🇦 iOSDevUA
З сьогоднішнього дня завантажувати додатки в 👨💻 App Store Connect можливо тільки з Xcode 15 і останньою SDK: iOS 17 і т.д.
🇺🇦 iOSDevUA
💡Я кілька разів ділився матеріалом про OSLog. Це дійсно дуже зручний інструмент для логів.
Одне діло писати ці логи, але що, якщо ви хочете ще й читати їх у коді? 🤔
Наприклад, щоб зібрати логи і вивести на окремому екрані у своєму додатку, який буде доступний у дебаг-режимі? Мабуть, може бути корисним для тестувальників, щоб зручніше було знаходити проблеми і вже з деталями віддавати баг у роботу 🔥
В OSLog є така опція, хоч і з деякими обмеженнями 🥲
Детальніше у пості:
👉 https://useyourloaf.com/blog/fetching-oslog-messages-in-swift
🇺🇦 iOSDevUA
💡Невелика підбірка важливих хоткеїв у Xcode!
Я дуже сподіваюсь, що більшість з вас вже знайомі, якщо не з усіма, то з багатьма хоткеями, бо особисто мені стає погано, коли я бачу, як розробник з купою років досвіду не вміє нормально користуватися Xcode 🤪
Але новачкам точно буде корисно! 👍
👉 https://tanaschita.com/xcode-shortcuts/
🇺🇦 iOSDevUA
💡Бекенд на Swift навколо ML моделі
Туторіал про те, як на Vapor написати простий бекенд, який дає доступ до Core ML моделі, що класифікує зображення.
🔗Код на GitHub
🇺🇦 iOSDevUA
💡Вступ до Swift для розробників C++
Якщо у вас є друзі, які займаються розробкою на C++, і ви хочете познайомити їх зі своєю улюбленою мовою – ось ідеальний гайд, який проводить аналогії між ментальною моделлю плюсів та Swift і пояснює всю неочевидну магію.
👉 https://www.douggregor.net/posts/swift-for-cxx-practitioners-value-types/
🇺🇦 iOSDevUA
💡Гайд для Privacy Manifest від інженерів Apple
Продовжуємо актуальну тему Privacy Manifest. Відео гайд від Apple як його створити, а також опис всіх API reasons.
🇺🇦 iOSDevUA
💡Погруження в макроси Swift
Макроси Swift вперше були представлені на WWDC 23, і хоча це не нова концепція в програмуванні загалом, вона принесла корисні опції для розробників Swift.
Вони дозволяють налаштовувати мову Swift відповідно до наших потреб і поширювати їх серед інших розробників без зміни коду компілятора.
📖 У цьому розборі показані принципи роботи макросів, а також налаштування і використання на простому прикладі.
🇺🇦 iOSDevUA
Уже доступно! Исследование Telegram 2025 — ключевые инсайты года 
