Story This week, my colleague asked me a question: how to observe user selection behaviors on SwiftUI's Picker ? This is a question came from real bussiness. Thus I think it worth to take me time to solve it. The example code is as shown below and my colleague wanted to observe user's behaviors on…
Understanding Associated Value Enums Why there are associated value enums in Swift? I mean, why the Swift core team designed associated value enum? To understand it, firstly, let's take a look at the following example in C: The C struct Device represents a device. The member pointer is an…
Preface Apple introduced SwiftUI at WWDC 2019. Most people may seem SwiftUI as yet another UI framework likes Flutter , React.js or Vue.js which rides on the trend of declarative stateless UI programming. Even though there are some common points between them, SwiftUI is far different from…
Case Study: Intervening UIScrollView Instances's Pan Gesture Recognizer As we known, UIScrollView translates pan gesture signals into scrollViewDidXXX: messages and sends to its delegate, most of the time you only have to understand the relationships between the pan gesture signals and the…
Introduction Recently, one of my colleagues had been struggling with porting reference semantics model to SwiftUI with ObservableObject and @StateObject . In this post, since there are many examples talked about porting reference semantics models to SwiftUI this way on the Internet, I'm not going…
From the sessions at WWDC 2023, we learned that Swift Macro aims to: Eliminate boilerplates Make tedious things easy Share with other developers in packages However, these goals aren't unique to Swift Macro. They are common objectives for many code reuse methods in Swift, such as functions, types…
Preface What is the most critical thing swings your decision when you choose a programming language? Some people may say, the less lines of code they write, the better the language itself is. (Nope, the best programming language is PHP.) OK. It might be true. But writing less code is not an…
In the previous post, we learned the strengths and the essence that uniquely define the Swift Macro. The examples in that post work so far so good. However, can we be confident and bold, implementing any Swift macros we want now? No. The features that bring Swift Macro advantages also introduce…