Good to see you can finally import modules/app code into an Xcode playground - you may need to do an testable import of your main app code as it is all internal by default.
You'll need to check this box to make it work. #WWDC
Spoke to soon - it imports framework code fine, but even though testable import YourApp_Module satisfies the compiler, it fails at runtime with missing symbol errors.
• • •
Missing some Tweet in this thread? You can try to
force a refresh
TIL - if you’re creating your own SwiftUI environment keys where the value is some kind of “action”, modelled as a closure (e.g. `() -> Void) you might see unexpected re-renderings of views that use that @environment property.
In our case, we had a custom void closure environment value that we only set once in the whole app (and I confirmed it was only set once), yet a child view was re-rendering and using the new .printChanges() API it was because it thinks the custom environment value changed.
My hunch - which turned out to be correct - was that closures in Swift are reference types and SwiftUI gets confused when its environment holds reference types. As a clue - note that similar built-in values in SwiftUI are actually structs with callAsFunction() methods.
With all due respect to Rowland, I think this tweet is an inaccurate representation of what the app is doing and I don’t think it’s a bug or that they “accidentally left test code” in the app. (Thread)
The exposure notification framework has its own built in scoring system and prior to iOS 13.7 I believe there was very little way to customise that algorithm. However the NHSX app uses its own scoring system to minimise false alarms. 2/
In order to do this, the app needs to get extra information about a possible exposure. To do this it needs to call the following (now deprecated) API method: developer.apple.com/documentation/…
Hmm, it looks like the cause of System Preferences beach-balling when trying to manage iCloud settings is because my laptop cannot connect to iCloud at all - even fails in Safari with a connection error. Seemed fine on my iPhone. Anyone else unable to connect?
Other devices on the network can connect, which would seem to rule out a router issue. I can also connect if I tunnel through a VPN - anybody got any ideas?
Damn, it was the Asus router AiProtection - for some reason "P2P and File Transfer" block was blocking access to iCloud.
Still baffled by the way billing works with Apple Family Sharing. If you want an individual member to pay for their own purchases they need to have an in credit Apple ID balance. But the only way to do that is buy a gift card. 🤷🏻♂️
The family owner account can just use “Add Funds to Apple ID” to add funds directly but this doesn’t work on child accounts.
At least (as I’ve just found out) you can buy a gift card online. Just seems like an unnecessary step.
Starting to instantly recognise fake “brands” on Facebook/Instagram ads as obvious dropshippers with some regularity now. It doesn’t take long to find the stuff they are flogging on AliExpress for a third of the price.
Typically they are Shopify shops with the same copypasta terms and conditions and questionable return policies (eg restocking fees). Some claim their products are “made to order” to get out of honouring returns.
My favourite one is the one who claims their products were “designed” by somebody who based on Googling doesn’t appear to exist. They also have an amusing “authenticity” page warning of “copycats” (in other words other drop shippers flogging the same stuff).
Job hunt update: I’ve found several interesting opportunities and have spoke to a number of people - thanks to all who have shown interest.
Currently have one or two promising roles that I’m exploring but still nothing concrete as yet. 1/
I’m still exploring Ruby and iOS roles, looking for lead dev or senior roles with a progression route to lead/principle. Open to both but particularly interested in greenfield iOS roles and building an iOS team. 2/
Remote is a red line for me, I don’t mind the occasional visit to the office if London-based but that’s it. 3/