Today we are launching Duomov. Dumov is a simple app that connects two nearby iOS devices and enable them to shoot a dual video. To put it simply: two perspectives of the same place or situation. It uses a peer-to-peer WiFi connection between two devices. All you need is to have WiFi enabled. Being connected to a network or having any kind of Internet connection is not required.
The idea for Duomov started earlier this year when I hosted a good friend of mine who was traveling through Europe in my apartment in Lisbon. My friend was recording a lot of stuff for his travel journal and we eventually found ourselves recording the same situations. That’s when he said: “Wouldn’t it be cool if there was one app that let both our iPhones record at the same time and then produced a single video with the two perspectives?”.
Fast forward to May when I finally got the available time to start exploring this idea.
Two stage proof of concept
It was clear from the start that for this app to work, some sort of communication between the device was going to be needed. I needed to evaluate which kind of communication technology I would be using. Bluetooth was initially considered but discarded before an implementation was even attempted due to the fact that there’s not enough bandwidth to transfer high resolution video through it. I set my sights in figuring out how AirDrop does it.
Turns out Apple already had a fairly obscure framework called Multipeer Connectivity which seemed to do what I needed. So my first goal was to simply make two iOS devices talk to each other.
As it turns out, discovering peers and sending data between devices was a fairly straight forward process. I also tested sending larger data (the size of your average short iPhone recorded video) and everything seemed to be working really well for what I needed.
The second stage of my proof of concept was having both devices start shooting video at the same time, sending the videos to each other and putting them together in a single video.
The final result was a single video composed of the videos recorded on both devices. It was still wildly out of sync but it proved that the concept of the app was feasible for the amount of time that I could allocate to develop it.
Turning a proof of concept into a product
A product must feel solid, intuitive and has to look good. There’s no arguing that. With that proof of concept in hand, I contacted my friend Pedro Henrique Marques who usually embarks with me on this product development endeavours and he was thrilled by the idea.
Since we live really far away and are rarely even on the same continent (last time I saw Pedro in person was 4 years ago), we had to really on Trello and Slack for communication and planing. And luckily for us, we are both used to remote work so things couldn’t have gone smoother. We kept in constant touch, exchanging ideas on how the first version of the app should be like.
As Pedro began working on the designs, I took the time to work on connectivity issues and video synchronization adjustments.
On the very next day, the first designs were ready and the app was also ready for its metamorphosis process. From crude proof of concept to polished product.
In a couple of days we had the first testable version which we then sent to a few friends who we eager to help us test this app. This was invaluable to help us find a few conceptual problems and bugs early on.
Our bug count has been kept to a minimal since early on. This is mostly to the fact that our product was well specced and the critical parts were fully tested. Testing not only helped me avoid introducing bugs to our code base, but it also helped me validate assumptions on technology that was then unfamiliar to me such as Multipeer Connectivity.
In little time our product was already feeling solid. This was really fortunate since Pedro was attending a wedding and took the chance to field test Duomov.
The main functionality was starting to look good. After yet another a few adjustments to the video merger, we began the final steps for v1: going over all the UI looking for misaligned stuff and localising the app in 7 languages (English, French, German, Japanese, Portuguese, Brazilian Portuguese and Spanish). Again our friends proved invaluable in testing the Gold Master version for us (a special thank you to Igor & Milena Escobar).
Finally the big day arrived and with a well deserved sense of accomplishment we submitted the the app to Apple.
The review process was fairly smooth. We only had to provide a bit more information to the review team but weren’t asked to make any changes to the app.
After getting the notification that our app was pending developer release, I exchanged a few short messages with Pedro which went basically like this:
“Should we wait for our official launch on Monday or should we release now?”
“What the hell, why not!?”
We are now already working on an update with a bunch of improvements and also writing down ideas for a v2 on our notebooks (Have an idea? Drop us a line!) while at the same time restlessly checking on Fabric to see all these new people trying our app. Overall, the experience of developing Duomov was extremely smooth and fun. We went from absolutely nothing to having a 1.0 version on the App Store in 29 days while also doing other jobs on the side.
My take on why things went so well? Not being afraid of exploring new technologies and doing thinks differently from previous project, embracing the fact that we need to work remotely and making sure that our both our work and planing are asynchronous.
You can check more about our app on our website or you can click here to go straight to the App Store. If you do enjoy Duomov, you can help us by posting the videos you create to you favourite social media outlet with the hashtag #duomov, or you can also spread the word to your friends (maybe even acquaintances).
Looking for a team to turn your idea into an MVP, develop your app, create an awesome design or just looking for the opinion of someone with experience in making ideas reality? You can reach us on email@example.com and we’d be happy to discuss things further.