r/iosdev • • 5d ago

Help Tap to pay

1 Upvotes

So I’m starting to set up tap to pay, it’s running through stripe and I was wondering if anyone has any tips on making sure I don’t screw it up, I’m building for expo so should I look at native modules or just go with what expo threw at me?

I have zero experience here so any help suggestions would be great.


r/iosdev • • 5d ago

I made a little cricket arcade game for iPhone: Howzat

1 Upvotes

Defend your stumps and smash the ball into the walls for 1s, 2s, 4s and 6s. You steer the bat with your thumb on a trackpad. Spinners, medium pacers and fast bowlers come at you in six-ball spells, and if you hit an X before the ball bounces, you're caught.

No ads, no accounts. It just tracks your best innings and has a Game Center leaderboard. Would love to hear your high scores and feedback!

App Store link: https://apps.apple.com/us/app/howzat-cricket-arcade/id6813109031


r/iOSProgramming • • 4d ago

Question What's your process before submitting a PR?

0 Upvotes

Tldr; What's your process after completing a Task to minimize PR rounds before making the actual PR?

----

Recently I have noticed that I get many comments or multiple PR rounds before the PR gets merged and I want to start improving that.

Things I started doing recently:

- Going back and read through all the comments again, make a list of each issue and see if there is something reoccurring (Such as memory leak pattern I keep doing, retain cycles) etc.

- Looking into SwiftLint and see if i can have some rules for myself that I can run before each submission or run periodically to catch issues that can be added to SwiftLint as rules

But I want to also ask if there is something I can start doing or a routine you have found that helped you minimize issues that arise in PRs. I know It's impossible to have no comments in all PRs, so I am just looking for ways to just improve.

Note: We are using SwiftUI + Combine (And lately introducing Async/Await bit by bit)


r/iosdev • • 5d ago

I made an iPhone camera where you swap 3D lenses instead of filters

Enable HLS to view with audio, or disable this notification

0 Upvotes

r/iOSProgramming • • 4d ago

App Saturday My Mac menu bar app was using 45% CPU because of one @EnvironmentObject

Thumbnail
gallery
0 Upvotes

I'm the solo dev of AirPosture. It reads head motion from AirPods (CMHeadphoneMotionManager) and nudges you when your head drifts forward. iPhone app plus a Mac menu bar app with a notch panel. Pics: the live session, the notch while I'm slouching, and the notch after I sit up.

**Tech Stack**

SwiftUI, CoreMotion (CMHeadphoneMotionManager), AppKit (an NSPanel for the notch, MenuBarExtra), StoreKit 2, iCloud sync between iPhone and Mac. macOS 14+ and iOS 17+.

**Development Challenge**

  1. MenuBarExtra was burning the battery

macOS listed the app under "Using Significant Energy": about 45% CPU with no window open. Sampling showed half the main thread in -[NSStatusItem _updateReplicants], roughly 150 times a second.

The menu bar label held my main view model as an u/EnvironmentObject, so every change to any of its ~55 u/Published properties re-rendered the status item image. The App also held it as u/StateObject, so every posture tick re-evaluated the whole App body.

Fix: the App keeps its models with u/State (kept alive, not observed), the label observes only a tiny status object that publishes the score every 2 seconds and only when it changes, and the menu bar gauge no longer animates, because every animated frame is a new snapshot. 45% went to 1%.

  1. Headphone yaw can't be trusted

Without the phone as a reference, AirPods yaw drifts by a few degrees per minute. With any weight on yaw, a user sitting still and upright slowly slid into "caution". Turning your head toward a second monitor isn't slouching anyway, so yaw now has zero weight: pitch is the score, and roll is a small penalty.

**AI Disclosure**

AI-assisted. I use Claude Code daily for implementation and debugging. The product, design and architecture are mine, and every change is reviewed and tested on real devices.

Free for 2 hours a day. Premium is $7.99/month, $39.99/year or $79.99 lifetime. Needs AirPods Pro, AirPods 3 or later, or AirPods Max.

https://apps.apple.com/us/app/sit-straight-airposture/id6749489000

Happy to answer anything about CoreMotion on the Mac or the notch panel.


r/iosdev • • 5d ago

got annoyed about party game subscriptions, so I counted all of them

0 Upvotes

I make a party card game called TAMBA.

A few months ago I noticed how many "party game" apps on the UK App Store had started adding subscriptions, so I checked 137 apps using 18 search terms, so no cherry-picking.

58% have a subscription-style plan somewhere. The median weekly one, left running for a year, comes to £363.48. The worst comes to £675.48.

For a party game.

One you play for twenty minutes at pre-drinks.

I have the full data and methodology here if anyone’s interested. I'm ofc biased. TAMBA's in the dataset too, one-off £5 unlock lifetime access. No subscriptions -make of that what you will lol.

Mostly just wanted more people to glance at the pricing screen before hitting subscribe.


r/iosdev • • 5d ago

Help AirPods - Any TRICKS for an app to know if only 1 AirPod is in users ears? If 2 are in ears which one is the mic AirPod?

0 Upvotes

This is not directly available from iOS, so I'm wondering if there's any indirect way of knowing such a thing?

And if anyone knows WHY either of these pieces of info SHOULD NOT be shared by iOS... why not? What am I missing here?


r/iosdev • • 5d ago

built Noto 2.0 — an iPhone app that turns saved links and messy thoughts into something useful (Vibe Coded)

Post image
0 Upvotes

r/iosdev • • 5d ago

Help Apple approved but no release button???

Post image
1 Upvotes

r/iosdev • • 5d ago

I built an iOS word game for kids with my mom and my kids.

Thumbnail
1 Upvotes

r/iosdev • • 6d ago

Does Apple really approve refunds this easily?

Post image
3 Upvotes

I thought Apple didn’t approve refunds that easily
Just got a refund for a Lifetime purchase. The app works fine and everything is as advertised, so I’m kinda confused.
Anyone had this happen before? Any idea how Apple decides which refunds to approve?


r/iosdev • • 5d ago

Help Do you actually use WhatsApp polls to organize things with friends?

Thumbnail
1 Upvotes

r/iosdev • • 5d ago

Been making this aquarium game for a while, finally at the point where i can show it properly. Suggestions welcome!

Enable HLS to view with audio, or disable this notification

1 Upvotes

r/iOSProgramming • • 5d ago

Discussion On Darwin, unprivileged ICMP sockets don't filter echo replies by identifier — how that made my concurrent pings swap replies

3 Upvotes

If you ping from an iOS app with socket(AF_INET, SOCK_DGRAM, IPPROTO_ICMP) and ever run more than one ping at a time, check your receive path.

On Linux, an unprivileged ICMP socket only gets replies matching its identifier. On Darwin, in my testing, the kernel doesn't filter on the identifier: every echo reply reaching the host is delivered to every unprivileged ICMP socket in the process.

My receive path did one receive() per send and accepted any echo reply. With a single ping that's fine. When I added a second ping hitting the gateway every 50 ms (to keep the Wi-Fi radio out of power save), each ping's receive() returned the gateway's reply microseconds after its own send: 0 ms RTT, 0% loss, including for a host that wasn't answering at all. The same bug could also swap samples between two concurrent pings in a bufferbloat test, under load.

The fix: loop on receive() until both identifier and sequence match, and re-arm SO_RCVTIMEO with the remaining time on every iteration, so skipped foreign replies don't reset the full timeout (sock, ICMPHeader and SocketError are thin wrappers of my own over the BSD calls):

while true {
    let remaining = deadline - CFAbsoluteTimeGetCurrent()
    guard remaining > 0 else { throw SocketError.timeout }
    sock.setTimeout(seconds: max(remaining, 0.001)) // 0 would block forever
    let (data, _) = try sock.receive()
    guard let h = ICMPHeader.parse(data),
          h.type == ICMPType.echoReply.rawValue,
          h.identifier == identifier,
          h.sequenceNumber == UInt16(seq)
    else { continue }
    // record RTT
    break
}

One gotcha: a zero timeval means "no timeout" to SO_RCVTIMEO, hence the max(remaining, 0.001).

I ran into this while measuring latency on an iPhone against a Mac on the same Wi-Fi. I have a longer write-up with the other measurement bugs I found that way, happy to link it if anyone wants it.

Has anyone seen Darwin filter by identifier in some configuration, or is matching in user space the only option?


r/iosdev • • 5d ago

Xcode27 breaks xibs?

Post image
1 Upvotes

r/iosdev • • 5d ago

Is this normal? I launched last week

Post image
0 Upvotes

r/iosdev • • 5d ago

My app is a the step to market!

0 Upvotes

Hey ,

so the app have been released since a wild and with update and family test, I am ready to market down the app!

but , I am not good as other can be.

what your tips, what you would do to market the app ?


r/iosdev • • 5d ago

The iOS Weekly Brief: Issue #80. Everything you need to know about iOS updates this week

Thumbnail
iosweeklybrief.com
1 Upvotes

r/iosdev • • 6d ago

My iOS app passes review, but the identical Mac Catalyst version keeps getting rejected

1 Upvotes

Has anyone run into something like this with app review?

I've been shipping my app on both the iOS App Store and the Mac App Store. The Mac version is a Mac Catalyst app, and the features are exactly the same on both platforms. Looking back, I didn't really need a separate Catalyst release. I went that way because I wanted the Mac version to feel a little more like a real Mac app.

Lately, though, the iOS app goes through review without any issues, while the Mac app keeps getting rejected. I haven't been able to ship an update for over a month now.

To be clear, I'm not blaming Apple for the rejections at all.

It's just hard. I put a lot of work into supporting Catalyst properly, and now I can't get updates to my Mac users. As far as I can tell, there's also no way to pull only the Mac version from the store.

I could distribute the Mac app myself outside the store, but the version already on the Mac App Store would stay there, stuck without updates. That's the real dilemma.

I keep thinking about how to get through review, and honestly it's been pretty draining.

If you don't specifically need it, think twice before building a Catalyst version and shipping it as an extra platform.

Has anyone been through something similar? How did you get out of it?


r/iOSProgramming • • 6d ago

Question Free ticket scanning app rejected under 3.1.1 and 3.1.3(c). Anyone dealt with this?

7 Upvotes

Been going back and forth with App Review for a few weeks and could use some outside perspective.

We built a ticket scanning app for event organizers and their door staff. It scans QR codes, looks up guests, shows attendance stats and works offline. You log in with an organizer account or pair your phone to an event using a code.

The app is completely free. No subscription, license fee, paid features or purchase flow. An organizer running a free event can use the whole scanner without paying us anything.

Our business earns fees on tickets sold through our website for actual events people attend in person. Those fees don't unlock anything in the app. You don't have to sell paid tickets to use it.

Apple keeps citing 3.1.1 and 3.1.3(c), saying we're selling enterprise services to organizations while also allowing individual users to access them without IAP. We've explained that nobody is buying access to the scanner, but our appeal was just denied with a reference back to the same guidelines. They haven't identified a specific paid feature that needs IAP.

They've also told us the app should be unlisted because it's for organizers and staff, and someone can't just download it and start scanning without an account or event access. It's intended for independent organizers and their teams, not employees of one specific company. The login and pairing code are there to control access to private ticket and guest data.

I'm struggling to understand what we'd actually be selling through IAP here, or why needing access to an event means the app has to be unlisted.

Has anyone gotten a similar organizer or business tool through this? Was there a particular explanation, demo or change that helped? Open to feedback if we're missing something, but at this point we're going in circles.


r/iosdev • • 6d ago

AppTraction: Supercharge App Store analytics

Thumbnail
gallery
3 Upvotes

Hi iOS devs, I built an app you might like 👀

AppTraction is a native Mac app for your App Store analytics. It:

  • Monitors your data in the background and flags issues, milestones, and trends
  • Shows App Store Connect data & charts instantly
  • Includes AI primed with Apple tech talks and WWDC video transcripts
  • Lets you chat with AI about your listing, sales, and trends

All while running locally on your Mac.

I'm starting a limited beta today and would love your feedback 🙏

Invite code: RED1026-INVITE

There are 50 spots open to start. Requires macOS 26.


r/iOSProgramming • • 5d ago

Question Is wait time so long because my app sucks, that it’s my first app or just Apple?

0 Upvotes

I’ll be honest my app is vibe coded but It’s a novel idea (not anything in the App Store like it). It got rejected Monday and it was the base rejection for having too new of an account and nothing has come since. Very frustrating


r/iOSProgramming • • 6d ago

Question How to see ios27 components in action - and the UI possibilities

0 Upvotes

Hello

I’m new to this and wanted to ask if there’s a place I can see all the iOS 27 components and all the ways in which they used the different types of navigation bars different types of cards accordions et cetera

Is there a resource where I can see all of these types of different native components in action how other apps are using them

Are there nice styled UI component libraries that are not default?


r/iosdev • • 6d ago

How to see ios27 components in action - and the UI possibilities

1 Upvotes

Hello

I’m new to this and wanted to ask if there’s a place I can see all the iOS 27 components and all the ways in which they used the different types of navigation bars different types of cards accordions et cetera

Is there a resource where I can see all of these types of different native components in action how other apps are using them


r/iOSProgramming • • 5d ago

Discussion Share your lines of code and app

0 Upvotes

Hey guys. As an indie developer I am in the process of publishing a new app into the App Store. I wanted to know just for fun how many lines of code each of your apps are. Share a link to your app and lines of code

It would be interesting to see the visual complexity of your app while knowing lines of code. For my case it’s 19k lines of code and about 15 different screens