Building Beadly: My First Mobile App

Published:Oct 10, 2025

Software Development

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:

Contentful image

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