The Vision
I've always wanted to build something meaningful that can easily be accessed by those I personally know. At the same time, I wanted to integrate my faith and my experience with technology seamlessly. This also comes after reading about St. Carlo Acutis and wondering how I can use my strengths for God.
Looking at existing prayer apps, I found they were quite static: lists, counters, or simple progress trackers. I wanted to create something a bit more alive and something that was more tactile - 3D rosary experience that you could touch, see move, and feel through haptics as you progress through the prayers.
That idea became Beadly: Rosary App, my first ever mobile app, now live on both stores:

The 3D Challenge: From Physics to Frame Calculations
At first, I built a physics-based motion system: tilt your phone, and the beads would sway in response - gravity, momentum, bead collisions, the works. It sounded beautiful on paper. But when I ran it on a <$100 Android test device, the app lagged, frames dropped, and crashes loomed.
That’s when I realized: realism isn’t worth it if nobody can use it.
So I re-engineered the motion system using frame-by-frame position calculations instead of physics. Essentially, I faked the realism with math.
That pivot taught me my first major mobile dev lesson: sometimes simplicity outperforms sophistication.
Benefits of this approach:
Stable 60fps animations across devices
Lower memory usage
Predictable performance
Full creative control over bead motion
The Gyroscope Nightmare
Then came the gyroscope camera controls.
Mapping real-world phone orientation into a smooth 3D camera system sounds simple, but it's a deep rabbit hole - quaternions, Euler angles, and handling "what happens if someone flips their phone upside down". At some point, I found myself reading and watching videos related to gimbal lock.
After countless test sessions (and some vertigo), I finally found a balance:
Used quaternion math for accurate rotation
Added thresholds to prevent camera flips
Tuned sensitivity for a natural feel
Now, tilting your phone feels intuitive - the camera moves gracefully, never disorienting.
Memory Management Across Platforms
One of the biggest challenges was making the app perform well on both iOS and Android - especially on older or low-RAM devices.
I learned quickly that memory constraints define your app's limits.
Optimizations I implemented:
Paused animations when the app is backgrounded
Lazy-loaded assets only when they're needed
Configurable background allowing users to simplify the 3D scene
This made a massive difference in keeping the app responsive and crash-free.
The App Store Gauntlet
Building the app was one thing. Getting it approved was another.
Apple
Apple's process was surprisingly smooth. They flagged a few accessibility issues and UI adjustments, but overall, the feedback was straightforward and helpful.
Google Play
Google Play, however, hit me with their 12-device test requirement - meaning the app had to be downloaded and used across 12 devices for 14 continuous days before the app can be promoted to Production.
I actually did not personally know 12 different folks with Androids, so I used an external service for help. It was quite seamless and it exposed UI issues that I'd completely missed since I mainly tested on my personal phone.
Overall, each rejection turned into an opportunity to make Beadly better. By the time both stores approved it, I had a new appreciation for just how much polish it takes to create a stable, cross-platform app.
What I Learned (as a First-Time Mobile Developer)
Beadly wasn't just a coding challenge - it was an education in patience, debugging, and iteration. Here are my biggest takeaways:
Start simple, optimize later - a full physics engine was overkill
Test early and wide - the 12 device rule ended up saving me
Memory matters - even small textures can eat performance fast
App store rejections = feedback - treat them like QA reports
Faith + tech can coexist - you can build something for your faith that's also beautifully engineered
I aim to continuously improve the app as users request more features and as I learn more about mobile design, animation, and accessibility.
Learn more about Beadly here: https://www.neilopena.com/apps/beadly