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

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

чат: @iOSDevsUAChat
Ідеї та пропозиції: @SergeyZhuravel
Download Telegram
💡Swift on Server 2024

Робоча група, яка займається розвитком серверного Swift, розповіла про поточний стан справ та плани на наступний рік.

👉 Опубліковані результати великого опитування про те, з якими проблемами стикаються розробники.
👉 Екосистема продовжує рости, особливо відзначають процес інкубації нових пакетів та участь у GSoC.
👉 Structured concurrency адаптується новими пакетами, а також фундаментальними існуючими, на кшталт SwiftNIO.
👉 Важливий новий інструментарій: Swiftly, Dependabot, Chiseled Containers, OpenAPI generator.
👉 Фокуси на 2024: посилений маркетинг, підготовка до Swift 6, подальший адапшн Swift Concurrency.

➡️ https://www.swift.org/blog/sswg-update-2024/

🇺🇦 iOSDevUA
🔥1
📲 Apple випускає третю бета-версію для iOS 17.5 та інших

Бета-версія iOS 17.5 продовжує свій шлях тестування з третім релізом для розробників. Apple також релізнули macOS Sonoma 14.5, visionOS 1.2, watchOS 10.5, tvOS 17.5 та HomePod 17.5.

Зміни наразі включають нову гру Quartiles та інтеграцію з Game Center Leaderboard для Apple News+, віджет Podcast, що підлаштовується під колір, та багато іншого.

Release Notes:
👉 iOS & iPadOS 17.5 Beta 3 (21F5063f)
👉 macOS Sonoma 14.5 Beta 3 (23F5064f)
👉 tvOS 17.5 Beta 2 (21L5558d)
👉 visionOS 1.2 beta 3 (21O5570d)
👉 watchOS 10.5 beta 3 (21T5560d)

🇺🇦 iOSDevUA
💡SwiftTUI – SwiftUI для консольних додатків

Будь-який UI фреймворк рано чи пізно використовують для того, щоб писати додатки під термінал. SwiftTUI – бібліотека, яка реалізує аналогічний SwiftUI API для додатків з чисто текстовим інтерфейсом.

Що вже працює:

👉 Property wrappers @State, @Binding, @Environment
👉 VStack, HStack, ForEach, Group та @ViewBuilder
👉 Structural identity як у SwiftUI
👉 Button, TextField та зміна фокусу стрілками
👉 Text, Color, Spacer
👉 .border(), .padding(), .background(), .foregroundColor()

🔗 Приклад зі ToDo списком

🇺🇦 iOSDevUA
👍1
💡Як покращити неймінг компонентів SwiftUI

Проста ідея щодо того, як зменшити кількість класів на кшталт BlablablaDescriptionView у вашому коді – замість View використовувати клас обгортаного елемента.

👉 https://blog.ptrkstr.com/swiftui-component-naming

🇺🇦 iOSDevUA
💡Черговий хороший навчальний матеріал з прикладами.
Цього разу про Identifiable протокол у SwiftUI!
Автор сам каже, що хоч протокол і здається простим та зрозумілим, є кілька випадків, у яких ви можете зіткнутися з багом. Показує та пояснює детально 👍

👉 https://www.avanderlee.com/swiftui/identifiable-protocol-object-identifier/

🇺🇦 iOSDevUA
💡Benchmark – новий пакет для вимірювань продуктивності

Swift у своєму блозі виклали статтю про Benchmark, пакет для автоматизації тестування продуктивності, який вміє працювати з безліччю різних метрик.

🔗 GitHub

🇺🇦 iOSDevUA
💡Оновлення SwiftUI Field Guide

За місяць, що минув з першого релізу, новий проєкт Кріса Ейдгофа, інтерактивний підручник The SwiftUI Field Guide, продовжує активно оновлюватися. Ось які розділи там з'явились:

👉 Safe Areas
👉 Debugging Techniques
👉 Introduction to SwiftUI
👉 Alignment
👉 Flow Layout
👉 Stack Alignment

🇺🇦 iOSDevUA
💡DevToys – набір утиліт для розробки

DevToys – опенсорсний додаток, що складається з купи невеликих хелперів, які спрощують щоденну розробницьку рутину. Ось деякі з них:

👉 Конвертер з JSON у Yaml
👉 URL encoder/decoder
👉 JSON форматер
👉 Тестер регулярок
👉 Генератор хешів

🇺🇦 iOSDevUA
💡Погруження в макроси Swift

Макроси Swift вперше були представлені на WWDC 23, і хоча це не нова концепція в програмуванні загалом, вона принесла корисні опції для розробників Swift.

Вони дозволяють налаштовувати мову Swift відповідно до наших потреб і поширювати їх серед інших розробників без зміни коду компілятора.

📖 У цьому розборі показані принципи роботи макросів, а також налаштування і використання на простому прикладі.

🇺🇦 iOSDevUA
💡Вступ до Swift для розробників C++

Якщо у вас є друзі, які займаються розробкою на C++, і ви хочете познайомити їх зі своєю улюбленою мовою – ось ідеальний гайд, який проводить аналогії між ментальною моделлю плюсів та Swift і пояснює всю неочевидну магію.

👉 https://www.douggregor.net/posts/swift-for-cxx-practitioners-value-types/

🇺🇦 iOSDevUA
👍1
💡Бекенд на Swift навколо ML моделі

Туторіал про те, як на Vapor написати простий бекенд, який дає доступ до Core ML моделі, що класифікує зображення.

🔗Код на GitHub

🇺🇦 iOSDevUA
👍2
💡Невелика підбірка важливих хоткеїв у Xcode!
Я дуже сподіваюсь, що більшість з вас вже знайомі, якщо не з усіма, то з багатьма хоткеями, бо особисто мені стає погано, коли я бачу, як розробник з купою років досвіду не вміє нормально користуватися Xcode 🤪
Але новачкам точно буде корисно! 👍

👉 https://tanaschita.com/xcode-shortcuts/

🇺🇦 iOSDevUA
💡Я кілька разів ділився матеріалом про OSLog. Це дійсно дуже зручний інструмент для логів.
Одне діло писати ці логи, але що, якщо ви хочете ще й читати їх у коді? 🤔
Наприклад, щоб зібрати логи і вивести на окремому екрані у своєму додатку, який буде доступний у дебаг-режимі? Мабуть, може бути корисним для тестувальників, щоб зручніше було знаходити проблеми і вже з деталями віддавати баг у роботу 🔥
В OSLog є така опція, хоч і з деякими обмеженнями 🥲

Детальніше у пості:
👉 https://useyourloaf.com/blog/fetching-oslog-messages-in-swift

🇺🇦 iOSDevUA
👍1
З сьогоднішнього дня завантажувати додатки в 👨‍💻 App Store Connect можливо тільки з Xcode 15 і останньою SDK: iOS 17 і т.д.

🇺🇦 iOSDevUA
Please open Telegram to view this post
VIEW IN TELEGRAM
💡Детальний розбір модифікаторів Overlay і Background у SwiftUI

У інструментарії SwiftUI overlay і background відіграють незамінну роль у різних сценаріях розробки.

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

🇺🇦 iOSDevUA
👍1
💡Якщо ви використовуєте SwiftUI, то напевно використовуєте і .onTapGesture(). Ось стаття, де автор говорить, що з цим потрібно бути обережнішим. І наводить кілька прикладів, де це може призвести до проблем 🤔

👉 https://www.swiftwithvincent.com/blog/be-careful-when-using-ontapgesture

🇺🇦 iOSDevUA
👍1
💡Ефективний спосіб завантаження великих зображень у головному потоці

У більшості випадків нам підійде варіант:

let image = UIImage(named: "big-image")
imageView.image = image


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

Особливо це проявиться, наприклад, при роботі з колекціями.

У такому випадку можна справедливо звернутися до документації (та до поради Вінсента), в яких говориться про те, що все ж є ще один спосіб.

prepareForDisplay декодує нашу картинку у фоновому потоці, і лише після цього можна використовувати результат із completionHandler.

Важливо не забути повернутися у головний потік, звісно.

Або використовувати Task, якщо ви вже перевели (або переводите проект для Swift Concurrency).

🇺🇦 iOSDevUA