Profile avatar
freiwald.dev
📱 Developer on  platforms 👨‍💻 Mobile Consultant @ Netlight 💛 Love talking about Swift • SwiftUI • iOS 🏡 Interested in Smart Home & KNX 🇩🇪 Living in Munich with my family 👩‍❤️‍👨👧👶 Developer of @getskydeck.app 🌐 https://freiwald.dev
382 posts 794 followers 319 following
Regular Contributor
Active Commenter
comment in response to post
…but once that’s sorted, we’re ready for release. Fingers crossed App Store Review isn’t too chaotic during WWDC week. #BuildInPublic #iOSDev #ATProto #Bluesky #Unfollow
comment in response to post
Not sure about the performance between fetch with Predicate and model(for:)
comment in response to post
Make the model @unchecked Sendable 😄 What about returning an array of tuples (Model.Type, PersistentIdentifier) And then on the main ModelContext calling ‚modelContext.model(for: id) as? type’ in a compactMap on the array?
comment in response to post
Uh what a nice idea 😅
comment in response to post
Fetching notifications about likes/replies etc.
comment in response to post
Hm, good point. I thought getAuthorFeed required authorization, but I just checked and it doesn’t.
comment in response to post
Next step: Make sure my update services resume after the reset, but in a controlled way (not all at once). #BuildInPublic #iOSDev #ATProto
comment in response to post
AppView – I’m using the getAuthorFeed endpoint because it provides more information, such as likeCount, etc.
comment in response to post
When you sign in, the app attempts to fetch all posts and store them using SwiftData. That’s the theory, at least — I’m not yet sure if there are any issues when handling large amounts of data. If the app goes into the background, it continues fetching any remaining posts when opening the app again
comment in response to post
My own account isn’t that big, so it’s a bit tricky for me to test and debug such cases 😅
comment in response to post
I want to avoid users hitting this rate limit, because if they do, they won’t be able to use the Bluesky app either (at least until the limit resets). But I also think that making 3.000 requests in 5 minutes might put quite some strain on the iPhone...
comment in response to post
For your accounts, that means: 15.000 followers 31.000 posts Assuming 5 reactions per post: 155.000 => That’s already 201.000 items If 100 posts go viral and each receives 1.000 likes: That’s an additional 100.000 items So, with a good internet connection, this should be doable within 5 minutes.
comment in response to post
When a new user signs in, I go through all the notifications to gather information about follows, likes, etc., and fetch all posts. With a request limit of 100 items per call and 3.000 requests allowed every 5 minutes, that comes to a total of 300.000 items.
comment in response to post
Can you just explain your issue a bit?
comment in response to post
I was curious how you check for the Dynamic Island, but ok really smart and easy solution 😄 But doesn’t work for non island devices 🙃
comment in response to post
Just wait for `Observations` 🙃 github.com/swiftlang/sw...
comment in response to post
Interesting. I have the inverse model in both, but only the @Relationship in one of them.
comment in response to post
Ok wow that’s a lot faster. So you mean you don’t have a property of ‚app: AppM?‘ In your AppStoreDiscoveryEngsgement model? Or how does the relationship look between the models?
comment in response to post
It depends on how you create the relationship This picture is one of my slides about SwiftData where you can see three approaches. If you want to have more details about this, look at this article fatbobman.com/en/posts/rel... from @fatbobman.bsky.social
comment in response to post
Yes I do the same 🥲
comment in response to post
Hm I don’t have experience with SwiftData and CloudKit sync yet, but when the UI lags it could be of some Queries in the view hierarchy which lead to a lot of redraws and blocking the main thread.
comment in response to post
Yeah my biggest wish for SwiftData is improved documentation 😅
comment in response to post
What are you missing outside of SwiftUI? Models are Observable which means you can also observe there changes outside of SwiftUI. And thanks to transactional observation in Swift 6.2 this will even be easier. github.com/swiftlang/sw...
comment in response to post
Thanks! 😊 On iOS, placing interactive elements like filters in the bottom area aligns with best practices for reachability. It makes them easier to access with your fingers, especially on larger screens.
comment in response to post
Have you tried .fontWeight(.bold) instead?
comment in response to post
The original issue? A heavy calculation in the view body. 1️⃣ Moved it to a @State property, updating only on @Query changes 2️⃣ Fetched data per List row instead of upfront 3️⃣ Used a background ModelContext for fetching #SwiftUI #SwiftData #iOSDev
comment in response to post
But that’s not all – we also have some other great talks lined up: • Cursor x iOS • Building a Resilient and Scalable Networking Layer If you’re in #Munich and passionate about #iOS development, join us for some great discussions, knowledge sharing, and networking with the local #Swift community.
comment in response to post
Here's another version showing how smooth the swipe and movement are. It's an infinite card stack—the front card slides back to the end of the stack, keeping the flow seamless.