Creating an iMessage-Style Input Accessory View in SwiftUI
Learn how to create a custom input accessory view that stays above the keyboard, similar to iMessage's input bar.
// 182 articles available
Learn how to create a custom input accessory view that stays above the keyboard, similar to iMessage's input bar.
Learn how to fix the Firebase Crashlytics dSYM files not properly being uploaded to Firebase after upgrading to Xcode 15/16.
Learn how to align single and multiline text in SwiftUI.
Learn how to use ScrollViewReader and ScrollViewProxy to scroll a SwiftUI list to a specific item automatically.
Learn how to detect when a context menu is open in SwiftUI.
Learn how to create a WebView/WKWebView with a transparent/clear background in SwiftUI.
Learn how to accept user input in an alert using TextField or SecureField.
Learn how to create a modifier that limits the characters that can be entered in a TextEditor or TextField view in SwiftUI.
How to generate random emoji characters in Swift using Unicode scalar ranges.
How to check available and total disk space on iOS devices using URL resource values.
Learn the ways to scale a text view's font size to fit its parent view in SwiftUI.
Learn how to use a WKWebView as a quick way to load a GIF from a URL and display it in a SwiftUI view.
Learn how to use DisclosureGroupStyle to create custom DisclosureGroup views in SwiftUI.
Learn how to force the navigation bar to show a background color in SwiftUI.
Learn how to detect if a SwiftUI app is running in a Xcode Preview.
Learn how to use kCFStringTransformToUnicodeName to get the system name for any emoji.
Learn how to prevent typing with your physical keyboard from dismissing the software keyboard when running your Swift app in the iOS simulator.
How to use the SwiftUI DisclosureGroup view to create collapsable content.
KVO lets you observe property changes without delegation or notifications. Here's how it works under the hood and how to use it correctly.
Before Swift closures, Objective-C had blocks. The syntax is different, but the power is the same. Here's how to use them effectively.
Every Objective-C class inherits from NSObject (usually). Here's what NSObject provides and why it matters for every object you create.
Both let you add methods to classes, but categories and class extensions serve different purposes. Here's when to use each.
Unlike C++ virtual methods, Objective-C uses dynamic message passing. Understanding this mechanism unlocks the language's full power.
Retain cycles are the most common memory leak in Objective-C. Learn how they form, how to detect them, and patterns that prevent them.
Objective-C lacks namespaces, so the community invented conventions. Here's how prefixes and other patterns help avoid collisions in a flat symbol space.
Objective-C is famous for verbose naming. Let's celebrate (or mourn) the longest method and class names hiding in Apple's standard libraries.
Objective-C supports exception handling with @try/@catch, but the community settled on NSError pointers instead. Here's why.
Swizzling is powerful but dangerous. Here are the common pitfalls and how to avoid turning your clever hack into a debugging nightmare.
Method swizzling lets you replace method implementations at runtime. Here's how it works and when this powerful technique shines.
Understand the class cluster pattern that makes NSString, NSArray, and NSDictionary work, and learn how to implement your own.