Post

Replies

Boosts

Views

Activity

NSPersistentCloudKitContainer: How to know initial sync between CloudKit has happened?
I am looking into using the new NSPersistentCloudKitContainer to sync some internal data for my app. Generally it works great, but I have one scenario that I cannot figure out.Here the basic scenario, there is a single record in CloudKit that created and used to keep track of some internal state. Keeping it the cloud allows for two cases: when the user open the app on another device (say an iPad) and when the user re-installs the app on the same device.If its indeed the very first time the user is using the app on any device, I need to create the record with a bunch of default initial values. I am okay with spending a little time at app startup determining if its a brand new user or an existing user installing on another device.I thought maybe observing NSPersistentStoreRemoteChangeNotification would provide a useful point in time that I can say "ah ha, now I know its a new user, or an existing user". However its gets called a lot and I cannot find anything in its userInfo that gives me a definitive answer to my question.Any suggestions?joey
4
0
3.4k
Aug ’19
UICollectionViewCompositionalLayout + paging + rotation == not handled correctly
Am trying to get away from using UIPageViewController for a number of reasons, not the least of which is several perennial crashes that happen occasionally that I've never been able to reproduce myself but happen enough in the wild to be noticeable. I have high hopes for the new UICollectionViewCompositionalLayout in iOS 13 SDK; have worked around the safeArea issue. However, I cannot find a way to workaround or fix the problem that occurs when I rotate the device. Before rotation things are great, paging works, etc. Then when I do rotate the device the collectionView is scrolled such that I see half of two separate cells. Basically the current cell is not handled correctly. Any ideas or suggestions? Below is my layout for reference. Its as basic as one can get.     private func createLayout() -> UICollectionViewLayout {         let itemSize = NSCollectionLayoutSize(widthDimension: .fractionalWidth(1.0), heightDimension: .fractionalHeight(1.0))         let item = NSCollectionLayoutItem(layoutSize: itemSize)         let groupSize = NSCollectionLayoutSize(widthDimension: .fractionalWidth(1.0), heightDimension: .fractionalHeight(1.0))         let group = NSCollectionLayoutGroup.vertical(layoutSize: groupSize, subitems: [item])         let section = NSCollectionLayoutSection(group: group)         section.orthogonalScrollingBehavior = .groupPaging         let layout = UICollectionViewCompositionalLayout(section: section)         return layout     } }
2
0
970
Oct ’20
Codable objects to match Results from Music API calls
I love the RESTful API that allows me to query the Apple Music service, I love the Codable protocol - I just wish that Apple would supply the Codable structs to match the results we received from the API. That would make it much cleaner, easier to take advantage of the data we are getting. It seems like we all have to recreate the same Codable objects - not the most efficient way to deal with data.
0
0
306
Dec ’20
UIButton image not honoring dynamic type changes
I am unable to get a UIButton's image to size as I change the font size. I can get the text in the label to work correctly using the adjustsFontForContentSizeCategory property on the button's label, but there appears to be now equivalent for the image. If I restart the app after making the font size change, the button does indeed scale the image correctly so I know I have the preferred configuration setup correctly. I figured I could work around the issue using traitCollectionDidChange and comparing the preferredContentSizeCategory, but I am still unable to get the button to resize itself no matter what I attempt to tweak. Anybody else running into this issue? Any workarounds?
2
1
1.3k
Dec ’20
I want same microphone feature as Mail app
I have user's wondering why my apps do not have a microphone icon in search fields that let them go directly to dictation, like the iOS Mail app. I know of no feature that would allow me to accomplish the same look/behavior. Understanding that the user first has to bring up the regular keyboard then tap the microphone on the bottom of the keyboard. Apple's apps should not be using features in what appear to be standard components that us app developers don't have access to. Before I file the enhancement/bug report I just want to confirm that I am correct in my thinking.
1
0
691
Jan ’21
iOS 15 broke Provisional Notifications
When a user receives a provisional notification they are given an option to keep receiving notifications or stopping then. If they tap "Keep" they use to get asked if they want them to be delivered prominent or quietly. Well, in iOS 15 (Xcode 13) my users are not getting that choice and the notifications are stuck in "delivered quietly" unless the user happens to change that in their Settings. This defeats the purpose of provisional notifications and I have to go back to the old way which causes the user to be interrupted in the app when I have to ask permission. I am guessing its related to the new Summary feature that recently got added by Apple. What's going on here, Apple?
1
2
1.3k
Apr ’22
CLLocationButton does not show pressed states
I am starting to use CLLocationButton in my apps, but can see an issue with its behavior. When the user taps on a UIButton it is visually noticeable that it's being tapped. Color/Alpha change, image adjusts, etc... When the user taps on a CLLocationButton there is no queues as to it being pressed. I've had several test users complain already that they think the button is not working given that the action might not result in an immediately change to the UI. Apple FB: FB10019792 Open Radar: https://openradar.appspot.com/FB10019792
2
0
976
May ’22
SWHighlightCenterDelegate never gets called
I did see a checklist in another post (see below) that I did verify as being configured correctly, but my delegate never gets called. I have confirmed that my universal link is working correctly as tapping on it in Messages does cause the app to open and handle it by going to the appropriate screen. A couple of details: My universal link is new and am testing it using Developer -> Associated Domains Development I am rewriting my app using SwiftUI including @main being a struct derived from App What else am I missing? is Shared with You enabled for your app? Preferences > Messages > Shared with You and see if the toggle for your APP is enabled? is Shared with You enabled for the conversation where these universal links are shared In the conversation where the universal links are shared, is the participant a Contact? If you have sent the link, then you will need to "Pin" the link for it to surface in Shared with You.
6
0
2.1k
Jul ’22
ShareLink + Preview equals crash
I am trying to use the new ShareLink component in an app I am moving to SwiftUI. If I use the init(items: Data, subject: Text?, message: Text?) variant of the initializer all works well. However if I try to include a preview using the initializer that takes an additional parameter that is a SharePreview instance I get a crash. The crash complains about Fatal error: SWIFT TASK CONTINUATION MISUSE: data(contentType:) tried to resume its continuation more than once, throwing exportFailed! thread #2, queue = 'com.apple.root.user-initiated-qos.cooperative', stop reason = Fatal error: SWIFT TASK CONTINUATION MISUSE: data(contentType:) tried to resume its continuation more than once, throwing exportFailed! The creation of the SharePreview object itself succeeds with nothing. Its the initialization of the ShareLink object that goes boom. Any ideas? Known issue? Wait for next beta? Environment: Xcode 14 beta 2, iOS 16 beta 2, iPhone 8
4
0
1.7k
Jul ’22
Cannot get correct height for wrapped SWAttributionView
I am attempting to utilize the new SWAttributionView in SwiftUI since I am adding SharedWithYou support to one of my apps. Below is the UIViewRepresentable I created to wrap the UIKit component. I have tried many combinations of view modifiers, but have not figured out how to get the height to be just what's needed. My goal is to pin the view near the bottom trailing edge of the view containing it. If I do the same UIViewRepresentable wrapping a UILabel, for testing purposes, I can simple use .fixedSize on it and a Spacer() to get the vertical effect I am looking for. struct AttributionView: UIViewRepresentable {     var highlight: SWHighlight     func makeUIView(context: Context) -> SWAttributionView {         SWAttributionView()     }     func updateUIView(_ uiView: SWAttributionView, context: Context) {         uiView.highlight = highlight         uiView.backgroundStyle = .material       uiView.horizontalAlignment = .trailing         uiView.displayContext = .summary     } }
0
0
1k
Jul ’22