In our work, we often need to implement video streaming from iOS devices in real-time or near real-time. A common example is the use of iOS devices as surveillance cameras or creation of streaming applications like Periscope. Problem statement often imposes additional requirements like enabling of stream playback on another device or running the app smoothly in the browser or VLC player, low latency (video streaming in near real-time), low resource consumption (long battery life), no need in a dedicated media server, etc.
In the article we are going to share our experience of finding the optimal way to visualize a waveform in an iOS app, choosing between CAShapeLayer and drawRect(), and certain nuances of using Swift. The publication is targeted at those who create complex custom UI components for sound processing, but also any iOS developers wishing to broaden their horizons. Continue reading
Casual videos shot with a smartphone can often suffer from shakiness. Software-based video stabilization methods have been actively developing over the last years and can make such videos look much more professional and fluid. We have just released Deshake, our video stabilizer app for iOS that can enable faster than real-time video processing. In this article, we are going to overview the video stabilization techniques available and discuss some of engineering challenges we have faced during the development. Continue reading
Technology offers a variety of means by which we can now capture special moments, all in the palm of our hands using our mobile devices. At the same time, our devices offer functionalities that would have been unthinkable a mere ten years ago. One such feature would be the anti-shaking functionality on videos. While most smartphones don’t offer some form of video stabilisation function, mobile companies have not yet perfected it. Continue reading
For quite a long time I was sure that most of my University skills could hardly be used in my business. Just try to think of any use for military- KGB-ideology kind of stuff, taught for 5 years, mixed with development courses in rare devices. No, I didn’t think so either.
I like to think though, that the ﬁrst part has helped me to deal with complex situations. Next to that, the ideological stuff put me in a lot of very funny situations and they say laugh extends one’s lifetime span, so… The surprise was that my knowledge of development of very specific devices became very helpful. Even better; that knowledge led to a new app creation. Continue reading
If you are reading this then you most likely know that Apple released a new version of iOS 8 which allows app developers to publish short 15-30 seconds preview videos of their apps. As you know, the App Store is very crowded so making a great app preview video is something you’ll want to do as soon as possible!
In this article I will guide you through the process of making an app preview video as well as share some lessons I learnt while making a video for the Together app using Adobe Premiere Pro CC. The process took almost a whole day and I’m pretty sure that this post will save you a lot of time and make your video better! Continue reading
Probably one of the most popular terms in mobile business is MVP. Numerous evangelists, advocates, consultants and mentors work with startups and help them apply the Lean Startup ethos. They push them towards building an MVP and going further with incremental updates. The main goal of this activity is to find a product market match and understand financial characteristics. To put things simply, these are preliminary steps to build a real business plan and scale the business. If you scale an unprofitable business model, then you scale losses. There are a lot of materials on this topic, but there is not so much information on how to actually do that, or how to get actionable data. This is not a problem, though. I’ll show you how to make it using Google Analytics, which is both simple and free. To make it more fun and more interesting I’ll use PhotoSuerte app as a case study. Continue reading
Many startups and new initiatives feature high quality videos related to their business. Quite often those startups want to optimize user experience with their content. Having such a great demand that keeps growing has caused many cloud infrastructure providers to appear on the horizon. In this article, I provide our story of choosing the best infrastructure providers for our projects across the world. Our secret is in measuring everything and making data driven decisions as there seem to be no silver bullets around. Continue reading
Pirate Metrics is a simple growth hacking (business development) framework by Dave McClure. In this article, I provide a detailed guide for startup founders on how we use Google Analytics to track Pirate Metrics. The framework is based on the assumption that every startup needs to get customers through 5 key stages, Acquisition, Activation, Retention, Referral and Revenue. (AARRR)
Google Analytics, for us, is the best tool to gather actionable data among all our apps and websites. But Google Analytics’ flexibility and power comes at a cost of complexity. It is so not obvious how to get needed insight, even when you completely understand how to aggregate needed information. Here I will provide some very useful recipes, which you could start using while reading the article. Most of the data will be based on our flagship Together app which is a kind of mobile video editor with organizing capabilities. In most common use cases, you just import a recently shot set of videos, splice them into one short video story, add a music soundtrack to set the right mood and impress all of your friends and family with a nice video story. Download it and have some fun. Continue reading
In this post, we would like to discuss possible issues that you may face while implementing data syncing in iOS applications, and how you can tackle such issues with various approaches and tools. We are going to approach the issue from different angles, trying to make a generic overview of the topic. Still the main focus for us are applications that have a data model that is sophisticated enough to need a structured database and the Core Data framework.