This page contains sample showing how to use the new NavigationLink without a SwiftUI List. While updating Farness for iOS 16, I found very few examples of using the new Navigation API without a List. In addition, List offers a selection binding that makes it pretty easy to set the selected object for the navigation. […]
Author Archives: gdiehl
Two and Three Column Split View Controller
The new three column style UISplitViewController behavior in iOS14 was giving me some headaches until I found a solution that works well for both. The code below is based on the example from Mac Catalyst > Displaying the Sidebar. The 3 high level steps are: Test the user interface. Use the new three column style […]
Supporting External Displays
The WWDC 2018 video Adding Delight to your iOS App shows how to support external displays. Test to see if there is more than one screen available. UIScreen.screens.count > 1 Observe screen connect or disconnect notifications. let notificationCenter = NotificationCenter.default notificationCenter.addObserver(self, selector: #selector(connectScreenHandler), name: UIScreen.didConnectNotification, object: nil) notificationCenter.addObserver(self, selector: #selector(disconnectScreenHandler), name: UIScreen.didDisconnectNotification, object: nil) Add […]
App Store User Reviews
If you have a bad experience with an app then tell the developer what went wrong and how it could be better. Waste your money?? I know people don’t want to pay for apps. You’ll probably pay more for a cup of coffee you drink once. Do you know how much a MacBook, iPhone, or […]
Layout Driven Design
The following code is based on the WWDC 2018 video Adding Delight to Your iOS App and the recipe for layout driven UI. Find and track the state that affects the UI. Create a variable named feelingCool. Dirty layout when the state changes with setNeedsLayout(). Update feelingCool and add the didSet property observer. Update UI […]
WordPress app
WordPress by Automattic. https://itunes.apple.com/us/app/wordpress/id335703880?mt=8
New Blog
It’s been a while! Had some technical difficulties the past few months, but my blog is back online. I went the path of least resistance and decided on a brand new install after backing up the old database and site files. My old site was previously installed in a /blog folder and I was unable […]