#iosdev — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #iosdev, aggregated by home.social.
-
Join us on Sun 28-06-2026 10:00 at `uncommon ground - a space for creators, coders, and makers`.
More info: https://appsterdam.rs/event-314966162 #Appsterdam #iOSDev #AndroidDev #Developers #Meetup -
How do you handle multiple parallel async tasks finishing at once? This article compares DispatchGroup's manual enter/leave pattern with TaskGroup's structured concurrency approach — async/await makes concurrent operations more intuitive and less error-prone.
🔗: https://emredegirmenci.substack.com/p/what-do-you-do-when-you-want-to-get by Emre Degirmenci
-
How do you handle multiple parallel async tasks finishing at once? This article compares DispatchGroup's manual enter/leave pattern with TaskGroup's structured concurrency approach — async/await makes concurrent operations more intuitive and less error-prone.
🔗: https://emredegirmenci.substack.com/p/what-do-you-do-when-you-want-to-get by Emre Degirmenci
-
How do you handle multiple parallel async tasks finishing at once? This article compares DispatchGroup's manual enter/leave pattern with TaskGroup's structured concurrency approach — async/await makes concurrent operations more intuitive and less error-prone.
🔗: https://emredegirmenci.substack.com/p/what-do-you-do-when-you-want-to-get by Emre Degirmenci
-
How do you handle multiple parallel async tasks finishing at once? This article compares DispatchGroup's manual enter/leave pattern with TaskGroup's structured concurrency approach — async/await makes concurrent operations more intuitive and less error-prone.
🔗: https://emredegirmenci.substack.com/p/what-do-you-do-when-you-want-to-get by Emre Degirmenci
-
I’m building Fud AI, a free, open-source, local-first calorie tracker for iOS and
Android.It supports photo, text, voice, barcode, saved meals, and shared-photo logging. BYOK is
supported, so users can bring their own AI key.The AI coach uses logged intake, macros, and weight trends to give energy-balance-aware
feedback.Website: https://fud-ai.app
Source: https://github.com/apoorvdarshan/fud-ai -
I’m building Fud AI, a free, open-source, local-first calorie tracker for iOS and
Android.It supports photo, text, voice, barcode, saved meals, and shared-photo logging. BYOK is
supported, so users can bring their own AI key.The AI coach uses logged intake, macros, and weight trends to give energy-balance-aware
feedback.Website: https://fud-ai.app
Source: https://github.com/apoorvdarshan/fud-ai -
I’m building Fud AI, a free, open-source, local-first calorie tracker for iOS and
Android.It supports photo, text, voice, barcode, saved meals, and shared-photo logging. BYOK is
supported, so users can bring their own AI key.The AI coach uses logged intake, macros, and weight trends to give energy-balance-aware
feedback.Website: https://fud-ai.app
Source: https://github.com/apoorvdarshan/fud-ai -
I’m building Fud AI, a free, open-source, local-first calorie tracker for iOS and
Android.It supports photo, text, voice, barcode, saved meals, and shared-photo logging. BYOK is
supported, so users can bring their own AI key.The AI coach uses logged intake, macros, and weight trends to give energy-balance-aware
feedback.Website: https://fud-ai.app
Source: https://github.com/apoorvdarshan/fud-ai -
I’m building Fud AI, a free, open-source, local-first calorie tracker for iOS and
Android.It supports photo, text, voice, barcode, saved meals, and shared-photo logging. BYOK is
supported, so users can bring their own AI key.The AI coach uses logged intake, macros, and weight trends to give energy-balance-aware
feedback.Website: https://fud-ai.app
Source: https://github.com/apoorvdarshan/fud-ai -
Your Tasks might be starting on the Main Actor without you knowing it. When a Task inherits isolation from its surrounding context, even an immediate await causes "main-thread hopping." Use @ concurrent and MainActor. run to control where work actually runs.
🔗: https://www.avanderlee.com/concurrency/unexpected-task-suspension-points-in-swift-concurrency/ by Antoine van der Lee (@swiftlee)
-
Your Tasks might be starting on the Main Actor without you knowing it. When a Task inherits isolation from its surrounding context, even an immediate await causes "main-thread hopping." Use @ concurrent and MainActor. run to control where work actually runs.
🔗: https://www.avanderlee.com/concurrency/unexpected-task-suspension-points-in-swift-concurrency/ by Antoine van der Lee (@swiftlee)
-
Your Tasks might be starting on the Main Actor without you knowing it. When a Task inherits isolation from its surrounding context, even an immediate await causes "main-thread hopping." Use @ concurrent and MainActor. run to control where work actually runs.
🔗: https://www.avanderlee.com/concurrency/unexpected-task-suspension-points-in-swift-concurrency/ by Antoine van der Lee (@swiftlee)
-
Your Tasks might be starting on the Main Actor without you knowing it. When a Task inherits isolation from its surrounding context, even an immediate await causes "main-thread hopping." Use @ concurrent and MainActor. run to control where work actually runs.
🔗: https://www.avanderlee.com/concurrency/unexpected-task-suspension-points-in-swift-concurrency/ by Antoine van der Lee (@swiftlee)
-
I got so fed up with AppStore Connect to see basic downloads + purchases stats for my apps so I just created a simple dashboard to show me the data the way I want it.
Now open source for any #iosdev to use if interested https://github.com/igorkulman/app-store-connect-dashboard
-
Did you know you can pass < or > directly into sorted(by:) as closures? This technique leverages Swift's functional programming capabilities for more expressive and concise collection sorting.
🔗: https://nilcoalescing.com/blog/SortingArraysInSwiftUsingComparisonOperators/ by Natalia Panferova (@natpanferova)
-
Did you know you can pass < or > directly into sorted(by:) as closures? This technique leverages Swift's functional programming capabilities for more expressive and concise collection sorting.
🔗: https://nilcoalescing.com/blog/SortingArraysInSwiftUsingComparisonOperators/ by Natalia Panferova (@natpanferova)
-
Did you know you can pass < or > directly into sorted(by:) as closures? This technique leverages Swift's functional programming capabilities for more expressive and concise collection sorting.
🔗: https://nilcoalescing.com/blog/SortingArraysInSwiftUsingComparisonOperators/ by Natalia Panferova (@natpanferova)
-
Did you know you can pass < or > directly into sorted(by:) as closures? This technique leverages Swift's functional programming capabilities for more expressive and concise collection sorting.
🔗: https://nilcoalescing.com/blog/SortingArraysInSwiftUsingComparisonOperators/ by Natalia Panferova (@natpanferova)
-
Did you know you can pass < or > directly into sorted(by:) as closures? This technique leverages Swift's functional programming capabilities for more expressive and concise collection sorting.
🔗: https://nilcoalescing.com/blog/SortingArraysInSwiftUsingComparisonOperators/ by Natalia Panferova (@natpanferova)
-
Join us on Sat 13-06-2026 09:30 at `Coffee Coding`.
More info: https://appsterdam.rs/event-314931758 #Appsterdam #iOSDev #AndroidDev #Developers #Meetup -
Handcrafted app icon since release. I hope the users of my app out there will like the new icon dropping in the future!
-
I'm migrating a chunk of my on-device translation fallback to Google Cloud's ML APIs this morning. Honestly, navigating the GCP console still feels like trying to read a map drawn in the dark, but the actual latency on their translation and text models is getting hard to ignore. I still prefer keeping everything on-device when possible, but for a solo dev, sometimes you just need the infrastructure to work without babying it.
***
#iosdev #indiedev #buildinpublic #gcp
#OnDeviceAI ...
-
I'm migrating a chunk of my on-device translation fallback to Google Cloud's ML APIs this morning. Honestly, navigating the GCP console still feels like trying to read a map drawn in the dark, but the actual latency on their translation and text models is getting hard to ignore. I still prefer keeping everything on-device when possible, but for a solo dev, sometimes you just need the infrastructure to work without babying it.
***
#iosdev #indiedev #buildinpublic #gcp
#OnDeviceAI ...
-
I'm migrating a chunk of my on-device translation fallback to Google Cloud's ML APIs this morning. Honestly, navigating the GCP console still feels like trying to read a map drawn in the dark, but the actual latency on their translation and text models is getting hard to ignore. I still prefer keeping everything on-device when possible, but for a solo dev, sometimes you just need the infrastructure to work without babying it.
***
#iosdev #indiedev #buildinpublic #gcp
#OnDeviceAI ...
-
Xcode Cloud's caching of Swift Package Manager dependencies is incredibly aggressive. If you target a branch rather than a specific version or commit hash, it will happily pull a stale build from three days ago without checking for upstream changes, even if you clean the build folder locally. The only reliable fix is manually clearing the build cache in the App Store Connect portal. Saved me an hour of questioning my sanity today.
-
Xcode Cloud's caching of Swift Package Manager dependencies is incredibly aggressive. If you target a branch rather than a specific version or commit hash, it will happily pull a stale build from three days ago without checking for upstream changes, even if you clean the build folder locally. The only reliable fix is manually clearing the build cache in the App Store Connect portal. Saved me an hour of questioning my sanity today.
-
Xcode Cloud's caching of Swift Package Manager dependencies is incredibly aggressive. If you target a branch rather than a specific version or commit hash, it will happily pull a stale build from three days ago without checking for upstream changes, even if you clean the build folder locally. The only reliable fix is manually clearing the build cache in the App Store Connect portal. Saved me an hour of questioning my sanity today.
-
Xcode Cloud's caching of Swift Package Manager dependencies is incredibly aggressive. If you target a branch rather than a specific version or commit hash, it will happily pull a stale build from three days ago without checking for upstream changes, even if you clean the build folder locally. The only reliable fix is manually clearing the build cache in the App Store Connect portal. Saved me an hour of questioning my sanity today.
-
Xcode Cloud's caching of Swift Package Manager dependencies is incredibly aggressive. If you target a branch rather than a specific version or commit hash, it will happily pull a stale build from three days ago without checking for upstream changes, even if you clean the build folder locally. The only reliable fix is manually clearing the build cache in the App Store Connect portal. Saved me an hour of questioning my sanity today.
-
I still haven't found a healthy balance for GitHub notifications. Selecting "Participating" means missing critical upstream updates. "Watching" a repository means my inbox becomes a graveyard of automated PR merges and bot noise within hours. I spend way too much time triaging notifications for dependencies I haven't touched in months just to ensure I don't miss a breaking change. There has to be a better middle ground when you basically live in your repo.
-
I still haven't found a healthy balance for GitHub notifications. Selecting "Participating" means missing critical upstream updates. "Watching" a repository means my inbox becomes a graveyard of automated PR merges and bot noise within hours. I spend way too much time triaging notifications for dependencies I haven't touched in months just to ensure I don't miss a breaking change. There has to be a better middle ground when you basically live in your repo.
-
📢 𝗜𝘀𝘀𝘂𝗲 𝟵𝟯 𝗶𝘀 𝗼𝘂𝘁!
On the agenda:
🔤 𝑆𝑜𝑟𝑡𝑖𝑛𝑔 𝑤𝑖𝑡ℎ 𝑜𝑝𝑒𝑟𝑎𝑡𝑜𝑟 𝑐𝑙𝑜𝑠𝑢𝑟𝑒𝑠
⚡ 𝑇𝑎𝑠𝑘 𝑠𝑢𝑠𝑝𝑒𝑛𝑠𝑖𝑜𝑛 𝑝𝑜𝑖𝑛𝑡𝑠
🔄 𝐷𝑖𝑠𝑝𝑎𝑡𝑐ℎ𝐺𝑟𝑜𝑢𝑝 𝑣𝑠 𝑇𝑎𝑠𝑘𝐺𝑟𝑜𝑢𝑝
🗑️ 𝐷𝑒𝑝𝑟𝑒𝑐𝑎𝑡𝑖𝑛𝑔 𝑐𝑜𝑛𝑣𝑒𝑛𝑖𝑒𝑛𝑐𝑒 𝐴𝑃𝐼𝑠
🤖 𝐺𝑖𝑡 𝑓𝑜𝑟 𝐴𝐼 𝐴𝑔𝑒𝑛𝑡𝑠
🧮 𝐿𝐿𝑀 𝑡𝑟𝑎𝑖𝑛𝑖𝑛𝑔 𝑖𝑛 𝑆𝑤𝑖𝑓𝑡
💾 𝑆𝑤𝑖𝑓𝑡𝐷𝑎𝑡𝑎 𝑡𝑢𝑡𝑜𝑟𝑖𝑎𝑙
🎮 𝑋𝑜𝑔𝑜𝑡 𝑜𝑛 𝑀𝑎𝑐🔗: https://ios-newsletter.snappmobile.io/issues/2026-05-22-issue-93.html by @snappmobile
-
📢 𝗜𝘀𝘀𝘂𝗲 𝟵𝟯 𝗶𝘀 𝗼𝘂𝘁!
On the agenda:
🔤 𝑆𝑜𝑟𝑡𝑖𝑛𝑔 𝑤𝑖𝑡ℎ 𝑜𝑝𝑒𝑟𝑎𝑡𝑜𝑟 𝑐𝑙𝑜𝑠𝑢𝑟𝑒𝑠
⚡ 𝑇𝑎𝑠𝑘 𝑠𝑢𝑠𝑝𝑒𝑛𝑠𝑖𝑜𝑛 𝑝𝑜𝑖𝑛𝑡𝑠
🔄 𝐷𝑖𝑠𝑝𝑎𝑡𝑐ℎ𝐺𝑟𝑜𝑢𝑝 𝑣𝑠 𝑇𝑎𝑠𝑘𝐺𝑟𝑜𝑢𝑝
🗑️ 𝐷𝑒𝑝𝑟𝑒𝑐𝑎𝑡𝑖𝑛𝑔 𝑐𝑜𝑛𝑣𝑒𝑛𝑖𝑒𝑛𝑐𝑒 𝐴𝑃𝐼𝑠
🤖 𝐺𝑖𝑡 𝑓𝑜𝑟 𝐴𝐼 𝐴𝑔𝑒𝑛𝑡𝑠
🧮 𝐿𝐿𝑀 𝑡𝑟𝑎𝑖𝑛𝑖𝑛𝑔 𝑖𝑛 𝑆𝑤𝑖𝑓𝑡
💾 𝑆𝑤𝑖𝑓𝑡𝐷𝑎𝑡𝑎 𝑡𝑢𝑡𝑜𝑟𝑖𝑎𝑙
🎮 𝑋𝑜𝑔𝑜𝑡 𝑜𝑛 𝑀𝑎𝑐🔗: https://ios-newsletter.snappmobile.io/issues/2026-05-22-issue-93.html by @snappmobile
-
📢 𝗜𝘀𝘀𝘂𝗲 𝟵𝟯 𝗶𝘀 𝗼𝘂𝘁!
On the agenda:
🔤 𝑆𝑜𝑟𝑡𝑖𝑛𝑔 𝑤𝑖𝑡ℎ 𝑜𝑝𝑒𝑟𝑎𝑡𝑜𝑟 𝑐𝑙𝑜𝑠𝑢𝑟𝑒𝑠
⚡ 𝑇𝑎𝑠𝑘 𝑠𝑢𝑠𝑝𝑒𝑛𝑠𝑖𝑜𝑛 𝑝𝑜𝑖𝑛𝑡𝑠
🔄 𝐷𝑖𝑠𝑝𝑎𝑡𝑐ℎ𝐺𝑟𝑜𝑢𝑝 𝑣𝑠 𝑇𝑎𝑠𝑘𝐺𝑟𝑜𝑢𝑝
🗑️ 𝐷𝑒𝑝𝑟𝑒𝑐𝑎𝑡𝑖𝑛𝑔 𝑐𝑜𝑛𝑣𝑒𝑛𝑖𝑒𝑛𝑐𝑒 𝐴𝑃𝐼𝑠
🤖 𝐺𝑖𝑡 𝑓𝑜𝑟 𝐴𝐼 𝐴𝑔𝑒𝑛𝑡𝑠
🧮 𝐿𝐿𝑀 𝑡𝑟𝑎𝑖𝑛𝑖𝑛𝑔 𝑖𝑛 𝑆𝑤𝑖𝑓𝑡
💾 𝑆𝑤𝑖𝑓𝑡𝐷𝑎𝑡𝑎 𝑡𝑢𝑡𝑜𝑟𝑖𝑎𝑙
🎮 𝑋𝑜𝑔𝑜𝑡 𝑜𝑛 𝑀𝑎𝑐🔗: https://ios-newsletter.snappmobile.io/issues/2026-05-22-issue-93.html by @snappmobile
-
📢 𝗜𝘀𝘀𝘂𝗲 𝟵𝟯 𝗶𝘀 𝗼𝘂𝘁!
On the agenda:
🔤 𝑆𝑜𝑟𝑡𝑖𝑛𝑔 𝑤𝑖𝑡ℎ 𝑜𝑝𝑒𝑟𝑎𝑡𝑜𝑟 𝑐𝑙𝑜𝑠𝑢𝑟𝑒𝑠
⚡ 𝑇𝑎𝑠𝑘 𝑠𝑢𝑠𝑝𝑒𝑛𝑠𝑖𝑜𝑛 𝑝𝑜𝑖𝑛𝑡𝑠
🔄 𝐷𝑖𝑠𝑝𝑎𝑡𝑐ℎ𝐺𝑟𝑜𝑢𝑝 𝑣𝑠 𝑇𝑎𝑠𝑘𝐺𝑟𝑜𝑢𝑝
🗑️ 𝐷𝑒𝑝𝑟𝑒𝑐𝑎𝑡𝑖𝑛𝑔 𝑐𝑜𝑛𝑣𝑒𝑛𝑖𝑒𝑛𝑐𝑒 𝐴𝑃𝐼𝑠
🤖 𝐺𝑖𝑡 𝑓𝑜𝑟 𝐴𝐼 𝐴𝑔𝑒𝑛𝑡𝑠
🧮 𝐿𝐿𝑀 𝑡𝑟𝑎𝑖𝑛𝑖𝑛𝑔 𝑖𝑛 𝑆𝑤𝑖𝑓𝑡
💾 𝑆𝑤𝑖𝑓𝑡𝐷𝑎𝑡𝑎 𝑡𝑢𝑡𝑜𝑟𝑖𝑎𝑙
🎮 𝑋𝑜𝑔𝑜𝑡 𝑜𝑛 𝑀𝑎𝑐🔗: https://ios-newsletter.snappmobile.io/issues/2026-05-22-issue-93.html by @snappmobile
-
📢 𝗜𝘀𝘀𝘂𝗲 𝟵𝟯 𝗶𝘀 𝗼𝘂𝘁!
On the agenda:
🔤 𝑆𝑜𝑟𝑡𝑖𝑛𝑔 𝑤𝑖𝑡ℎ 𝑜𝑝𝑒𝑟𝑎𝑡𝑜𝑟 𝑐𝑙𝑜𝑠𝑢𝑟𝑒𝑠
⚡ 𝑇𝑎𝑠𝑘 𝑠𝑢𝑠𝑝𝑒𝑛𝑠𝑖𝑜𝑛 𝑝𝑜𝑖𝑛𝑡𝑠
🔄 𝐷𝑖𝑠𝑝𝑎𝑡𝑐ℎ𝐺𝑟𝑜𝑢𝑝 𝑣𝑠 𝑇𝑎𝑠𝑘𝐺𝑟𝑜𝑢𝑝
🗑️ 𝐷𝑒𝑝𝑟𝑒𝑐𝑎𝑡𝑖𝑛𝑔 𝑐𝑜𝑛𝑣𝑒𝑛𝑖𝑒𝑛𝑐𝑒 𝐴𝑃𝐼𝑠
🤖 𝐺𝑖𝑡 𝑓𝑜𝑟 𝐴𝐼 𝐴𝑔𝑒𝑛𝑡𝑠
🧮 𝐿𝐿𝑀 𝑡𝑟𝑎𝑖𝑛𝑖𝑛𝑔 𝑖𝑛 𝑆𝑤𝑖𝑓𝑡
💾 𝑆𝑤𝑖𝑓𝑡𝐷𝑎𝑡𝑎 𝑡𝑢𝑡𝑜𝑟𝑖𝑎𝑙
🎮 𝑋𝑜𝑔𝑜𝑡 𝑜𝑛 𝑀𝑎𝑐🔗: https://ios-newsletter.snappmobile.io/issues/2026-05-22-issue-93.html by @snappmobile
-
StarterSeeds performance update is live!
Finally started learning to use Xcode Instruments and wow - found so many areas to optimize. If you’ve noticed any lag, especially with the game and photo library, this update should help.
https://apps.apple.com/de/app/starterseeds-spiele-launcher/id6757363455
#iOSDev #PerformanceOptimization #GameLauncher #iOS #indieApps #Apps
-
StarterSeeds performance update is live!
Finally started learning to use Xcode Instruments and wow - found so many areas to optimize. If you’ve noticed any lag, especially with the game and photo library, this update should help.
https://apps.apple.com/de/app/starterseeds-spiele-launcher/id6757363455
#iOSDev #PerformanceOptimization #GameLauncher #iOS #indieApps #Apps
-
StarterSeeds performance update is live!
Finally started learning to use Xcode Instruments and wow - found so many areas to optimize. If you’ve noticed any lag, especially with the game and photo library, this update should help.
https://apps.apple.com/de/app/starterseeds-spiele-launcher/id6757363455
#iOSDev #PerformanceOptimization #GameLauncher #iOS #indieApps #Apps
-
StarterSeeds performance update is live!
Finally started learning to use Xcode Instruments and wow - found so many areas to optimize. If you’ve noticed any lag, especially with the game and photo library, this update should help.
https://apps.apple.com/de/app/starterseeds-spiele-launcher/id6757363455
#iOSDev #PerformanceOptimization #GameLauncher #iOS #indieApps #Apps
-
StarterSeeds performance update is live!
Finally started learning to use Xcode Instruments and wow - found so many areas to optimize. If you’ve noticed any lag, especially with the game and photo library, this update should help.
https://apps.apple.com/de/app/starterseeds-spiele-launcher/id6757363455
#iOSDev #PerformanceOptimization #GameLauncher #iOS #indieApps #Apps
-
Join us on Sat 05-09-2026 09:30 at `Coffee Coding`.
More info: https://appsterdam.rs/event-ppssvtyjcmbhb #Appsterdam #iOSDev #AndroidDev #Developers #Meetup -
Discovered a frustrating App Store Connect API quirk. The webhook for a build finishing processing fires a few seconds before the read-write database replicas actually sync. If your CI pipeline immediately tries to patch buildBetaDetails to set the TestFlight whatsNew text, the API throws a transient 409 conflict. Had to add an arbitrary ten-second sleep to my fastlane lane to prevent builds from failing silently.
-
Discovered a frustrating App Store Connect API quirk. The webhook for a build finishing processing fires a few seconds before the read-write database replicas actually sync. If your CI pipeline immediately tries to patch buildBetaDetails to set the TestFlight whatsNew text, the API throws a transient 409 conflict. Had to add an arbitrary ten-second sleep to my fastlane lane to prevent builds from failing silently.
-
Discovered a frustrating App Store Connect API quirk. The webhook for a build finishing processing fires a few seconds before the read-write database replicas actually sync. If your CI pipeline immediately tries to patch buildBetaDetails to set the TestFlight whatsNew text, the API throws a transient 409 conflict. Had to add an arbitrary ten-second sleep to my fastlane lane to prevent builds from failing silently.
-
Discovered a frustrating App Store Connect API quirk. The webhook for a build finishing processing fires a few seconds before the read-write database replicas actually sync. If your CI pipeline immediately tries to patch buildBetaDetails to set the TestFlight whatsNew text, the API throws a transient 409 conflict. Had to add an arbitrary ten-second sleep to my fastlane lane to prevent builds from failing silently.
-
Discovered a frustrating App Store Connect API quirk. The webhook for a build finishing processing fires a few seconds before the read-write database replicas actually sync. If your CI pipeline immediately tries to patch buildBetaDetails to set the TestFlight whatsNew text, the API throws a transient 409 conflict. Had to add an arbitrary ten-second sleep to my fastlane lane to prevent builds from failing silently.
-
I wanted a receipt scanner that didn't upload my financial life to someone else's server. So I'm building one. It uses local on-device OCR, saves to SwiftData, and exports a clean CSV. No accounts, no cloud. While researchers are trying to break the "memory wall" for massive cloud AI models, keeping ML local and lightweight is still the best move for actual, practical utility apps.