Hi there, welcome to the 52nd issue of iOS Code Review! Grab a quick cup of your favorite beverage and let's learn something new :)
Try Setapp for free 🚀
GIFs in SwiftUI
TIL how easy it is to play gif animations in UIKit and SwiftUI using
CGAnimateImageAtURLWithBlock. We just need to remember to stop the animation when the view disappears:
View vs View modifier?
Back when I just started learning SwiftUI, I started by making all of my customizations as
View. I even had styled text as a
View wrapping a styled
Text, similar to
UILabel subclasses in UIKit 🙈🙈
Fairly quickly though I grasped the idea of view modifiers, still using custom
Views for breaking down the view hierarchy and for reusable components.
So when I stumbled on John's article where he explores when to use what approach, I knew I have to share it with you folks. He implements the same "featured" UI using a view and a view modifier, and compares them side by side:
Beware of Xcode's automatic version management
Alexander shares his surprising experience with Xcode's ability to override version and build numbers during app export. Turns out, it overrides the values in all Info.plist files, including those embedded in third-party SDKs, so you can run into subtle issues if the SDK is checking those values.
Looking up Apple's error codes
Save it for later -> osstatus.com
Alright, that's it for today.
PS. As Twitter has messed up its API, I still have to embed tweets using screenshots. I'd love to hear your experience with images in the emails - how has that been, are you experiencing any issues with that? Let me know 🙏
* this issue contains an affiliate link to Setapp