{"data":{"allPost":{"edges":[{"node":{"slug":"/post/2022/08/using-functional-binding-to-observe-in-swiftui-19a8","title":"Using Functional Binding to Observe in SwiftUI","subtitle":"","isPublished":true,"createdTime":"2022-08-19T00:00:00.000Z","lastModifiedTime":null,"license":null,"tags":["SwiftUI","Binding","Swift","Observer"],"category":"Programming","file":{"childMdx":{"excerpt":"Story This week, my colleague asked me a question: how to observe user selection\nbehaviors on SwiftUI's  Picker ? This is a question came from real bussiness. Thus I think it worth to take\nme time to solve it. The example code is as shown below and my colleague wanted to observe user's\nbehaviors on…"}}}},{"node":{"slug":"/post/2023/01/a-study-of-llvm-adt-ilist-iplist-and-simple-ilist-938d","title":"A Study of LLVM ADT: ilist, iplist and simple_ilist","subtitle":"","isPublished":true,"createdTime":"2023-01-15T00:00:00.000Z","lastModifiedTime":null,"license":null,"tags":["LLVM","ADT","C++"],"category":"Programming","file":{"childMdx":{"excerpt":"Introduction ilist  is an intrusive double-linked list -- which means that each linked node stores its data and the node pointers in the same structure. There is no such kind of linked-list implemented containers shipped with the C++ standard library. iplist  is a purely intrusive list. Currently…"}}}},{"node":{"slug":"/post/2022/03/unexplained-swiftui-the-programming-language-nature-of-swiftui-d20e","title":"Unexplained SwiftUI - The Programming Language Nature of SwiftUI","subtitle":"","isPublished":true,"createdTime":"2022-03-06T00:00:00.000Z","lastModifiedTime":null,"license":null,"tags":["Unexplained SwiftUI","SwiftUI","Swift"],"category":"Programming","file":{"childMdx":{"excerpt":"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…"}}}},{"node":{"slug":"/post/2019/09/conforming-to-codable-for-associated-value-enums-in-swift-9e3c","title":"Conforming to Codable for Associated Value Enums in Swift","subtitle":"","isPublished":true,"createdTime":"2019-09-10T00:00:00.000Z","lastModifiedTime":null,"license":null,"tags":["Swift","Codable","Associated Value Enum"],"category":"Programming","file":{"childMdx":{"excerpt":"Understanding Associated Value Enums Why there are associated value enums in Swift? I mean, why the Swift core\nteam 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…"}}}},{"node":{"slug":"/post/2019/03/a-story-of-implementing-aspect-oriented-programming-in-objective-c-and-swift-8b92","title":"A Story of Implementing Aspect-Oriented Programming in Objective-C and Swift","subtitle":"","isPublished":true,"createdTime":"2019-03-01T00:00:00.000Z","lastModifiedTime":null,"license":null,"tags":["Swift","Objective-C","Aspect-Oriented Programming"],"category":"Programming","file":{"childMdx":{"excerpt":"Case Study: Intervening UIScrollView Instances's Pan Gesture Recognizer As we known,  UIScrollView  translates pan gesture signals into\n scrollViewDidXXX:  messages and sends to its delegate, most of the time\nyou only have to understand the relationships between the pan gesture\nsignals and the…"}}}},{"node":{"slug":"/post/2023/03/adapting-reference-semantics-model-in-swiftui-the-basics-f521","title":"Adapting Reference Semantics Model in SwiftUI - The Basics","subtitle":"","isPublished":true,"createdTime":"2023-03-02T00:00:00.000Z","lastModifiedTime":null,"license":null,"tags":["SwiftUI","Swift","Adaptor","Reference Semantics","Binding"],"category":"Programming","file":{"childMdx":{"excerpt":"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…"}}}},{"node":{"slug":"/post/2023/08/swift-macro-revisited-the-strengths-and-essence-a5a4","title":"Swift Macro: Revisited - The Strengths and Essence","subtitle":"","isPublished":true,"createdTime":"2023-08-08T00:00:00.000Z","lastModifiedTime":null,"license":null,"tags":["Swift","Macro"],"category":"Programming","file":{"childMdx":{"excerpt":"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\nobjectives for many code reuse methods in Swift, such as functions, types…"}}}},{"node":{"slug":"/post/2019/03/a-glimpse-into-generic-meta-programming-in-swift-d2cd","title":"A Glimpse into Swift Generic Meta-Programming","subtitle":"Make VFL Reborn in Swift with Compile-Time Safety","isPublished":true,"createdTime":"2019-03-27T00:00:00.000Z","lastModifiedTime":null,"license":null,"tags":["Swift","MetaProgramming","Generic","VFL","AutoLayout","macOS","iOS","tvOS"],"category":"Programming","file":{"childMdx":{"excerpt":"Preface What is the most critical thing swings your decision when you choose a\nprogramming language? Some people may say, the less lines of code they write, the better the\nlanguage itself is. (Nope, the best programming language is PHP.) OK. It might be true. But writing less code is not an…"}}}}]}},"pageContext":{"slug":"/category/programming/page-2","locale":null,"title":"Programming (Page 2)","showsPageTitle":true,"keywords":["WeZZard","Pieces of My Soul"],"description":"","items":["f2b372f7-8c6e-5cc2-9792-84dc1fac5aa9","e508707d-f31e-5d24-b1ac-2b6a1b6155fc","644e5f5d-bcdf-5700-9877-34088a7af8e8","e1149583-4058-5dd4-8fc3-25534469b2b2","f06c1b0c-88ad-59b4-9a2c-690037a03ade","8e601448-778d-51ca-a66b-b68b06248377","ce1c7301-5889-59f8-821a-d4832b9a64b6","6711bea1-42f1-543e-bb9c-8740e10314f0"],"paginationInfo":{"basePath":"/category/programming","pageIndex":1,"pagesCount":2,"previousPageTitle":"Earlier Posts","nextPageTitle":"Later Posts"}}}