Senior Engineer @MySwimPro · data analyst → game dev → mobile, wearable, cloud, AI agents · breaking down system design across the stack · 15+ yrs 🚢 apps
Fixes: pause the animation when it's off-screen or the app backgrounds, drop to a lower frame rate for ambient effects (you don't need 120fps for a slow drift), and stop the render loop entirely when nothing's animating.
Your app has a free trial. When do you ask for payment details?
A) Up front — card required to start the trial
B) Never during trial — let them in free, ask at the end
One converts way better than people expect. Which do you ship?
But B wins in one case: low-trust or impulse categories, where any friction at the door kills you before they feel the value. Match it to how much the user trusts you before the trial.
You add a beautiful blur behind a sheet — frosted glass, the works. Looks stunning.
Then users say the app feels "laggy."
What's the most likely culprit?
Fixes: use the system materials (UIBlurEffect / .ultraThinMaterial) instead of rolling your own — they're GPU-optimized. Blur a static snapshot instead of a live view when you can. And never stack blur over a fast-scrolling list.
User in me says lifetime, always. Builder in me says it depends on the app. If there's ongoing value — sync, content, server costs — subscription's the only way it survives. If it's a static one-off tool, lifetime, nobody wants to rent that. The rage happens when apps charge subscriptions for something that doesn't actually keep giving
@mecid Good one. The trap with that exact age example: plurals. "I'm 1 years old" 🙃 — interpolation won't fix grammar. You need proper pluralization rules (stringsdict, or String Catalogs now) so the right form gets picked per count and per language