Blog
RSSNotes from building and running things, by Yein Yi.
When property observers get called
A didSet on an array property is called in all three cases: replacing the array, replacing an element, and changing a property of an element.
UITextView's intrinsicContentSize
UITextView only has an intrinsicContentSize when isScrollEnabled is false.
Fixing the Firebase currentUser error in iOS Swift
Why Firebase Auth's currentUser can be empty, and how to fix it by receiving the sign-in state with a listener.
Generics in Documents
Notes on the Generics chapter of the Swift docs, with example code.
Property Requirements of Protocol
How Swift protocol property requirements, get-only and get-set, can be implemented.
Analyzing Self.Element in the Official Docs
Why Array's map in the Swift docs uses Self.Element, traced to Sequence.
Class Initialization Safety Checks
The four safety checks the Swift compiler runs during class initialization.
Properties
A summary of Swift stored, computed, and type properties, KeyPath, and property observers.
UITextFieldDelegate Order
The order in which UITextFieldDelegate methods get called.
Closure 1
Swift closures in code: basic form, trailing closures, and shorthand forms.
Type Casting
Type checking and upcasting/downcasting with is, as, as!, as? in Swift.
Pointer Problem
The pointer variable type that holds the address of each C variable declaration
const int * vs int * const
The difference between const int * and int * const pointers in C.
ValueListenableBuilder
A note that Flutter's ValueListenableBuilder rebuilds only the widget whose value changed.
Overriding hash for Your Own Objects
Shows how to override == and hashCode in Dart.



