Sacred Grove

Designing an iOS app for reading scripture and wisdom literature, comparing translations, and listening to related audio. Work in progress.

Sacred Grove

Sacred Grove

Designing an iOS app for reading scripture and wisdom literature, comparing translations, and listening to related audio. Work in progress.

Designing a reader for different kinds of texts

Sacred Grove is an independent iOS app I’m designing and building in SwiftUI. I want readers to move between a text, its translations, and related art or audio without losing their place.

The project is still in development. These screens show the working build and design direction. My work covers the content structure, interaction design, visual system, and implementation, with AI assistance for planning and code.

Plate I — Introducing each book.
1 Chronicles book intro on parchment with a gold roman numeral XIII drop cap, the subtitle 'Plate XIII · History · Priestly,' an opening epigraph 'Adam, Sheth, Enosh,' a brief liturgical-lens summary, and an Enter the Book · Chapter I action
The book introduction gives readers a title, a short passage, and a clear action to begin reading. The same layout carries across the sixty-six books of the Bible.

Defining the product

I began by defining what the reader should support: reading, prayer, audio, comparison, and saving passages.

I used conversations with an AI assistant to develop the product brief, content model, and design principles. Keeping those decisions in documents gave me something to refer back to as I built the app.

Plate II — Discover and continue reading.
Discover surface with a Christianity hero card showing the Sermon on the Mount, a small ideas-and-echoes-across-traditions byline, and a Continue Reading card pointing to Malachi Chapter 3
Discover combines featured material with a Continue Reading card, giving readers a way to browse or return to their last passage.

Organizing the texts

The initial library uses public-domain translations.

The build began with four English Bible translations: KJV, ASV, BBE, and YLT. I then added the World English Bible and worked on bringing Meditations and the Dhammapada into a shared content structure. The challenge is to support texts with different divisions while keeping reading, search, and selection consistent.

Plate III — Translations as tabs, books as a list.
Old Testament book index with five translation tabs (KJV, ASV, BBE, YLT, WEB) at the top and an editorial book list — Genesis, Exodus, Leviticus, Numbers, Deuteronomy, Joshua, Judges, Ruth, 1 Samuel, 2 Samuel — each row showing chapter counts in the gutter
Translation tabs sit above the book list. Readers can choose a version while staying in the same section of the library. Chapter counts help show the length of each book.

I used AI assistance to write import scripts and set up search. I chose the sources and the information to retain about each edition so that the app could identify the text a reader was using.

Moving beyond verse-based interactions

The first implementation assumed that every selection was a Bible verse. That became a limitation as I expanded the library.

Reviewing the code exposed the same assumption in selection, sharing, comparison, and audio. A verse-based reference works for the Bible, but it cannot describe every passage in the other texts I wanted to include.

The resulting direction is a shared passage selection that identifies the work and the selected portion of text. That gives copying, sharing, annotation, and comparison a common reference. It is a structural change that needs to carry through each of those interactions.

Plate IV — Connecting text and artwork.
Volume detail showing The Creation of Adam by Michelangelo (c. 1512) over Genesis 1:27, with an Enter the Volume action and a Collection atlas peer card flagged Work first
The volume screen pairs Genesis with Michelangelo’s Creation of Adam. It explores how related artwork can provide context alongside the route into the text.

Keeping navigation consistent

I wanted each text to have a distinct visual treatment while keeping the controls familiar.

Three principles guide the interface:

  1. Keep navigation, headers, spacing, and motion consistent across texts.
  2. Use imagery, background tones, and accents to distinguish the material being read.
  3. Make reading, listening, comparison, and saving easy to find.

I maintain color, typography, spacing, motion, and component styles in DesignSystem.swift. Working in SwiftUI lets me evaluate those choices in the app as I change them.

Plate V — Pray, across traditions.
Pray surface featuring The Lord's Prayer (Matthew 6:9-13) over the Sermon on the Mount, with a Listen action and an All Prayers list including The Lord's Prayer, The Shema, and Al-Fatiha Pray surface featuring Marcus Aurelius's Retreat Within from Meditations 4.3, set as Stoicism with a Return Inward kicker on a dark atmosphere
The Lord’s Prayer and Retreat Within use different imagery and background treatments within the same navigation structure.

Building and reviewing the app

The app uses SwiftUI, SQLite for the text library and search, and SwiftData for reader data such as notes and bookmarks. The audio interface includes a mini player so playback controls remain available while browsing.

Plate VI — Listening while browsing.
Pray surface featuring Metta (Loving-Kindness) over the Great Buddha of Kamakura, with a Playing state and a now-playing mini player at the bottom showing Tibetan Singing Bowl Meditation
The Metta screen shows the mini player at the bottom, with the current track and playback control visible alongside the prayer.

I use a similar development workflow to this website: describe the change, review the generated code, run it, and revise. AI assistance helps with implementation, but I still need to check whether the resulting behavior matches the design.

Current status

Sacred Grove has a working iOS build, a text library, and a design system. Development is ongoing, including the broader content model and the interactions that depend on it.

This account documents design and implementation work so far. It does not report a public launch or measured reader outcomes.

From
Abraham Garcia
Studio
Charleston, South Carolina
Email
abe@wrkhrs.co
Phone
(202) 550-7569
Studio site
www.wrkhrs.co
LinkedIn
in/thehonestape