TGViewer
iOS Mobile | YeaHub iOS Mobile | YeaHub @yeahub_ios_mobile · 248 subscribers
Post #420 161
#полезное
🤓 Power of Swift Macros

Макросы в Swift достаточно удобная штука, если их правильно применять
Например, они позволяют автоматизировать создание представлений SwiftUI для UIKit, упрощая процесс написания повторяющегося кода.

🟠 Для создания макроса необходимо инициализировать новый Swift пакет с помощью команды swift package init --type macro --name RepresentableMacros

🟠 Основной код макроса включает в себя извлечение метаданных из объявления класса и создание структуры SwiftUI, которая реализует протокол UIViewRepresentable.

🟠 Тестирование макроса включает проверку различных случаев, таких как наличие модификаторов и правильность обработки классов, не являющихся представлениями UIKit.

import SwiftCompilerPlugin
import SwiftSyntax
import SwiftSyntaxBuilder
import SwiftSyntaxMacros

public enum ViewRepresentableError: CustomStringConvertible, Error {
case onlyApplicableToView

public var description: String {
switch self {
case .onlyApplicableToView:
"@ViewRepresentable is only applicable to UIKit View."
}
}
}

public struct ViewRepresentable: PeerMacro {
public static func expansion(
of node: AttributeSyntax,
providingPeersOf declaration: some DeclSyntaxProtocol,
in context: some MacroExpansionContext
) throws -> [DeclSyntax] {
// here will be our magic code
return []
}
}


👉Новости 👉База вопросов
Artur Gruchała Power of Swift Macros As iOS devs, sometimes We have to write repeatable code. This tedious task is very boring, error-prone, and unsatisfying. Instead of falling into despair we can elevate our experience with Swift Macros! We will create a macro which will automate creating…
More from @yeahub_ios_mobile
  1. Oct 14, 2026#Собес #restapi #uikit #serialization 🤔 Middle+ iOS-разработчик в ВТБ Техническое собесед…
  2. Oct 9, 2026#course #ии 📚 Мини-курс о применении ИИ в разработке Он рассчитан на начинающих, пройти е…
  3. Oct 8, 2026#Собес #semaphore #mutex #synchronization 🤔 Для чего нужны Semaphore и Mutex? 💬 Кратко:…
  4. Oct 7, 2026#Собес #gesture #recognition 🤔 Что происходит с остальными gesture recognizers, когда оди…
  5. Oct 5, 2026#Собес #SwiftUI #@State #@Binding 🤔 В чем разница между @State и @Binding? 💬 Кратко: @St…
  6. Oct 2, 2026#course #ии 📚 Мини-курс о применении ИИ в разработке Он рассчитан на начинающих, пройти е…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →