I love solving problems, even when the problem is really just an inconvenience masquerading as something prohibitive.
One thing I do each morning is read the Daily Office selections from the Book of Common Prayer, a collection of prayers and readings from the Anglican church, written in the 1500’s (if you’re already heading for ‘Close Tab’—hang on, this isn’t just about the Bible). There’s a number of ways for me to accomplish this, but what I really needed was:
- Accessibility for my mobile device for reading during my morning commute on public transit
- Quick access to the audio version, as this is best for mornings when I’m driving
- An interface that doesn’t distract me by being clunky or offering ads
In exploring other options, nothing quite captured what I was looking for. The absolutely fantastic YouVersion Bible app doesn’t offer these readings on the same schedule (which is really important to me—people across the world read the same Scriptures on the same day). There were also some other options in the App Store, but they were generally poorly designed or overly complicated.
No matter what you believe or do for yourself each day to quiet yourself internally, you’re not going to succeed at being consistent if your methods aggravate you. I needed to remove my frustrations.
So, I built this application for myself. I’m making it available publicly on the chance that this helps someone else in the world.
What’s it do?
It’s really, really basic at this point— intentionally. It’s designed to be fast and clean.
When you open the app, it goes straight to a selection of today’s readings. Simply tap the one you want and a window pops up, displaying only that text. There’s also a simple pause/play button for the audio.
How’s it built?
Not only did I use this opportunity to solve a problem for myself, but I also used a few tools I might not have otherwise to gain some experience.
Instead of building in pure Objective C, I used Appcelerator Titanium. Why? I wanted to see if its reputation as a faster way to build an application held water. I figured you could hardly get more simple than this, so it’d be a good test in start-to-finish development. Plus, I wanted to see how maintainable one code base compiling to two platforms (iOS and Android) could be. On the whole, I’m pleased!
I’m using the ESV Bible Web Service API to pull the scriptures and display them on click. Why? Well, try looking for a good API with Scripture and let me know if you find anything better! Seriously, ESV provides access to these Daily Office Readings via their API, and I could easily use only that to power the app.
Lastly, since their feed is only available in XML (womp womp), I wrote a script (using some open source resources as well) to translate the feed to JSON. Why? Two reasons: I’d rather build a script and use JSON in the app because it’s easier and I might as well have the API in the app point to my servers instead of a third-party. This would allow me to adapt without pushing an update to the app itself.
If I don’t use it, why does it matter?
I simply want to share how rewarding it is to solve your own problem using your own skill, then share it with others freely. It’s a different sensation than only producing something for others.
I encourage you take a break from transforming everything into a product all of the time, and choose to freely offer the fruits of some of your labor (if you don’t already). Chances are, you benefit already from someone else choosing to do exactly that, especially in an open source community.