Creează un cont pentru a te abona la acest blog și a-i urmări articolele pe pagina Lectură.
-
When I last updated this page, I was at Local-First Conf in Berlin.
-
Today I learned about isolated deinit from SE-0371, which allows actor types to have a synchronous deinit that runs on the actor’s executor.
-
Today I learned about Optional.take() that returns the wrapped value and clears the optional in a variable in one go.
-
Today, while working on a major refactor of InterposeKit, I learned that KVO in Objective-C works by dynamically creating a subclass at runtime.
-
Today I learned how to convert YAML to JSON directly from the command line using yq (not to be confused with the Python implementation): yq eval data.yaml -o json -P > data.json
-
This one took me longer than I’d have liked!
-
Today I learned that Group and ForEach have public support for accessing their subviews starting in iOS 18 and macOS 15 using the Group.init(subviews:transform:) and ForEach.init(subviews:content:) initializers, respectively.
-
Today I learned that wrapping a Swift string literal in pound signs removes the need to escape quotes.
-
Today I learned that NSAlert allows setting a custom icon image to replace the default app icon.
-
Today I learned that submenus on iOS display a bold chevron on the left when presented on an iPhone and a more subtle chevron on the right when presented on an iPad.
-
Today I learned that when moving items in a list on iOS, UIKit uses target indices as they are after deletion, while SwiftUI uses them as they were before deleting the moved item.
-
The year is slowly coming to a close, and so, just like last year, I’m pausing to put together a blog post to reflect on it.
-
At the end of each year, I usually take some time to reflect on all that has happened.
-
During my computer science studies, I switched from Windows to Mac and was amazed by all the high-quality native apps from independent developers.