Ivideon for Mac OS X: From Hate to Love

I remember that in a previous article I promised to tell the continuation of the story of the creation of Ivideon . And he stopped, one might say, in the most interesting place. If it was a movie that you came to with a girl (probably for the girl’s sake rather than for the film’s sake), you would still be distracted from her to watch this scene ... and she (the girl, not the scene) would plunge the neat nails into the armrests of his chair, waiting for the final denouement ... And I took and broke the thread of the narrative, promising to continue in the next part. So, there will be no continuation under the cut ...
And all because last week one of our potential users wrote this simple message to our blog:
“You should ... make a version for the iPhone, but for the poppy there is no sheer moronity. I hate you! ”
Of course, I hope that he is the exception rather than the typical representative of Mac users. But actually there was a certain rational kernel in his words. For a very long time we needed a version for Mac.
When I first saw OS X, I thought it was just a lagging semblance of modern Ubuntu. At first I was terribly uncomfortable. Where did they hide everything - and why?
And then I realized that I was wrong. I treated OS X as a developer who needed a lot of things that were specially hidden from the Mac. And I tried to look from the side of a simple user. I and the rest of our team needed to do this in order to be able to create a really good application for OS X.
After working a little, I realized how much everything was thought out there. Every little thing. Every item. Everything just exudes user care. It just dawned on me. This is exactly what we strive for at Ivideon. Make a product simple and understandable for the user. Which requires a minimum of knowledge and skills.
We started development. Surprisingly quickly, after minor corrections related to differences between Linux and Mac OS X platforms (for example, Mac OS X lacks support for anonymous POSIX semaphores), our system cross-platform components assembled and passed internal tests. And after fixing several problems related to the 64-bit build, the first fully working version of the console video server was launched.
Further efforts were directed towards porting our interface. As a result, we wanted to see an application that would not look alien against the background of other programs for Mac OS, but at the same time match the functionality of the version of Ivideon Server for Windows. A separate requirement was to ensure ease of maintenance and development of both versions in the future. To release new features for both Windows and OS X at the same time, without slowing down the development speed. The Qt framework, on which the Windows version of Ivideon Server was written, proved to be excellent in this work.

After several days of work, it was possible to bring the versions for Windows and Mac OS to a single code base. Then it was necessary to organize support for working with webcams. In modern versions of Mac OS X, the QTKit Capture API, an Objective-C framework, which makes it quite simple and convenient to capture video and audio from various devices, is supposed to be used for this purpose. Our team has not had any previous experience with Objective-C programming and there were concerns that support for webcams could drag on indefinitely. But these fears were in vain: Objective-C turned out to be pleased with a simple and convenient language, which, moreover, can be easily used in C ++ projects.
After supporting webcams and various small (but important) improvements and improvements, we released the first beta of Ivideon Server running on 64-bit versions of Mac OS X Snow Leopard and Lion.

It took us about a month to complete the task and complete the work. In our opinion, this is pretty good, given the lack of development experience for Mac OS X.
On the first day, we received good feedback from users. They found a number of shortcomings. One of them led to the fact that some webcams were displayed upside down.
Our developers quickly responded to this information and released another build with corrections.
The next day, on Saturday, our US user contacted us for technical support. He just installed the version for OS X. The webcam worked for him, but he could not see the IP camera. Our specialist remotely connected to it and helped set everything up. Damn nice when everything really works.
We really hope that our application for Mac OS X turned out to be really cool and reliable. But, being moderate optimists do not exclude the presence of errors. If you are a Mac user, we will be glad if you tell us about the shortcomings found or your wishes!
To summarize, I want to once again note that despite the fact that none of our team had experience in developing for Macs, we managed to port our application in less than a month. Although initially we thought it was difficult and long. Do not be afraid of Macs. Developing for them is a very simple and enjoyable task. Especially when you see the result.