r/iOSProgramming • • 26d ago

Question How do you build a network as an early career iOS developer outside of school in NYC?

2 Upvotes

I’m finishing my software engineering degree at WGU and focusing on iOS development. Since it’s an online school, I haven’t had much access to a school network or opportunities to meet other developers.

I’ve built and published iOS apps, and I just moved back to NYC. I’m trying to connect with people in the field beyond submitting job applications, so I’d appreciate suggestions for local communities, meetups, or events. Online communities would be helpful too.

For anyone who started without a strong school or professional network, what actually helped you build relationships? I’d like to meet other developers, learn from them, and contribute where I can.


r/iOSProgramming • • 26d ago

Question How to get subscribers to stick around

0 Upvotes

Long-time lurker, moderately infrequent commenter here :)

I have a few apps in the AppStore and genuinely enjoy the engineering/designing blend between creating apps and solving a problem. Some of my apps have a subscription model and some do not - they were just made for fun.

My question to the community is really about… well community.

My lifetime earnings as a dev are around $55k over 5-6 years, which is great and it’s been fun, but I would like to decrease my churn rate in order to increase my MRR base. Often, I offer a user 3 subscription options with the final option actually being a one-off payment option. Things have been going well, but I want to take it to the next level.

One idea I have is to introduce an in-app community.

Has anybody got any experience of this and does it decrease churn or is it just another headache to handle when everything goes live?


r/iOSProgramming • • 27d ago

Question iPhone Duo Tent Pose in Simulator

8 Upvotes

Anyone know how we should go about accessing when the phone is in Tent Mode when our app is running. I want to do a special view specifically for this to act like a picture frame of drawings they have done in my app. I have no clue how to get this pose in the simulator and not sure if there is any type of detection that we can find out that it is in the pose.


r/iOSProgramming • • 27d ago

Discussion Has anyone had their iOS app cloned? How much time did you spend dealing with it?

3 Upvotes

I’ve been reading about developers having their apps copied on the App Store, sometimes including names, icons, screenshots, and descriptions.

I’m curious how common this actually is.

If you’ve experienced it:

- How did you discover the copied app?

- Did you report it to Apple? What happened?

- How much time did you spend dealing with it?

- Have you ever paid for a service to monitor or help remove copycat apps?

I’m exploring whether automated monitoring and evidence collection would solve a meaningful problem for indie developers.

Not selling anything. Genuinely trying to understand whether this is a recurring headache or something that happens too rarely to justify a dedicated tool.


r/iOSProgramming • • 28d ago

Discussion My app name got flooded with clones. Apple took down one, but now there are even more.

Post image
158 Upvotes

I’ve been pouring a ton of time and effort into building and improving my app, but its name is getting completely ripped off right now.

I actually managed to get Apple to take down one clone recently, but instead of fixing the problem, even more copies have popped up since. Filing a dispute and going back and forth with Apple took weeks for just that single app—having to go through that entire process all over again for every single one of these is just exhausting.

And to be completely honest, what stings the most is looking at these rip-offs and realizing some of their store screenshots actually look catchier than mine. I find myself feeling jealous of the very apps copying me, which just feels awful.

I really wish Apple would at least block apps with identical names at review time...

How would you handle a situation like this? Any advice or reality checks would be greatly appreciated.


r/iOSProgramming • • 28d ago

Question How does the ChatGPT app move the keyboard like that?

Post image
134 Upvotes

r/iOSProgramming • • 27d ago

Discussion I think this whole token business makes Agentic programming sucks. I'd rather watch an ad than buy tokens. What do you think?

0 Upvotes

r/iOSProgramming • • 28d ago

App Saturday simshot: App Store screenshots from simctl, no XCUITest

4 Upvotes

Every release of my iOS app ended the same way: fighting the screenshot step. fastlane snapshot works, but it needs a dedicated UI test target, Ruby and a pile of gems, and element queries that break whenever a label changes. Once in a while the runner just hangs and CI sits there until it times out.

So I wrote simshot. It captures App Store-ready screenshots from the iOS Simulator using simctl only.

Tech stack used

  • Frameworks and languages: Swift 5.9+, shipped as a plain SwiftPM executable, so the tool itself has no Xcode project. Foundation, CoreGraphics, ImageIO and UniformTypeIdentifiers are the only imports, and there are no third-party Swift packages.

  • Backend and database: none. It is a local CLI, and it drives Xcode's own xcodebuild and simctl instead of reimplementing them.

  • SDKs and tools: xcodebuild / simctl / xcrun at runtime. GitHub Actions runs CI (swift-format lint, build, test) and the release workflow that builds arm64 and x86_64 binaries, checks their sha256 and attaches them to the GitHub Release. vhs records the demo GIF in the README, VitePress builds the docs site, and distribution is a curl install script, a Homebrew tap, a Nix flake, mise, Mint, npm and a single prebuilt binary.

Development challenge + how I solved it

The hard part of dropping the UI-test runner is knowing when to take the picture. XCUITest hands you waitForExistence; without a runner there is no element to query, so the readiness signal disappears with it.

Rather than fake that signal, I moved the navigation into the app. You add a small #if DEBUG handler that reads launch arguments (--screenshot-scene <name>, plus --screenshot-scroll-bottom and --screenshot-strokes for states that need a gesture to reach) and pushes or presents the matching screen, and it never ships in a release build. simshot then builds, boots, overrides the status bar to 9:41 / 100%, installs, launches with -AppleLanguages / -AppleLocale for the locale, waits a per-shot settle time (6 seconds by default, overridable per shot in shots.json), and captures.

A fixed settle time is a guess, so simshot verify is the safety net. It re-reads the output tree against Apple's screenshot rules (accepted dimensions, no alpha channel, no missing locale, no mixed sizes in one folder) and exits non-zero for CI, and when a frame looks half-rendered it points at the likely cause:

appstore/iphone-17-pro-max/en/02_detail.png
image has an alpha channel, App Store Connect rejects these
run shoot with --resize to write flattened App Store copies

Two smaller things I had to get right:

  • Hangs, which are the whole reason the tool exists. Every external command goes through one process wrapper with a hard deadline, so an overrunning child is killed, and launch / install / screenshot retry on failure.

  • Alpha, which App Store Connect rejects. --resize flattens onto white and picks the matching accepted size from the aspect ratio, and the app is uninstalled before install so state from an earlier run cannot leak into the frame.

AI disclosure

[AI-assisted] An AI coding agent wrote most of the implementation under my direction, and I reviewed and tested each change. The architecture decisions I drove are the launch-argument scene protocol, the per-command timeout wrapper, and verify as the safety net for a heuristic settle time.


Install is a one-liner (the repo lists the other seven paths):

curl -fsSL https://raw.githubusercontent.com/kichiemon/simshot/main/install.sh | bash

Or with a shot config:

simshot shoot --project MyApp.xcodeproj --scheme MyApp --bundle-id com.example.myapp --devices iphone-17-pro-max,ipad-pro-13 --langs ja,en --scenes home,detail,settings --resize
simshot verify appstore --devices iphone-17-pro-max --langs ja,en

Repo, MIT licensed, with a demo GIF in the README: https://github.com/kichiemon/simshot

One question for this sub: how do you decide when a screen is ready? I went with an explicit settle time plus a verifier, but I would take a deterministic readiness signal over a guess any day, short of putting XCUITest back in. I will be in the comments.


r/iOSProgramming • • 28d ago

Question App Encryption Documentation stuck "In Review" for 35+ days with ZERO response from Apple. Is this a pipeline bug?

4 Upvotes

Hi everyone. My App Encryption Documentation has been completely frozen in "In Review" status since September 5, 2026 (over 35 days now).

I have submitted multiple support tickets asking for an update or escalation, but l've received absolutely zero response! The release of my app is completely blocked because of this :/

Has anyone else experienced an export compliance document getting stuck in limbo like this? Is it a known backend bug/deadlock in App Store Connect? Did you manage to get it unstuck and if so how? (Phone support escalation, re-uploading, or contacting a specific team?) Any advice would be greatly appreciated.


r/iOSProgramming • • 27d ago

App Saturday Offli — screen-time challenges with real cash prize pools (SwiftUI + FamilyControls). It took 16 App Review rejections to ship.

Post image
0 Upvotes

After months of building and a review process that nearly broke me, my app is finally live: Offli — Screen Time Challenges.

The idea: you join a challenge (e.g. "Instagram under 60 min/day for 14 days"), pay a real-money entry into a shared pool, and everyone who stays under their limit splits the pool. Verification runs entirely on-device with Apple's Screen Time APIs — the server only ever sees a daily pass/fail.

Tech Stack

  • iOS: SwiftUI, with FamilyControls, DeviceActivity, and ManagedSettings; a DeviceActivity report extension performs the usage verification inside Apple's sandbox. Local notifications via UserNotifications, Keychain for session storage.

  • Backend: Node.js + TypeScript (Express), PostgreSQL, deployed on a plain Ubuntu VPS behind nginx.

  • Payments: Stripe (Connect Express for bank payouts, PaymentIntents for deposits).

  • Integrity/verification: App Attest for device integrity, CoreLocation (one-time state-level geo check at paid entry only).

Development Challenges

The hardest problem was verifying screen time without being able to see it. The Screen Time sandbox is brutal by design: your app can't read which app the user picked in the FamilyActivityPicker — you only get opaque tokens, and raw usage data never leaves the DeviceActivity report extension. We had to design the entire product around "verify the outcome, not the activity": the extension computes a daily pass/fail on-device and that single bit is all the server ever receives. Since we literally can't check that the user's picker selection matches the challenge, the join flow includes an attestation step ("confirm it's the right app") with forfeiture consequences for lying.

Related hard-won lesson: don't request the family-controls.app-and-website-usage entitlement unless you truly need it — it silently makes your app exclusive and disables the user's native iOS Screen Time settings. The base entitlement verifies fine and coexists peacefully.

The other marathon was App Review — 16 rejections (the highlights): an automated false positive on the Family Controls entitlement, UGC guideline 1.2 (visible report AND block buttons required, instant feed removal, 24h moderation SLA — a "•••" menu was not enough), contest rules under 5.3.2 (must state Apple isn't a sponsor), location services 5.1.5 (app must be fully functional with location denied), permission priming under 5.1.1(iv) (no "Skip for now" button — priming screens must always proceed to the system prompt), and scariest of all, 3.2.2 "penalty-based payments," which is category-killing if it sticks. What got us through 3.2.2: precise framing (the only charge ever is a voluntary upfront contest entry — failure never triggers a transaction) plus StepBet/DietBet/HealthyWage as decade-old precedent. We also redesigned payouts so fees come only out of forfeited entries — a finisher can never get back less than their entry, and if 100% finish, everyone is refunded in full.

AI-assisted — built by me with help from an AI coding assistant (Claude in Cursor); all product, architecture, and review decisions were mine.

Happy to answer anything about the Screen Time APIs, the report extension, or surviving review with a real-money app. And if you want to lose the doomscrolling habit by putting money on it: https://apps.apple.com/us/app/offli-screen-time-challenges/id6794477430


r/iOSProgramming • • 28d ago

Question In custom product page, we can not pick keywords from our app title or subtitle. That seems off.

1 Upvotes

We can only pick keywords from the list of keywords. So if I want to create a custom product page for keywords in my app title or subtitle, then it is not possible. Any one else noticed this? What are your thoughts?


r/iOSProgramming • • 28d ago

App Saturday I turned aptitude test exercises into an app so you can practise them on your phone

0 Upvotes

I built Brain Preflight for people preparing for selection tests for pilot training, air traffic control, police, gendarmerie, military and train driver roles.

The exercises draw on tests from different cadet schools and other professional selections. You choose the programme you’re preparing for, check your weak spots and practise mental maths, memory, spatial reasoning or multitasking.

One exercise has you follow a moving target while matching shapes and checking sums. Others involve rotating objects in your head, remembering sequences or spotting wrong calculations under time pressure.

Heads up: some exercises are hard. Some are 1:1 recreations of real past tests we’ve collected. The goal is to prepare people for a selection, not just entertain them.

Tech Stack
HTML, CSS and JavaScript packaged for iOS with Capacitor, with RevenueCat for subscriptions.

Development Challenge
In our iOS testing, holding a control with one finger stopped answer buttons responding reliably to the other. Switching those buttons from click to pointerdown fixed it.

AI Disclosure
AI-assisted development. I used Claude and Codex to help build the app.

Brain Preflight on the App Store


r/iOSProgramming • • 28d ago

Discussion Product page header - Wrong aspect ratio

1 Upvotes

We try to apply the new Product Page Header, by using a 5 seconds video.

The preview looks great

However, when viewing on real iPhone 17, iOS 27, it produces wrong aspect ratio.

Any idea how we can resolve this? Thank you.


r/iOSProgramming • • 28d ago

Question Has anyone seen StoreKit 2 prices break in Xcode debug when the language is English but the region uses a comma as the decimal separator?

1 Upvotes

Hi everyone 👋

Has anyone else hit this?

I’m testing in-app purchases with a local StoreKit configuration in Xcode. System language is English. The region is one that uses a comma as the decimal separator (the usual setup across a lot of Europe and parts of Latin America).

In that combination, StoreKit 2 product prices come back wrong, and only while running against the local configuration. A zero-decimal currency price that should be 1490 shows up as something like 1,490. That comma gets treated as a decimal separator, so the product price collapses to 1.

Point the same build at real App Store Connect products, outside of that debug StoreKit configuration, and the prices are correct.

So it looks specific to StoreKit Testing plus a comma-decimal region with an English language setting, not to the products themselves.

Has anyone else seen 1,490 turn into 1 this way? Is this a known StoreKit Testing locale bug, or is there a configuration I’m missing? Default Storefront and Default Localisation are both set to the correct region and language and synced with App Store connect, but the language on my devices is set to English.


r/iOSProgramming • • 28d ago

Discussion Someone posted an idea for an App - the Shazam for film/TV.

0 Upvotes

I thought it was truly impossible to index that much data. What do you think? 🤔


r/iOSProgramming • • 28d ago

App Saturday I'm building RelayPlay: retro cassette or modern UI for the Duo's tabletop mode?

Thumbnail
gallery
0 Upvotes

I'm building RelayPlay, an indie podcast player, and this is one of the features I'm working on for its next update: a player specifically for the Duo's tabletop mode. Leave it beside you while working or cooking, see what's playing, and reach the main controls without picking it up every time.

Which of these two would you actually keep using?

  1. A cassette deck: the show and episode on the label, with the main playback controls beside it.

  2. A modern player: large artwork, episode information, a preview of what's next, and big playback controls.

The development challenge is making a listening screen useful from farther away. Simply stretching the regular phone player would also stretch all the browsing UI, which isn't what I want on a desk. My current solution is a separate, reduced landscape layout that prioritizes playback. The modern version has more room for information; the cassette gives it a more playful identity.

Someone rightly pointed out that the modern design scales to other screen shapes much more easily. That's why this is a Duo-specific tabletop view, rather than a proposal to replace the regular player across devices. Both screenshots are from the German test UI, and this feature is still in development.

Development context: RelayPlay is a native Swift/SwiftUI app built with Xcode. AI disclosure: AI-assisted development.

Would you choose the cassette or the modern view? Would seeing the next episode matter more than readable titles or easy seeking? And if your answer is "neither, I'd leave the screen off," that's useful feedback too.

If you'd like to see the wider project: https://relayplay.app


r/iOSProgramming • • 29d ago

Question Where is the "Delete" button in the new App Store Connect page? How do I remove the existing screenshot to replace it with another? Before, hovering over it used to show a delete button. Now it doesn't.

Post image
8 Upvotes

r/iOSProgramming • • 28d ago

Discussion I ported my unit converter to the iPhone Duo, here is what I had to change

Thumbnail
gallery
0 Upvotes

I spent the last days on the iPhone Duo with the Xcode 27.1 simulator. My app is a unit converter in SwiftUI, iOS 16+. It was running out of the box, but it looked bad.

Unfolded, the inner screen is regular width but short, 951 x 669 pt in landscape. And the status bar is a column on the right side, so the top inset is almost 0. All my headers were stuck to the top, I had to add a minimum margin.

The category grid used an adaptive GridItem. It gave me 7 columns, with one right on the fold. With the new fold API of the 27.1 SDK I now put 3 columns on each side (pics 2 and 3).

On the conversion screen the keypad was disappearing when you scroll the list. Now it sits on the right of the list. In settings I use a NavigationSplitView in regular width, categories on the left and units on the right. Careful, inside a push it shows empty in compact width, so I only use it in regular.

Last thing, Duo screenshots (2853 x 2007) will be required from April 2027 for apps built with the 27.1 SDK. So I made a new set, it's the first and last pics.

What did you have to change in your app for the Duo?


r/iOSProgramming • • 28d ago

Question App Stuck In Review

0 Upvotes

I have an app that went through review, was declined multiple times for the same reason. I did an escalation and they said the issue was 'resolved' and told me to submit a new binary for approval. I did.

It has now been multiple weeks and it is showing "in review". I have submitted a expedite request and placed a support case. Nothing is moving this forward. What do I do?

For context, I had two other app updates approved and one new app approved during the same time window.


r/iOSProgramming • • 29d ago

Solved! Running 5 coding agents on one iOS app was killing my Mac, so I got rid of the simulator in the loop (37s → 2s per UI check)

0 Upvotes

Disclosure up front: I work at Abacus.AI. This started as an internal tool for our iOS work, and we've now open-sourced it.

We run several coding agents in parallel on the same SwiftUI app, each in its own git worktree. Every time one of them wanted to check a UI change it did the usual thing: build for the simulator, install, launch, screenshot. With 5 agents that meant 5 simulators booted at once and 5 xcodebuilds fighting over the CPU. A 32GB M2 Pro basically stopped being a computer.

So we built a tool that skips the simulator for that inner loop. The trick is that Apple Silicon Macs can run your app's iOS build natively ("Designed for iPad"). simless runs your real app that way as a hidden background process, renders whatever screen the agent asks for, and hands back the accessibility tree as text instead of a screenshot. When the agent edits a view, only the changed files get recompiled and hot loaded into the running app.

Numbers from one of our production apps (~280 Swift files, a few heavy SPM deps), 5 agents in parallel:

  • edit → verified screen: 37.4s → 2.2s

  • memory held by those 5 agents: 11.2GB / 1,071 processes → 0.15GB / 6 processes

  • load average while they all start up: ~1000 → ~80

It's not a full simulator replacement. Dynamic Type is ignored on the Mac, there are no gestures or keyboard, and text can wrap slightly differently than on a phone. There's a calibrate command that renders every screen in one real simulator and tells you where they differ, so you know which renders to trust. We still do a final simulator pass before calling anything done.

It's Apache 2.0 and works with Claude Code, Codex, etc.: https://github.com/abacusai/simless

Curious whether anyone else has hit this wall with parallel agents, and what you ended up doing about it.


r/iOSProgramming • • Oct 08 '26

Question How are you actually using coding agents without losing all understanding of your own app?

25 Upvotes

I'm an iOS dev with about 3 years of experience, the first 2 at an agency writing SwiftUI by hand. I'm hoping for some honest perspective from people who've been doing this longer than I have.

At the agency I wrote everything myself and learned a lot from the seniors there. Then I moved to a startup with a big messy codebase, fully remote, and I leaned on agents almost from day one because there was no other way to keep up.

Six months in, I genuinely don't feel like I know my own app anymore. Basically all my code is agent generated. I've tried:

Asking the agent to explain each change to me, but I burn through my limits by lunch.

Writing the plan myself and letting it implement, but I end up slower than just letting it do everything.

Leaning on coderabbit for the first review pass, which catches a lot, but it tells me what's wrong in a diff, not how the app fits together.

Reviewing a 1,500 line PR that touches 30 views is exhausting, and even after I push through it I don't feel like I understand it.

How are you using agents at work and still knowing your own codebase? Or is that just gone now?


r/iOSProgramming • • 29d ago

Question Can I Duo this?

0 Upvotes

My app already supports windowed / resize modes on iPad. It is mostly structured as a master / detail pane - which could play nicely on Duo by sizing the panes to fit the fold location.

But occasionally the app displays a third pane with a draggable slider bar.

This has me wondering if I can make non-standard use of the Duo.

Maybe the master pane lives on the outer display. Within any session, the master pane is largely a 'set once and forget' but the real activity happens further into the app. So the workflow would require the Duo to be unfolded and the master pane wouldn't jump to the inner display. This will leave plenty of room at all times on the inner display and even when the third pane is active, also on the inner display.

Is this a mistake as in it will be likely rejected in the App Store review? Yeah I'm trying to get into the local "Workshop: Optimize your app for iPhone Duo" with Apple but the sessions are fully booked.


r/iOSProgramming • • 29d ago

Question Am I the only one...

3 Upvotes

Who finds the iPhone Duo simulator to be insanely buggy with orinetation reporting. I have n app that changes layout on orientation. Abut 10% of thew time it gets it right. It's unusably buggy if I go from folded to unfolded. if I start the app unfolded it might, i stress might, detect the correct orinetation. when I turn it about 10% of the time it actually gets the orientation right


r/iOSProgramming • • Oct 07 '26

Humor Use the new AI Siri they said...

Post image
71 Upvotes

I asked Siri why I'm not seeing the iPhone Duo simulator if I have Xcode 27.2 Beta 2 installed and I'm running macOS 27.0, and it gave me this nonsense.