ТЕКСТ: АЛЕКСЕЙ ГАВРИЛОВ. Идея сделать «голосовую аську» возникла у меня в 2005 году, после того как поигравшись с Jimm на своей Motorola v535, я понял что ICQ на телефоне – это здорово, но очень неудобно. Проект получил кодовое имя VoICQ (voice icq) или «Васька», я написал краткое резюме, исследовал возможности современных (по тому времени) телефонов и … на этом все закончилось. У нашей команды, занятой тогда заказными разработками ни времени, ни сил тянуть свой продукт с неясными перспективами не было. Прошло два года прежде чем мы вернулись к идее и начали разработку первой версии приложения, которое решили назвать Loudtalks (дабы избежать недоразумений с владельцами торговой марки ICQ). Программа для Windows позволяла отправлять голосовые сообщения по принципу рации – нажал-говоришь-отпустил-слушаешь. Позднее были реализованы каналы для группового общения. К каждому каналу могут подключиться одновременно до 300 человек. Идея мобильного приложения продолжала витать в воздухе, но первый iPhone тогда только появился, а до момента, когда Apple откроет SDK сторонним разработчикам оставался еще почти год.
Начинаем работу
Получилось так, что ко времени, когда мы приступили к разработке приложения для iPhone, у нас уже были запущены приложения для BlackBerry и Android. Оба приложения написаны на Java, и нам удалось 80% кода использовать на обеих платформах, что сильно упростило разработку и поддержку ценой отказа от использования некоторых «вкусностей» (например, generics) доступных только в Android. Клиент для ПК был написан на C++, и нам предстояло решить – пытаться ли портировать существующий C++ код на iOS или переписать «с нуля» на Objective C. Мы выбрали Objective C и ARC с тем, чтобы упростить в будущем развитие и поддержку проекта. Пришлось отказаться от совместимости iPhone 2G, но прогресс есть прогресс.
Несмотря на кажущуюся простоту приложения, впереди была немалая работа по переводу порядка 26,000 строк исходного кода с Java на Objective C. Мы планировали закончить портирование за три месяца, однако в реальности потребовалось шесть.
Новое имя
Одновременно с запуском разработки, мы определились с новым ярким, кратким и запоминающимся именем для продукта – Zello и купили домен zello.com. Решение было непростым – мы (да и многие пользователи) уже успели привыкнуть к старому имени, но общение с носителями языка показало, что Loudtalks вызывает неоднозначную (часто негативную) оценку. На поиск нового имени мы потратили около 3 недель, рассмотрев более 1000 вариантов. Имя Zello оказалось среди множества других предложенных участниками конкурса на www.crowdspring.com и первоначально не привлекло нашего внимания (в том числе и из-за того, что домен Zello.com был уже занят). Однако, постепенно отбросив все остальные варианты, мы остановились именно на нем (решив использовать свободный домен zello.me в качестве «плана Б», если не удастся заполучить .com). Результат конкурса названий нам так понравился, что и для логотипа решили провести конкурс (на этот раз на www.99designs.com).
Тот самый логотип
Дизайн без дизайнера
Для успешного iPhone приложения необходим очень качественный дизайн и, если на BlackBerry и Android большинство приложений не отличаются красотой, средний уровень топовых приложений на iPhone чрезвычайно высок. В идеале в дизайн-команде iPhone приложения должно быть два человека – UX-дизайнер, ответственный за создание схемы взаимодействия пользователя с программой, и дизайнер графики. У нас не было ни того, ни другого. Из-за ограниченности бюджета изначально мы попытались найти одного специалиста, который смог бы совмещать обе роли и стать душой дизайна Zello.
Увы, найти такого человека оказалось крайне трудно… мы продолжаем его искать и по сей день. К январю работа по портированию движка близилась к концу и необходимо было начинать разработку интерфейса. За неимением лучших альтернатив за описание сценариев использования, создание wireframes, а впоследствии и графики пришлось взяться мне самому.
Ключевыми критериями оценки интерфейса были приняты простота (использовать приложение должно быть возможно одной рукой не глядя на экран) и максимально возможное применение стандартных элементов и метафор пользовательского интерфейса. За две недели были нарисованы, как тогда казалось, окончательные варианты схем всех экранов приложения. Рисовал я их карандашом на листах A4, потом фотографировал и отправлял по e-mail, чтобы обсудить по скайпу с командой.
Так выглядел самый первый вариант wireframes
Экран на котором пользователь будет проводить больше всего времени – это экран разговора с определенным человеком или группой. Царит здесь кнопка push-to-talk. Чтобы не перегружать экран решили историю сообщений сделать «складной». От раскрывания ее по клику как и от табов пришлось отказаться, так как при использовании приложения пользователи часто задевали ладонью края дисплея, что приводило к ложным переключениям экранов.
Эволюция экрана разговора
Исходя из того, что большинство людей постоянно общаются не более чем с пятью контактами, в качестве второго по значимости экрана мы определили экран со списком недавних вызовов. Он позволяет быстро перейти к нужному контакту или увидеть пропущенные сообщения.
Про аппаратные кнопки и фоновый режим
В процессе разработки возникла идея – использовать аппаратную кнопку громкости (одну из двух) в качестве переключателя передачи. Повесив обработчик на обратный вызов аудио системы об изменении громкости можно отловить факт нажатия, отработать это событие и вернуть громкость назад. К сожалению, при этом невозможно отследить отдельно факт нажатия и отпускания, а кнопка не может выполнять свою основную функцию, что может запутать пользователя и противоречит требованиям Apple, поэтому от идеи пришлось отказаться. Зато в последнем обновлении мы добавили возможность использовать кнопку гарнитуры в качестве переключателя передачи (первое нажатие – начало передачи, второе – остановка) – работает это, в том числе, и c отключенным экраном, и когда приложение выполняется в фоне.
Про работу в фоне стоит сказать отдельно. Нам хотелось, чтобы приложение могло принимать и сразу проигрывать входящий звук, даже когда экран выключен или приложение свернуто с тем чтобы можно было всегда оставаться на связи. Начиная с iOS4 и iPhone 3GS для VoIP приложений такая возможность доступна – при переходе в фон приложение останавливается, как обычно, но при получении входящих данных система его будит, позволяя выполнить их обработку. Однако при этом есть несколько неочевидных особенностей. Во-первых, если ваше приложение слишком часто просыпается (чаще чем 15 раз в течение 5 минут), то оно будет принудительно завершено системой для экономии энергии. В нашем случае это происходило, если подключиться к каналу, из которого как раз с такой частотой приходят сообщения. Оказалось, впрочем, что система сама перезапускает приложение в этом случае, так что оставалось лишь убедиться, что код корректно отрабатывает при автоматическом рестарте без участия пользователя. Во-вторых, приходится считаться с тем, что кроме вашего приложения на телефоне используются и другие программы записывающие или проигрывающие звук (например, собственно телефон). Приложения, используемые последними имеют преимущество (перехватывают аудио фокус) и ваше приложение утрачивает возможность проигрывать звук до момента, пока пользователь снова его активирует. В нашем случае такое поведение почти фатально – программа неожиданно перестает принимать входящие сообщения. Чтобы сгладить проблему при обнаружении потери аудио фокуса Zello автоматически активирует статус «Занят». В этом режиме входящие сообщения принимаются, но не проигрываются сразу (попытка это сделать приводила бы к ошибке), а попадают в историю сообщений, откуда их можно прослушать позднее. При этом используются системные уведомления, чтобы сообщить о новых сообщениях.
App vs Apple
Наконец релиз готов, протестирован и отправлен в App Store. Через неделю приходит отказ. Причина – не предоставлена информация необходимая для тестирования приложения. Действительно, для использования программы необходима учетная запись, но ведь при первом старте можно ее создать. Вероятно тестировать процесс создания аккаунта цензорам не интересно – создаю им два аккаунта и отправляю заново. Через неделю – опять отказ. Причина – «указанные вами учетные записи не работают». Как же так, проверяю и перепроверяю – все работает. Смотрю еще раз на присланный скриншот и обнаруживаю, что имя на скриншоте (appletest1) отличается от того, которое мы указали в описании (apptest1) и сообщение об ошибке вполне красноречиво об этом говорит – «Убедитесь что вы правильно указали имя пользователя и пароль». Пишу ответ с просьбой внимательнее вводить имя пользователя, а заодно создаю еще пару аккаунтов с именами как на присланном скриншоте. Еще через два дня, приложение уходит в review и меньше чем через 10 минут – уже одобрено!
Эволюция иконки приложения. От первоначальной идеи нарисовать «алюминиевую» иконку отказались в пользу более строгой и контрастной.
Первые успехи
В течение двух недель с момента запуска Zello успело побывать в общих топ-10 App Store в 22 странах, суммарное число загрузок на сегодня – больше миллиона. Лучший результат в российском App Store – 14 место в категории «Социальные сети». Каждый день (на всех платформах) приложение используют более миллиона человек. Приложение бесплатное и без рекламы, ближе к концу лета планируем выпустить платную версию с дополнительными возможностями.
Цена: Free [iTunes link]
36 комментариев
Форум →А голосовые сообщения можно прослушивать повторно? Ведь тогда это получается урезанный клиент VoIP. Особенности служб обмена мгновенными сообщениями в том, что клиент не всегда может находиться онлайн и не всегда рядом с устройством, их можно перечитывать или читать когда появляется возможность. Если голосовые сообщения хранятся на сервере, тогда сервис превращается в сервис голосовой почты. Отсюда вопрос в возможности обеспечения безопасности и стабильности соединения для хранения и загрузки сообщений.
@Whilser, Прослушивать повторно можно из истории сохраненной на устрйстве. Если вы не онлайн, сообщения для вас примет сервер и отправит push-уведомление. Как только сообщение доставлено клиенту с сервера оно удаляется.
А почему собственно для iPhone версии вы задались дизайном, а для Android так и оставили то УГ которое сейчас в play market? Что собственно за дискриминация?
Как я понимаю среда разработки к дизайну отношения не имеет, а с позиции функционала у андройда больше преимуществ, нет тех ограничений на использования кнопок и т.д.
Да и еще одно, использование уникального имени пользователя при регистрации это жутко неудобно, при том что у вас миллион пользователей.
Не лучше ли было сделать авторизацию по e-mail адресу, а nik name бы пользователь вводил свое, пусть даже совпадающее с другими. Так удобнее самому пользователю, при регистрации не надо выдумывать ник нейм который еще не занят, а так же его социальной группе т.е. списку контактов с кем он будет общаться.
@zMaster, Сделать нормальный дизайн для Android заметно сложнее из-за многообразия разрешений экрана. Не сделали пока с ним ничего не по злому умыслу, конечно — просто руки еще не дошли. Как и до версии для iPad. С кнопками на Android все еще хуже — использовать их можно (мы это поддерживаем), но если экран выключен, то событий от кнопок приложение не получает совсем.
У использования имен пользователей есть как недостатки, так и преимущества. Например, многи пользователи делятся именем пользователя в твиттере, форумах и т. д. и они могут это сделать не публикуя свой e-mail.
@Алексей Гаврилов @Zello,
Каждый раз у разработчиков возникают всякие проблемы и впихивают на андроид тухлый дизайн, а потом раздаются недовольные возгласы, мол на андроиде продажи слабые, АЙОС имеет больше перспективы.
Какие могут возникнуть проблемы с разрешением экрана? Почему у других разработчиков таких проблем нет?
На Android у Zello как раз дела неплохо — почти половина наших пользователей используют именно Android. По опыту участия в разработке других приложений (TuneIn Radio) могу сказать, что доход от продаж платных программ на Android на порядок меньше, чем на iOS, и лучше всего там зарабатывать на рекламе.
Дизайн для Android делать объективно сложнее, уверен, что проблемы есть у всех, некоторые их уже решили, некоторые еще нет, а кому-то все равно. Мы относимся ко второй категории )
@Алексей Гаврилов @Zello,
Надо полагать что сделать (точнее портировать) хороший дизайн на андройд не сложнее чем переписать весь код программы. Дизайн же программы для iOS есть, надо только скопипасить его для андройда.
http://developer.android.com/guide/practices/screens_support.html – ничего тут свех естественного нет ;)
У айфона тоже два разрешения, а еще у iPad тоже два разных.
Для разработчиков топовых игр на андройд такой проблемы не стоит.
При миллионной аудитории я думаю что на рекламе можно заработать куда больше нежели продавая программу в AppStore, ведь программа длительного пользования, следовательно и доход от рекламы не разовый как от продажи, а постоянный.
С кнопками громкости все ясно, действительно лучше их оставить в покое. А с именами тогда лучший принцип как у скайпа, есть e-mail, skype имя которое можно публиковать (или присвоить номер как у аськи) и ник нейм который пользователь сам себе выбирает. В Zello я не нашел как мне сделать себе ник нейм который я хочу. А дальше пользователь сам будет решать, что ему публиковать e-mail или некий ID, а найти собеседника можно было бы по обоим параметрам. Вы конечно скажете, пишите мол свой реал нейм… ээ, это соц.сеть, а не банк. Да и Ивановых и Сидоровых среди миллиона будет предостаточно, а будет у вас 10 или 20 миллионов или еще больше (чего я вам и желаю!), что тогда?
P.S. Кстати кнопка back в андройде просто сворачивает приложение, так же как кнопка home. Не есть айс :( Я конечно понимаю, что весь смысл в том, что бы постоянно держать прогу в фоне, но многие знают что home это свернуть прогу, а back это выход из программы, можно повесить запрос о выходе.
У пипла ведь найдется причина выйти из программы когда это необходимо, а не гасить ее через задачник. Это айфоновская идеология сворачивать все программы независимо от того что хочет пользователь, а андройдовцы более избалованы, надо что бы было куча опций, тем, что бы любой чих и пых можно было контролировать :) У вас кстати с этим порядок ;)
Не обессудьте за может чуть излишнюю критику, программа действительно отличная и функционал на высоте. Так держать!
@zMaster, спасибо за пожелания, согласен что никнеймы будут в тему. Кстати, я в качестве основного телефона использую Android. Рекламу в приложениях не люблю, поэтому ее нет. Надеюсь придумаем более умный способ зарабатывать.
@Алексей Гаврилов @Zello,
А я тоже рекламу не люблю, поэтому на андройде с root-ом и Adaway. Процентов 80 моих друзей тоже с андройдами и про root даже не слышали, далеки от хак теч ;) Вообщем не паханое поле, но решать конечно же не мне :)
А задумка с бизнес рынком великолепная, это же всякие курьерские службы, такси и т.д. GPS можно прикрутить с картами…
Приветствую! готов помочь с дизайном вашего чуда!
за плечами минимум 1 топовое приложение в апп стор.
контакт по запросу,ссылка тоже.
Напишите, пожалуйста, на alex (at) zello.com
отписал с 5fingers(сабака)list.ru
Я вот непонял, а прослушать и ответить с компа можно прям из Аськи? Типо не у всех же миккрофон к компу подключен. Или я могу шоворить с машины, а мне писать будут в ответ?
Чтобы общаться нужен микрофон. Текст отправить можно в виде сигнала вызова, чтобы привлечь внимание и начать разговор, но суть сервиса в общении именно голосом. По нашим данным 96% пользователей подключаются к Zello c мобильных устройств и только 4% c ПК.
@Алексей Гаврилов @Zello,
Там нельзя Аську добавить, получается что на другом конце тоже ваш клиент должен быть? А под Мак он есть?
@iPad HD,
Все верно, клиент нужен обоим. Для Мака клиента пока, к сожалению, нет, но план сделать его есть.
Мне понравилось. Поставил на ПКшки и на телефон. Пригласил друзей. Буду пробовать.
А сколько в килобайт занимает фраза: “привет как дела”?
Интересно, какой инет.пакет необходим для комфортного общения.
Возможно ли включение шифрования данных в данной программе?
Секунда звука занимает около 1 кБ при использовании по мобильному интернету и 4 кБ по WiFi (по WiFi качество выше естественно). В месяц обычно хватает 200 Мб если постоянно использовать.
В разделе “Обо мне”-“О Zello” опечатка “ТОГРГОВАЯ”.
Спасибо, исправим!
Программа вообще супер! Когда первый раз установил, круглыми сутками не вылазил из нее (ржали просто до боли в животе) – главное интересных собеседников найти. Удивлен, что мало кто про нее знает.
@aibo,
Вот тут я и не понял-а это всё вообще для чего? Чтоб поржать? Или чтоб съэкономить на звонках? Просто пользуюсь Voip телефонией, в ней звонки или бесплатные или максимум один цент
@iPad HD, это чтоб пользоваться по типу как рацией. Например, у тебя деловая встреча, а тебе тут по рации (по громкой связи) – Лошара, ау!:) ну к примеру. Или база база – это агент соска, как слышно.
То есть, мы её так используем, но используем постоянно.
Парни, спасибо вам! Огромное! Меня всегда поражал альтруизм разработчиков, которые пишут удивительные продукты, и которые при этом бесплатны! Что вами движет? Не поверю, что просто интерес. Реально, вы молодцы!!!!
Скажите, а МАС версия появится?
Спасибо! Вот ради таких комментариев как ваш и стоит делать! Деньги зарабатывать мы планируем на платной версии с бОльшими возможностями и подписках для бизнеса.
Для Mac версия будет, работу над ней еще не начали, но можно будет использовать много кода из iOS так что должно быть несложно.
Программа отличная с каждым обновлением работает всё лучше.В последнем обновлении добавили возможность через хенсфри начинать/заканчивать разговор. Возможно ли воплотить то же самое с блютуз гарнитурой? Чтоб одним нажатием на кнопку вызова отвечать/заканчивать разговор заместо сенсорной кнопки.
С Bluetooth оказалось все сложнее, чем мы думали. Теоретически тот же код, что используется для обработки кнопки проводной гарнитуры должен работать и с Bluetooth гарнитурой. Но не работает — нужные события не приходят, приходят другие, но не всегда. Будем пробовать еще, надеюсь что все же удастся это заставить работать.
@Алексей Гаврилов @Zello, Когда уже будет Видео Зелка?
Отличная программа, радует тем,что сжимается объем,но качество на уровне,даже при edge. Находясь в США, с друзьями из России общаюсь без проблем. Особое спасибо за бесплатную версию
Хай, все конешно супер, я сам с Израеля, тут у 85% людей до 40 лет айфоны, и у нас очень популярна talkbox.. Есть она у всех и уже как 7-8 месяцев.. Там и инвайты через фейсбук/контакты телефона/саджешен на твойх знакомых.. Дезайн просто класс, хистори на бесконечность.. (полугодичные мсджы еще можно прослушать, после того как я зделал рестор эз а нею айфон..) версия уже 1.9 вобщем глянте, различий и плюсов с вашей апп я не нашел..
Программа супер, разработчикам большое человеческое спасибо за ваши труды. Единственный вопрос: что за соло режим и с чем его едят? Включал/выключал разницы не заметил.
Добрый день! Программа класс! Есть несколько пожеланий.
1. текстовый чат. он супер мега необходим. Допустим мы хотим открыть какой-то важный канал. мы сможем продублировать важную информацию в тексте.
2. на PC версии при нажатии на название канала хотелось бы видеть список собеседников. сейчас его видно только правой кнопкой по каналу – отобразить собеседников.
3.неудобный поиск. может в поиске было бы возможно сделать хотя бы чекбокс с названием языка, города или каких-либо других параметров канала. 5 отображаемых результатов – тоже маловато.
4. ну и немножко фантазии типо USB/blutooth гарнитур с тангентой – чтоб из машины можно было работать или дома в монитор не пялясь. Основная претензия людей что не удобно работать с кнопкой на тачскрине. Сам с мобилки не работал, но в принципе их понимаю.
5. настройки вокса не очень понятны. децибеллы. я в них ничего не понимаю. Вот бы полоску бегающую когда говоришь и ползунок чувствительности как в скайпе.
Да, вдогонку. Сделайте возможность слушать сообщения в онлайн режиме, а то при работе в двух активных каналах, они не успевают проигрываться и копятся!
Алексей! Когда уже будет Video Zello?
Нашли орфографическую ошибку в новости?
Выделите ее мышью и нажмите Ctrl+Enter.Какую версию macOS поддерживает ваш Mac. Проверяем возможность отката
Как сделать резервную копию iTunes на Windows
Как подключить mini displayport к MacBook Pro 2016/2017
Как перейти на публичную бета-версию iOS 11 вместо закрытой
Как отключить звук запуска Mac в macOS Big Sur
Как в iOS добавить ярлык любого сайта на рабочий стол
Почему в сообщениях iPhone постоянно подставляет удаленный контакт
Почему некоторые треки в Apple Music серые и не воспроизводятся