Я помню о том, что в предыдущей статье обещал рассказать продолжение истории создания Ivideon. И остановился, можно сказать, на самом интересном месте. Если бы это был фильм, на который вы пришли с девушкой (скорее ради самой девушки, чем ради фильма), вы бы все равно отвлеклись от неё для просмотра этой сцены… а она (девушка, а не сцена) напряженно вонзила бы аккуратные ноготки в подлокотники своего кресла, ожидая финальной развязки… А я взял и оборвал нить повествования, пообещав продолжить в следующей части. Так вот, под катом не будет продолжения…
А все потому, что на прошлой неделе один из наших потенциальных пользователей написал в наш блог вот такое незатейливое послание:
“вы долб… бы сделали версию для iPhone но для мака нет сущий дебилизм. я вас ненавижу!”
Конечно, хочется надеяться, что он является скорее исключением, нежели типичным представителем пользователей Mac. Но на самом деле некое рациональное зерно в его словах имелось. Нам очень давно нужна была версия для Mac.
Когда я первый раз увидел OS X, я подумал, что это всего лишь отставшее подобие современной Ubuntu. Первое время мне было жутко неудобно. Куда же они всё запрятали — и зачем?
А потом я понял, что ошибался. Я относился к OS X как разработчик, которому требовалось множество вещей, специально скрытых от сидящего за Mac’ом. И я попытался посмотреть со стороны простого пользователя. Мне и остальным участникам нашей команды было необходимо это сделать, чтобы суметь создать по настоящему хорошее приложение для OS X.
Поработав немного, я понял, насколько же там всё продумано. Каждая мелочь. Каждый элемент. Всё просто излучает заботу о пользователе. Меня просто осенило. Это же именно то, к чему мы стремимся в Ivideon. Сделать простой и понятный для пользователя продукт. Который требует минимум знаний и навыков.
Мы приступили к разработке. На удивление быстро, после небольших исправлений, связанных с различиями между платформами Linux и Mac OS X (например, в Mac OS X отсутствует поддержка безымянных семафоров POSIX), наши системные кроссплатформенные компоненты собрались и прошли внутренние тесты. А после исправления нескольких проблем, связанных с 64-х разрядной сборкой, была запущена первая полностью работающая версия консольного видеосервера.
Дальнейшие усилия были направлены на портирование нашего интерфейса. В результате мы хотели увидеть приложение, которое бы не выглядело чужеродно на фоне других программ под Mac OS, но при этом максимально соответствовало по функционалу версии Ivideon Server для Windows. Отдельным требованием стояло обеспечение простоты сопровождения и развития обеих версий в будущем. Чтобы выпуск новых функций производился как для Windows, так и для OS X одновременно, не уменьшая скорости разработки. В этой работе отлично проявил себя фреймворк Qt, на котором была написана Windows-версия Ivideon Server.
После нескольких дней работы удалось привести версии под Windows и Mac OS к единой кодовой базе. Далее следовало организовать поддержку работы с веб-камерами. В современных версиях Mac OS X для этой цели предполагается использование QTKit Capture API — Objective-C фреймворка, позволяющего довольно просто и удобно захватывать видео и аудио с различных устройств. У нас в команде ни у кого до этого не было опыта программирования на Objective-C и возникли опасения, что работы по поддержке веб-камер могут затянуться на неопределенный срок. Но эти опасения оказались напрасными: Objective-C оказалася довольной простым и удобным языком, который, к тому же, легко можно использовать в C++ проектах.
После поддержки веб-камер и различных мелких (но важных) улучшений и доработок мы выпустили первую бету Ivideon Server-а, рабоающего на 64-разрядных версиях Mac OS X Snow Leopard и Lion.
От постановки задачи до завершения работ у нас ушел примерно месяц. На наш взгляд это довольно неплохо, учитывая отсутствие опыта разработки для Mac OS X.
В первый же день мы получили хорошую обратную связь от пользователей. Они обнаружили ряд недостатков. Один из них приводил к тому, что некоторые web-камеры отображались перевернутыми.
Наши разработчики оперативно отреагировали на эту информацию и выпустили еще одну сборку с исправлениями.
На следующий день в субботу к нам в техподдержку обратился наш пользователь из США. Он только что установил версию для OS X. Web-камера у него заработала, а вот IP-камеру он увидеть не смог. Наш специалист удаленно подключился к нему и помог все настроить. Чертовски приятно, когда все действительно работает.
Мы очень надеемся, что наше приложение для Mac OS X получилось действительно классным и надежным. Но, являясь умеренными оптимистами не исключаем наличия ошибок. Если вы пользователь Mac, мы будем рады, если вы расскажете нам о найденных недостатках или ваших пожеланиях!
Автор: ivideon