Malcolm Hall

  • About
  • Research
  • Consultancy
  • Products
    • AppRecorder
    • Apps Using Location
    • Clipboard Monitor
    • Common Rocks Reference
    • Core Location Info
    • Friendify
    • Grape Stomper
    • HomeMenu
    • iBeacon Scanner
    • Insomnia
    • Navigate from Maps
    • Nickname
    • Plate Smasher
    • Plugged In
    • Readster
    • Resize Image
    • Read★
    • ScreenshotMenu
    • Sleep Display
    • SleepFX
    • Stealth Cam
    • TV Tube Sleep
    • UDID Calculator
    • WiFi Booster
    • WiFi Passwords

SwiftUI, Swift, Objective-C and iOS Development

Concurrency

Async/await UIAlertController

I needed to show an alert in an async context and this is how I achieved it: The idea to throw a cancellation exception was inspired by DDDevicePickerViewController which is the only built-in async UIViewController I’m aware of.

By malhal, 2 months15th October 2023 ago
CoreData

NSPersistentStoreRemoteChange

I wondered why NSPersistentStoreRemoteChange doesn’t contain any info about what process made the change. For example it isn’t possible to know if the change even was made by the current process or not. This would be useful so when you Read more…

By malhal, 2 months12th October 2023 ago
SwiftUI

Make a Simple Circular Button in SwiftUI

I came across this interesting Stack Overflow question How can I make a simple circular button in SwiftUI in macOS? It’s interesting because all of the proposed solutions required hard-coding a frame size. I decided to experiment with how to Read more…

By malhal, 6 months1st June 2023 ago
Uncategorised

How to download Apple event videos in 4K with Dolby Atmos

First visit the Apple Events web page and find the link to the stream you want to download, e.g. the link for the iPhone 14 event from September 2022 looks like this: Now you need to install the yt-dlp command Read more…

By malhal, 7 months15th May 2023 ago
Concurrency

Async/await command line tool in Xcode 14.3

TLDR: add @main and rename main.swift To create a command line tool in Xcode 14.3 that uses async/await there are a few tweaks required. When we create the project using the Command Line Tool template we are left with a Read more…

By malhal, 7 months25th April 2023 ago
SwiftUI

Learn SwiftUI’s View struct: value semantics, diffing and dependency tracking

Learning SwiftUI can be tricky because it has a very different design to previous UI frameworks. Many make the mistake of trying to apply old design patterns which are not really compatible because of SwiftUI’s use of value semantics and Read more…

By malhal, 8 months23rd March 2023 ago
Concurrency

@MainActor does not always mean main thread

Seems to me some developers think that @MainActor means “always main thread” and has the same behaviour as DispatchQueue.main.async which I don’t think is try. For example, the code below outputs: Because the Database class is not marked as @MainActor Read more…

By malhal, 10 months31st January 2023 ago
SwiftUI

NavigationSplitView with List selection of different types

I came across an interesting Stack Overflow question about how to support List selection of different types when using NavigationSplitView when in regular width, e.g. on iPad landscape. This problem doesn’t arise with NavigationStackView because multiple ForEach can simply iterate Read more…

By malhal, 11 months12th January 2023 ago
SwiftUI

Multiple sheets in SwiftUI using subviews

If you need to show multiple sheets in SwiftUI it is best to use the framework features to your advantage. Rather than try to abstract the problem into a generic coordinator object, which you then have to unbundle again to Read more…

By malhal, 1 year29th November 2022 ago
SwiftUI

Nested Property Wrappers in Swift

I designed a better way to nest property wrappers than other examples I’ve seen in this article and this Stack Overflow question. The sample below is a redesigned version of the code in the question, which I also posted as Read more…

By malhal, 1 year18th November 2022 ago

Posts navigation

1 2 … 4 Next
Recent Posts
  • Async/await UIAlertController
  • NSPersistentStoreRemoteChange
  • Make a Simple Circular Button in SwiftUI
  • How to download Apple event videos in 4K with Dolby Atmos
  • Async/await command line tool in Xcode 14.3
Recent Comments
  • Why Does URL Scheme/onOpenURL In SwiftUI Always Open A New Window? - Programming Questions And Solutions Blog on Open window / scene in SwiftUI 2.0 on macOS
  • Ken Carroll on Enabling iOS 9.3 SDK in Xcode 8 for iOS 10
  • Mr WordPress on Welcome to my Developer Blog
Archives
  • October 2023
  • June 2023
  • May 2023
  • April 2023
  • March 2023
  • January 2023
  • November 2022
  • June 2022
  • December 2020
  • May 2018
  • October 2017
  • September 2017
  • August 2017
  • January 2017
  • July 2016
  • May 2016
Categories
  • CloudKit
  • Concurrency
  • CoreData
  • Mac
  • MapKit
  • NSOperation
  • Objective-C
  • Swift
  • SwiftUI
  • UIKit
  • Uncategorised
  • Xcode
Meta
  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org
  • About
  • AppRecorder
  • Apps Using Location
  • Clipboard Monitor
  • Common Rocks Reference
  • Consultancy
  • Core Location Info
  • Friendify
  • Grape Stomper
  • HomeMenu
  • iBeacon Scanner
  • Insomnia and Insomnia Pro for iPhone
  • Navigate from Maps
  • Nickname
  • Plate Smasher
  • Plugged In
  • Products
  • Projects
  • Read★
  • Readster
  • Research
  • Resize Image
  • Sample Page
  • ScreenshotMenu
  • Sleep Display
  • SleepFX
  • Stealth Cam
  • TV Tube Sleep
  • UDID Calculator
  • WiFi Booster
  • WiFi Passwords
Hestia | Developed by ThemeIsle
 

Loading Comments...
 

You must be logged in to post a comment.