Inspiration

I wanted to create an app that could store moments from both sides, not just the videos that I take from one side of my phone. The idea came to me after my daughter was born. One day, while looking through my photos, I noticed I wasn't in as many as I would've liked. Even with friends, I’m always the one behind the camera, taking the pictures/videos.

What it does

The app records videos using both the front and back cameras.

  • Clip Management: You can create various clips, and have the flexibility to edit or reorder them.
  • Merging Clips: After editing, you can merge these clips into a single video.
  • Dynamic Video Creation: For more dynamic videos, you can move the front camera preview before pressing the record button.

Demo of DoubleCamera

Subscription (and Lifetime purchase) Features:

  • Unlimited Recording: To record unlimited clips or trim videos, a subscription is necessary.
  • Watermark Removal: A subscription also removes the watermark that appears in the final video after merging all the clips.

How we built it

First I created a sketch (by hand) for the MVP. Then, I used Figma to get a clear vision of the features, UI elements, etc. After all of this, I started coding. I had everything I needed: my laptop. I used Swift and SwiftUI (with AVFoundation, Apple's framework for managing audio and video).

Challenges we ran into

I ran into a lot of challenges:

  • I wanted to allow the user to move the front camera preview to make creating clips in different positions more dynamic. It was challenging to map SwiftUI coordinates with AVFoundation.
  • Overlapping videos was also difficult, especially since it was my first time doing it. Portrait videos are easier to manage than landscape ones (my app doesn’t support landscape mode yet).
  • Merging different clips into a single video was hard. Any error in the times I wanted to merge ended up in a black video, making it difficult to debug (my Photos app is full of videos).
  • At the beginning I had performance issues. SwiftUI is awesome, but I had to limit the duration of the clips due to some glitches in the UI. I used Xcode Inspector to debug my views, and I solved all the problems

Xcode Inspector showing UI performance

Accomplishments that we're proud of

  • You can use my app without downloading it from the App Store. I’ve added App Clips, so if you’re using Safari (iOS 17.6), just go to Double Camera Web to try the app. I’ve included limited features here, but the magic lies in how easy it is for users to try it. Check out an example here: Double Camera AppClips
  • I'm proud of my app, I mean, launching a simple video editor created with the Apple latest technology (SwiftUI), the essence of this is trying new things, frameworks, etc. and to be honest it was difficult. But thanks to the shipaton I was able to launch it #nojoke
  • Also, I'm proud of sharing the progress and some part of the animations that I used on Twitter. Some examples 👇

Animation: Loading View

Animation: Recording video effect

Animation: Thumbnails Popup

What we learned

  • I learnt who to add RevenueCat into my app (with different products, offerings and Paywalls)
  • I improved my skills using AVFoundation (this framework it's hard)
  • I used Cloudflare for the first time to store my Landing Page assets/gifs (R2 Buckets)
  • I used Cursor AI for the first time to create the landing page double.camera Demo Cursor AI + v0 (Vercel)
  • I improved my skills using Figma, the first 2 screenshots are 100% created on Figma, and the images (models, landscaped, etc) using Midjourney Test A/B Screenshots using Figma and Midjourney

What's next for Double Camera | Front & Back

There are a lot of things I want to keep working on, including different features that some users have requested. For example, users want the possibility to take photos or add various shapes (with lines, colors, etc.) to the front camera preview. Additionally, I would like to add the ability to create projects, so users can save different moments without losing previous videos. And to be honest, I plan to focus on the revenue side by using RevenueCat for targeting and experiments (I want to learn more about these features). I’m also considering different paywall scenarios. For instance, if a user closes the paywall the first time, is it worth displaying another different paywall with a discount? I want to answer these kinds of questions

Built With

Share this project:

Updates