Arnaud Joubay

Arnaud Joubay

@sowenjub.me

is good for your happiness.  featured 💬 SwiftUI, iOS, visionOS, macOS, Design(ish), Dad. 🇫🇷 in 🇨🇭ZH, 🇪🇺ptimist Arnaud 🗣️ Ahr-no 🏝 sowenjub.me 😜 Daily emojym.com Challenge 🐮 Less or @nomeat.today 🦧 Less or notreat.today 🏔 Snack Workouts: Pyup

823 followers370 following127 posts

Pinned

One day I may write an article about it. Until then, here are some tips about #SwiftData & #CloudKit.

Arnaud Joubay@sowenjub.me

- use a group container (to share data with widgets) - enable CloudKit from day 1 (to avoid using unsupported features and get warnings - eg Strings must be optional, etc.) - use the Apple demos to setup data Previews - it doesn’t save data if you kill an app (or rebuild it in dev), it’s normal

Arnaud Joubay reposted

I’m starting a monthly newsletter! It’ll include #SwiftLang & #SwiftUI tips, project updates from our team, and special discounts on my books. You can sign up now on my website, and the first issue will be sent at the end of January: nilcoalescing.com/newsletter

nilcoalescing.comNil Coalescing - NewsletterGet exclusive Swift and SwiftUI tips, project updates, behind-the-scenes insights, and special discounts on our books — all in a monthly email from us.

Started 2025 with some UIKit. LazyVStack got the better of me. I couldn't figure out how to avoid hangs for my calendar view (with data for each day) 😔

Arnaud Joubay reposted

SwiftUI Previews with #CoreData is easier than ever thanks to the new PreviewModifier protocol introduced at this year's WWDC. I've mistakenly always thought it would only work for #SwiftData but it turns out it's perfectly fine for Core Data too! 😀

I haven’t been able to play music on any of my house’s HomePods in weeks. There’s always ”a problem”. Siri is not very helpful there, when I think it should in fact be an Apple Genius, coaching you step by step to solve any Apple related issue.

Turning this On in the Home settings fixed it! Weirdly, it was able to play my playlists but not generic things like “classical music”. I would have expected the opposite with this Off 🤨

Arnaud Joubay reposted

I have request! Can you go help out @kawamataryo.bsky.social on his big Product Hunt debut today? He's battling a scammer that's trying to trick people into using a fake Sky Follower Bridge and could use your help proving that his is the OG by winning on Product Hunt! 🙏🏻👇🏻🏆

Kawamata Ryo@kawamataryo.bsky.social

🚀 Sky Follower Bridge is live on Product Hunt! 🌟 Seamlessly migrate your social connections to Bluesky with features like automatic profile matching and bulk following. Check it out and give us an upvote if you love it! 🙌 🔗 www.producthunt.com/posts/sky-fo... #ProductHunt #SkyFollowerBridge

Arnaud Joubay reposted

Thanks to #SwiftUI 's powerful graphics APIs, I am this close to retiring my copy of Photoshop CS6 for good 🤏

Second time my app gets rejected because I offer users to contact me and ask for an Educational Discount. They fill a form, I send an offer code if it looks legitimate. But the reviewer (who didn’t go through the whole process) claims I use an external mechanisms to unlock purchases 😤

And a dashboard showing an overview of all apps: - review status for each - reviews without response, - TestFlight builds expiring soon / expired recently

Arnaud Joubay reposted

Calling all indie developers (iOS, Android, web, games) - would you be interested in an “Indie apps that use Firebase” Starter Pack? Yes? Reply below with your app’s / games’ handle and a short description of what it’s about, and I’ll create it.

Which labels are more likely to help users pick a subscription? - periodicity: Annual vs Monthly - benefit: Year-round Motivation vs 30-Day Challenge

Arnaud Joubay reposted

I’ve just started this brand-new group with Apple platforms developers. New here myself - say Hi to join. Please repost for some visibility.

Arnaud Joubay reposted

I’ve been using Mailcoach all year to send millions of emails, and I can’t recommend it enough. Their Black Friday sale is today only, and you can buy the software + upgrades for a year for only $129, and send emails for $1/10,000 thanks to SES. www.mailcoach.app/self-hosted/...

mailcoach.appSelf-Hosted Laravel email marketing softwareMailcoach Self-Hosted is a powerful email platform for email marketing, automations and transactional emails, seamlessly integrated into your Laravel application.

Arnaud Joubay reposted

I’m giving away 30 Lifetime Up Ahead subscriptions as part of this #IndieSky initiative. Just a friendly nudge to get more folks active here! To enter, follow this account and either share or comment on this post. I’ll randomly select winners on Thursday. 🦋

Ben Sandofsky@sandofsky.com

A lot of indie apps are having a blast on Bluesky, and we'd love more of our friends and fans to join the party. So we came up with a fun idea: a giveaway! #IndieSky www.lux.camera/indiesky-on-...

“Given the high stakes of climate change, it is foolhardy to rely on Direct Air Capture to be the hero that comes to our rescue.”

Dave Vetter@davidrvetter.bsky.social

Carbon removals: the uncomfortable truth. Lots of people are responding to Ketan's excellent thread here with "just plant trees". Unfortunately, while well-intentioned, this misunderstands the nature and scale of the problem and its possible solutions. 🧵

Arnaud Joubay reposted

Hey! I make iOS apps for myself that sometimes other people like too. Barcodes is a privacy friendly loyalty card wallet, with a bunch of handy features like iCloud sync and sharing! Supports Apple Watch, Apple Wallet and Home Screen widgets. Check it out! trybarcodes.com

trybarcodes.comBarcodes - Loyalty Card Wallet for iOSThe best reward card wallet for iOS. Store membership tags, loyalty cards, and any kind of barcode in a fast digital wallet.

One day I may write an article about it. Until then, here are some tips about #SwiftData & #CloudKit.

Arnaud Joubay@sowenjub.me

- use a group container (to share data with widgets) - enable CloudKit from day 1 (to avoid using unsupported features and get warnings - eg Strings must be optional, etc.) - use the Apple demos to setup data Previews - it doesn’t save data if you kill an app (or rebuild it in dev), it’s normal

View full thread

5/ If you need a FetchDescriptor with a predicate that filters based on another @.Model, you can't use the model directly. You need to rely on something that uniquely identifies your record (and capture that value outside the #Predicate)

Great tip! People who used #CoreData are probably familiar with this already have already. bsky.app/profile/crea...

Jay ᯅ | iOS Dev @creativewith.in

1/ 🚨 iOS Devs generally run into issues with SwiftData and aren't always clear on how to debug them. Here are a few arguments and environment variables you could add by editing your Debug scheme → Arguments tab. #SwiftData #iOSDev #SwiftUI #swiftlang #xcode #BuildInPublic

Arnaud Joubay reposted

Now that I have a bigger reach, I’d like to once again call on #SwiftUI and #Swiftlang developers interested in atproto: 1) What would you like to see with ATProtoKit to help you better with integrating it into your SwiftUI apps? 2) What pain points do you have currently?

One day I may write an article about it. Until then, here are some tips about #SwiftData & #CloudKit.

Arnaud Joubay@sowenjub.me

- use a group container (to share data with widgets) - enable CloudKit from day 1 (to avoid using unsupported features and get warnings - eg Strings must be optional, etc.) - use the Apple demos to setup data Previews - it doesn’t save data if you kill an app (or rebuild it in dev), it’s normal

View full thread

2/ About the error "Illegal attempt to establish a relationship 'xxxx' between objects in different contexts": You can't pass a Model to the init of another model. You need to create the relationship after it's initiated.

If you have a @.Relationship 1-many, don't set it to nil in your init or it will crash with "Fatal error: Unknown related type." Beware that it's what Xcode auto generates.

One day I may write an article about it. Until then, here are some tips about #SwiftData & #CloudKit.

Arnaud Joubay@sowenjub.me

- use a group container (to share data with widgets) - enable CloudKit from day 1 (to avoid using unsupported features and get warnings - eg Strings must be optional, etc.) - use the Apple demos to setup data Previews - it doesn’t save data if you kill an app (or rebuild it in dev), it’s normal

View full thread

More about CloudKit init bsky.app/profile/sowe...

Arnaud Joubay@sowenjub.me

Also, regarding CloudKit, make sure you: - Use the code I linked to for proper initialization of all the attributes - promote your dev environment to production in the Cloud Kit console Otherwise, you will be surprised that some data is missing. developer.apple.com/documentatio...

One day I may write an article about it. Until then, here are some tips about #SwiftData & #CloudKit.

Arnaud Joubay@sowenjub.me

- use a group container (to share data with widgets) - enable CloudKit from day 1 (to avoid using unsupported features and get warnings - eg Strings must be optional, etc.) - use the Apple demos to setup data Previews - it doesn’t save data if you kill an app (or rebuild it in dev), it’s normal

Arnaud Joubay reposted

Am I the only one that didn't get the memo that as of iOS 16.4, you can disable UIHostingController's safe area insets without any swizzling or private APIs?

Arnaud Joubay reposted

I've built an internal tool to get #AppleSearchAds popularity 📈 But I need to login with 2FA every few hours to get the cookie required to use the endpoint 😞 Does anyone know how to make this easier? Can I use an app-specific password? #AppStoreOptimization #ASO #ASA #iOSDev

Am I the only one ready to pay a monthly tip for @bsky.app, right now? Sure, you can bring a proper subscription against paid features later. Just let us support the effort without waiting.