r/iOSProgramming • • 8h ago

Humor Popped up in my head during development, lol

Post image
52 Upvotes

r/iOSProgramming • • 16h ago

Tutorial iOS 27: Now Playing Framework

Thumbnail
antongubarenko.substack.com
24 Upvotes

r/iOSProgramming • • 10h ago

News Slow Animations is coming back to Device Hub

9 Upvotes

I know this was a pain point for a lot of people but I noticed this in the Xcode 27.2 release notes:

Device Hub in Xcode 27.2 contains multiple improvements:

Slow Motion Animation (Simulators Only)


r/iOSProgramming • • 12h ago

Article Architecture deep dive: Simulating tactile 3D logistics dioramas with RealityKit and SwiftUI in an open-source iPad game

5 Upvotes

Hey everyone,

I recently open-sourced Waybill, a tactile 3D logistics diorama simulator built for iPadOS using RealityKit and SwiftUI. I wrote up a detailed technical breakdown of the architecture:

  • Bridging RealityKit's Entity-Component-System (ECS) with SwiftUI state loops
  • Procedural conveyor belt splines and item physics
  • Maintaining a smooth 60fps on iPad while rendering dynamic lighting and shadows

Deep dive article: https://yorben.me/articles/simulating-3d-logistics-dioramas-realitykit.html Full repository (MIT): https://github.com/Yvsleyen00941/Waybill

Hope this helps anyone working with RealityKit on iPadOS or visionOS!


r/iOSProgramming • • 15h ago

Discussion Swift 6.4: Async defer doesn't make cleanup cancellation-safe

8 Upvotes

I wrote a technical walkthrough of a subtle Swift Concurrency issue I wanted to explore.

Imagine a task writing data into a buffered writer. The task gets cancelled, defer runs, and close() gets called. But if close()invokes a cancellation-aware flush(), that flush can throw CancellationError. If the error is swallowed and the writer is marked closed anyway, the cleanup path has run without achieving its intended postcondition.

The article explores two Swift Evolution proposals:

  • SE-0493: Async calls in defer bodies
  • SE-0504: Task Cancellation Shields

It covers a minimal reproduction, the limits of using Task.detached for cleanup, a narrowly scoped cancellation shield, and a Swift Testing example that checks whether the data was actually flushed rather than merely checking whether close() was called.

One important caveat: the example demonstrates a cancellation-aware cleanup failure, not a claim that every real file API corrupts data when cancelled.

Full article: https://sagarsaurav.medium.com/the-ios-task-was-cancelled-your-defer-still-didnt-flush-the-file-a81d45b02ad9?sharedUserId=sagarsaurav

I'd be interested in feedback on the cancellation-shield approach, especially around resource ownership and cleanup guarantees in production code.


r/iOSProgramming • • 1d ago

Question Trying to get an account for my business email

2 Upvotes

Anyone know how to get an account for a business email? I keep getting account cannot be created at this time and the developer.apple.com support for creating an account requires an account, same with the contact form or phone support. Using my personal apple account is not an option.

EDIT: I had to call the consumer help line and they redirected me.


r/iOSProgramming • • 10h ago

Discussion iOS Development using OpenClaw.

0 Upvotes

I am using OpenClaw through telegram. I create web applications in VPS and web applications are pretty easy to vibe code and also test the output using public urls.

I want to do same for iOS Development. I want to connect to macOS using OpenClaw and develop iOS application completely through telegram. I can create a workflow where any changes will send build to TestFlight and I can test the application that way. But it will be time consuming, makeing build in testflight and test the app only updated through testflight. I want near realtime visualization of the compiled app like simulator but through web and http network. Do you guys have any idea how to achieve this?


r/iOSProgramming • • 1d ago

Article A checklist of platform decisions for iOS/watchOS apps. What am I missing?

7 Upvotes

A while ago I asked here what you consider when building an app. Since then I shipped two big updates of my running app for Apple Watch and iPhone, and turned what I learned into a checklist.

It’s not a list of things you must support. It’s things you should consciously decide on, yes or no, before they surprise you:

  • Screen sizes (smallest device + longest realistic values)
  • Rotation
  • Dynamic Type / text size
  • iPad, Mac, Vision Pro
  • Multiple windows
  • Accessibility (VoiceOver, colour as the only signal)
  • Live Activities (and how often they really need to update)
  • Widgets (sizes and families)
  • Complications
  • App Intents / Siri / Shortcuts
  • Sharing (what goes out, what comes in)
  • New device classes coming up
  • Gestures (Double Tap, Digital Crown, conflicts with the system)
  • Action Button
  • Translation (every future feature in every language)
  • Animations and Reduce Motion
  • Older devices: speed and battery
  • iCloud: backup or sync?
  • Light and dark mode

Tip: write down every answer, including the no’s and why. And this is iOS/watchOS only. Add Android, tablets or desktop and the list roughly doubles.

Longer version with my reasoning for each point, plus an interactive checklist you can export as Markdown: The list behind every app

Two questions:

  1. What’s missing? What bit you the hardest?
  2. English isn’t my first language. I wrote the post in German and translated it with AI. Does it read AI-ish? What gives it away?

r/iOSProgramming • • 2d ago

Article Lessons from shipping Apple's Private Cloud Compute: 32K context, quotas, and privacy trade-offs

25 Upvotes

I just shipped an update to my journal analysis app that adds Apple's Private Cloud Compute (PCC) alongside the default on-device model.

Here are the practical lessons I learned from the implementation, especially around edge cases and UX:

1. The main reason to use PCC: Context size
The on-device model caps out around 4,000 tokens. For long journal entries or imported PDFs, text got truncated constantly. PCC bumps that limit up to 32,000 tokens, which easily handles multi-page entries in a single pass without needing workarounds.

2. The API transition is simple, but needs fallbacks

  • Swapping from on-device to PCC is nearly a 1-to-1 change. Your existing prompts, tools, and response handling work identically.
  • PCC requires an internet connection, so you have to build an automatic fallback to the on-device model when the user goes offline.
  • Before offering PCC, make sure to check availability properly. A device that doesn't support the feature is handled differently than a device that supports it but is still waiting on system assets to download.

3. Quotas and Apple's UI expectations

  • Users get a daily limit for cloud requests, which increases if they have an iCloud+ subscription.
  • Apple expects your UI to proactively warn users when they are getting close to their limit, rather than just throwing an error when they hit the ceiling.
  • There is a built-in system sheet you can trigger to suggest an iCloud+ upgrade when they run out.
  • Tip: You can simulate reaching and exceeding quota limits inside Xcode’s scheme settings, which makes testing the UI much faster.

4. The privacy messaging challenge
If your app was originally marketed as "100% on-device," introducing the cloud can spook privacy-conscious users even with Apple's strong security guarantees around PCC.

I decided to keep the on-device model as the default and made PCC an explicit opt-in toggle in the settings. I also updated the App Store description and privacy policy to clearly say "on-device by default."

For anyone else working with PCC:

  • Are you letting users toggle it manually, or automatically sending prompts to PCC only when they exceed the 4K token limit?
  • How has real-world latency felt compared to on-device inference?

(Context: The app is Mindful Prism if anyone wants to see the implementation in action.)


r/iOSProgramming • • 2d ago

Question Looking for a way to save screenshots without the clock and the top status bar

Post image
19 Upvotes

I'm trying to save screenshots from the simulator, but I can't find a way to do it without the clock and battery indicators. Is there any method you know of where you could hide these from screenshots?

I've been manually erasing them in Figma, but I'm wondering if there's a better way.


r/iOSProgramming • • 1d ago

Discussion Your push notifications are probably about your app, not your user

0 Upvotes

What I keep seeing: the permission prompt on first launch, "We miss you!" copy, everyone blasted at 10am server time. Then everyone's surprised when opt-outs climb.

I wrote a practical playbook on the opposite approach: ask after a real win, give every push a reason that belongs to the reader, send at each user's own active hour, and cap nudges at about 1 a week.

https://medium.com/@krishnassss365/push-notifications-that-earn-their-place-cb1e85a46a85?sharedUserId=krishnassss365

Curious what's worked for you. Has anyone measured opt-out rate per message instead of open rate?


r/iOSProgramming • • 3d ago

Discussion vphone-linux: Run virtual iOS 26 iPhone on linux and develop iOS apps without MacOS.

Thumbnail
github.com
170 Upvotes

Just published my project that I've been working on for a while that allows you to run a virtual iPhone vm on linux to test and develop iOS apps there with no need for a Mac.

So for fellow hackintoshers or PC users you can try it out and let me know if you faced any issues.


r/iOSProgramming • • 3d ago

Discussion Apple is instantly reviewing apps supporting Duo

Post image
381 Upvotes

Submitted at 8:11, Approved by 8:44

My app is pretty simple, but still. Has anyone ever seen anything like this?


r/iOSProgramming • • 2d ago

Discussion Your iPhone Can Run an LLM Locally — A Hands-On Swift Guide to Foundation Models in iOS 27

Thumbnail
medium.com
19 Upvotes

r/iOSProgramming • • 3d ago

Question Apple doesn't give me the option to choose another document type in the developer program

Post image
9 Upvotes

What am I supposed to do? I don't have a driver's license, and I live in Colombia. Why won't they let me use my ID card?


r/iOSProgramming • • 3d ago

App Saturday Shikaku - Daily Rectangle Logic Puzzles

Thumbnail
gallery
5 Upvotes

After working on it for the last 8 months, I just launched Shikaku by Hilal on the App Store today. It is a minimalist logic puzzle app I built as a solo developer, and I’d love for you to try it!

Place rectangles to cover the entire grid, each rectangle's size corresponding to the numbers on the grid.

There are no ads and no subscriptions, and you can compete with friends, family, or players around the world through leaderboards.

If you give Shikaku a try, I’d love to hear what you enjoy, what feels confusing, and what you’d change!

Tech Stack

  • Frameworks & Languages: Swift 6 and SwiftUI, with puzzle generation and validation kept separate from UI code.
  • Backend/Database: No custom backend. Puzzles are generated locally. Progress and settings use UserDefaults, with Codable/JSON for structured data.
  • SDKs & Tools: Xcode, Swift Testing, GameKit for Game Center leaderboards and achievements, and StoreKit 2 for the one-time Pro unlock.

Development Challenge + How I Solved It

One tricky issue is keeping daily puzzles synchronized with Game Center’s daily leaderboard resets. The Game Center resets have to be done at the same time for all users across the world, which means for some users the reset occurs in the middle of the day.

I ended up using one shared daily cycle for puzzle selection, saved progress, and score eligibility, aligned to the leaderboard reset. Date-and-difficulty seeds give everyone the same puzzle without a server, and regression tests protect both puzzle consistency and reset timing. But there is no way to reset puzzles midnight their local time without disrupting Game Center leaderboards unfortunately.

Try Shikaku on the App Store


r/iOSProgramming • • 2d ago

Discussion iOS devs with an Android daily driver: how do you check App Store Connect on the go?

0 Upvotes

Apple's App Store Connect app is iOS-only, so on my Android phone I log into the web version every time I want to check review status or a TestFlight build. It works, but it's clunky on mobile.

Curious how others handle this:

  1. Is your daily phone Android? What do you use for ASC when you're away from your Mac?

  2. What do you check most: review status, TestFlight builds, sales, customer reviews, something else?

  3. Tried a third-party Android client? What was missing?

Full disclosure: if there's real interest, I might build a native Android client on the official App Store Connect API (key stays on your device, no server). If you'd test it, say so in the comments.


r/iOSProgramming • • 3d ago

Question apple wants our live updater (capgo) removed: "based on code in the submitted binary". anyone beat this?

7 Upvotes

our app is a b2b crm built with capacitor. the screens are html/js/css bundled in the binary, it works fully offline, and we ship web-layer fixes with @capgo/capacitor-updater, self-hosted and checksum-verified, never native code.

apple rejected the last version twice in a row for the updater, under 2.3.1(a):

We continue to find the app contains live content update functionality that can modify the app's behavior after approval. This finding is based on code in the submitted binary and not on a specific screen in the app.

I replied in the thread and app review confirmed:

It would be appropriate to remove the remote update functionality and all code related to it before resubmitting. Developers are responsible for all code included in the binary submission, including code from third-party SDKs and libraries.

so a reviewer didn't see something on screen, they found the plugin in the binary.

section 3.3.1(b) of the developer agreement allows downloading interpreted code that doesn't change the app's primary purpose, and thousands of apps ship capgo, capawesome, appflow or expo updates. I appealed to the app review board on 21 october, no answer yet.

  1. has anyone else got this "code in the submitted binary" rejection for a live updater, especially since the 16 october guideline update (2.5.19)?
  2. did anyone win an app review board appeal on it?
  3. if you removed the updater on ios, how do you ship fixes to an offline-first app now?

r/iOSProgramming • • 2d ago

Discussion Shipped my first Swift app with AI, then built a game to learn the codebase

Thumbnail
gallery
0 Upvotes

10 years as a developer, zero Swift. I relied heavily on AI to write the code. My experience made the calls:

- I threat-modelled it like any security product, found and closed a way to switch off all protection.

- I switched out the custom face matcher (it let strangers in) for Apple’s Face ID.

- Keychain for secrets, no third-party SDKs, no tracking.

- I tested on real device instead of trusting “it builds”.

Then the part most people skip: I learned the code after shipping. I had Claude turn my own codebase into a game, Code Quest. It only covers what's different about Swift (optionals, value types, actors, SwiftUI state), uses real lines from my app, and ends with a code-review level of plausible PRs that would break things.

AI can write it. You still have to own it.

Does it matter to you that you understand your codebase? If so, how do you go about doing it?


r/iOSProgramming • • 3d ago

Discussion App devs who build for clients: how do you get access to their App Store Connect and Google Play?

4 Upvotes

For those building apps for clients: how do you get access to the client's App Store Connect and Google Play Console at the start of a project? Do they invite you with a role, share a login, or do you publish under your own account and transfer the app later?

  1. How long does it usually take until you can upload a build?
  2. Which part trips clients up most: the developer account itself, D-U-N-S, roles, two-factor?
  3. When the project ends, how do you hand things back?

Curious what works for you and what doesn't.


r/iOSProgramming • • 2d ago

Discussion Firebase 13 dropped CocoaPods. Here’s how I moved a iOS app to SPM

Thumbnail
medium.com
0 Upvotes

r/iOSProgramming • • 3d ago

Discussion i dropped the mac app store rather than maintain a second version of my app

0 Upvotes

i build ios and mac apps solo, and recently dropped the mac app store route for one of my mac apps.

it installs developer-tool hooks and returns you to a terminal tab, so a sandboxed version would need a different setup and fewer capabilities.

i decided that wasn't worth maintaining a second version.

i'd be interested to hear from anyone who went direct-only and later wished they'd kept a store version.


r/iOSProgramming • • 3d ago

Question Do I need the Xcode 27.2 RC for iPhone Duo support, or will the App Store Xcode update?

11 Upvotes

I'm on macOS 27.0.1 with the App Store version of Xcode. If I install the macOS 27.2 RC, will Xcode ask me to update for the iPhone Duo stuff, or do I have to use the Xcode beta/RC from the developer site? I really don't want two Xcodes on my laptop, so I'm wondering if I should just wait. If I go from 27.0.1 to the 27.2 RC, will the App Store Xcode get an update, or is the RC the only option? Also, anyone know when the official 27.2 comes out?


r/iOSProgramming • • 3d ago

Question White space at top of Cordova app after latest iOS update?

Post image
1 Upvotes

After updating to the latest iOS version, my Cordova app suddenly shows a large white space at the top of the screen, above the actual app content.
Everything worked fine before the update. It looks like the WebView is no longer extending to the top of the screen.
Has anyone else experienced this? Could it be related to the status bar, safe area insets, or a recent iOS WebView change?
Any ideas on how to fix it?

(Not my app in the picture but it looks exactly like this)


r/iOSProgramming • • 3d ago

App Saturday AsoBeast: an open source App Store keyword rank tracker you can self-host

Post image
0 Upvotes

I ship my own iOS apps and wanted to see where they rank in App Store search every day without paying per keyword, so I built AsoBeast and open-sourced it.

You import your app by its App Store URL, add the phrases you care about, and it checks your position for each one daily, down to 200, in any of the 175 storefronts. The same search records every competitor on the page, so watching them costs nothing extra. It does Google Play too.

The iOS bits I use most:

  • A keyword field per localization. The US store reads ten localizations, Spanish (Mexico) among them, so that field is 100 more characters that count in the US. AsoBeast shows which tracked keywords none of your titles, subtitles and keyword fields cover.
  • It reads the caption text on App Store screenshots, yours and your competitors', so you see when someone rewrites theirs.
  • Popularity is an estimate, but if you connect your own Apple Ads API credentials, it uses Apple's numbers for the terms Apple publishes.

From my geography game, "Where Am I? GeoGuess Map Quiz": I'm #1 in the US for "geoguess map quiz" and outside the top 200 for "map", even though both are in the title.

Tech stack: NestJS, Prisma and PostgreSQL, BullMQ on Redis for the store queues, Next.js for the web app and tesseract.js for the screenshot captions. All TypeScript, shipped with Docker Compose. There's an MCP server too, so Claude or Cursor can answer "which keywords dropped this week?"

Development challenge: Apple's public search endpoints put up with roughly 20 requests a minute per IP. So the App Store worker runs one job at a time behind a 15-per-minute limiter, and one search per keyword and country records your app and all its competitors at once. Popularity was the other hard part. Apple only shows it inside Apple Ads, so without credentials it's estimated from the top results and autocomplete. Treat it as a rough guide.

AI disclosure: Claude Code wrote most of the code. I designed it and reviewed every change.

Self-hosting is free (AGPL-3.0) and has every feature. If you'd rather not run a server, the hosted version is $10 a month with a 7-day trial.

GitHub: https://github.com/AsoBeast/asobeast 

Hosted: https://asobeast.com

What do you still check by hand after a release?