Inspiration
I used to work at a church, where lyric slides are a must. You want the congregation to be able to sing along. There is lyric software out there, but exclusively for computers. And they cost an arm and a leg to get a license. I set out to make something easier for the non-tech savvy person, that anyone could pull out without needing to plan ahead, and that wouldn't break the bank.
What it does
Evoke is a presentation app that's main focus is to be a catch all for anything you might need to throw up on screen during a service, event, or presentation. Its flagship feature is the extremely quick lyric slide creation, and the ability to change their template just as fast.
How we built it
With little sleep and SwiftUI, Evoke came together. I started with the essentials of CoreData first, mapping out how I wanted my data sorted. Then I worked from the bottom of the data hierarchy, upwards. Slide creation was my first challenge. It's where I ran into most of my hiccups, but it was also where I had my most fun.
After that, I turned to AVFoundation to figure out how I wanted to present my slides. A few months before Ship-a-ton's announcement, I had toyed around with some other options, but I knew I did not have the time to go down that road if there was no guarantee it was going to work.
And to wrap it all up were the templates. Luckily, my preplanning of the data set paid off, and implementing the final pieces of my flagship features went off without a hitch.
Challenges we ran into
Time was the biggest factor. So when I ran into the slightest hiccup, it threw off the entire schedule. One of my most time consuming challenges was scaling my slide items. I wanted to be able to grab a corner, and grow/shrink from the corner alone. Every time I thought I had fixed it, I ended up breaking the rotation element. Watching the Ship-a-ton time window growing smaller, I had to make a decision, and I ultimately switched to growing the item from the center. I look forward to going back to see if I can figure things out with fresh eyers later.
Another big challenge was a business decision. I needed to decide if I wanted to import PowerPoint or Keynote files. There's not a way to do this on device, so I would have needed to upload to a third-party server. The user would also not be able to edit their PPT or Key presentation after it had been converted, so was it worth having to rely on a third party? I instead made the choice for the user to be able to import a PDF version of their presentation into Evoke. It requires a little more work on the customer (saving their files as PDFs), but I believe it's the right choice for now.
Accomplishments that we're proud of
Ultimately, I am proud that I am releasing it. I am a perfectionist, and wanted to add so many more features before I released it. But with Ship-a-ton, I didn't have that luxury. I think it will benefit me to have paying customers in its early stages, so the product can grow with them. I am grateful for that opportunity.
What we learned
Working on Evoke not only improved my programming skills, but my business sense. With the short time limit, I really needed to evaluate what was absolutely essential in the MVP, and push everything else to future updates.
(Also, I learned the new Mesh Gradients in SwiftUI are a game changer.)
What's next for Evoke: Elevate Your Slides
I have a long list of features I want to bring to Evoke. A pre-event section with an optional countdown clock and slides that loop automatically, a library of all your media and songs to easily bring into future presentations, Undo/Redo support, more slide creation options, and a possible way to connect to more displays than AirPlay... there is so much in store!
Built With
- avfoundation
- core-data
- pdfkit
- revenuecat
- swift
- swiftui

Log in or sign up for Devpost to join the conversation.