iPhones.ru

Dev Story Zello. История миллиона пользователей

Информатор avatar | 36
FavoriteLoading В закладки

ТЕКСТ: АЛЕКСЕЙ ГАВРИЛОВ. Идея сделать «голосовую аську» возникла у меня в 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]

Данная история опубликована в рамках рубрики Developer Story, где разработчики делятся секретами своей внутренней кухни.
1 Звезд2 Звезды3 Звезды4 Звезды5 Звезд (1 голосов, общий рейтинг: 5.00 из 5)
undefined
iPhones.ru
ТЕКСТ: АЛЕКСЕЙ ГАВРИЛОВ. Идея сделать «голосовую аську» возникла у меня в 2005 году, после того как поигравшись с Jimm на своей Motorola v535, я понял что ICQ на телефоне – это здорово, но очень неудобно. Проект получил кодовое имя VoICQ (voice icq) или «Васька», я написал краткое резюме, исследовал возможности современных (по тому времени) телефонов...
Здесь можно оставить комментарий! Для этого авторизуйтесь или зарегистрируйтесь на iPhones.ru.

36 комментариев

Форум →
  1. Whilser avatar
    Whilser 22 июня 2012
    0

    А голосовые сообщения можно прослушивать повторно? Ведь тогда это получается урезанный клиент VoIP. Особенности служб обмена мгновенными сообщениями в том, что клиент не всегда может находиться онлайн и не всегда рядом с устройством, их можно перечитывать или читать когда появляется возможность. Если голосовые сообщения хранятся на сервере, тогда сервис превращается в сервис голосовой почты. Отсюда вопрос в возможности обеспечения безопасности и стабильности соединения для хранения и загрузки сообщений.

    Алексей Гаврилов @Zello avatar
    0

    @Whilser, Прослушивать повторно можно из истории сохраненной на устрйстве. Если вы не онлайн, сообщения для вас примет сервер и отправит push-уведомление. Как только сообщение доставлено клиенту с сервера оно удаляется.

    Войди на сайт, чтобы ответить
    Ответить
  2. zMaster avatar
    zMaster 22 июня 2012
    0

    А почему собственно для iPhone версии вы задались дизайном, а для Android так и оставили то УГ которое сейчас в play market? Что собственно за дискриминация?

    Как я понимаю среда разработки к дизайну отношения не имеет, а с позиции функционала у андройда больше преимуществ, нет тех ограничений на использования кнопок и т.д.

    zMaster avatar
    zMaster22 июня 2012
    0

    Да и еще одно, использование уникального имени пользователя при регистрации это жутко неудобно, при том что у вас миллион пользователей.
    Не лучше ли было сделать авторизацию по e-mail адресу, а nik name бы пользователь вводил свое, пусть даже совпадающее с другими. Так удобнее самому пользователю, при регистрации не надо выдумывать ник нейм который еще не занят, а так же его социальной группе т.е. списку контактов с кем он будет общаться.

    Алексей Гаврилов @Zello avatar
    0

    @zMaster, Сделать нормальный дизайн для Android заметно сложнее из-за многообразия разрешений экрана. Не сделали пока с ним ничего не по злому умыслу, конечно — просто руки еще не дошли. Как и до версии для iPad. С кнопками на Android все еще хуже — использовать их можно (мы это поддерживаем), но если экран выключен, то событий от кнопок приложение не получает совсем.

    У использования имен пользователей есть как недостатки, так и преимущества. Например, многи пользователи делятся именем пользователя в твиттере, форумах и т. д. и они могут это сделать не публикуя свой e-mail.

    daddy_kul avatar
    daddy_kul22 июня 2012
    0

    @Алексей Гаврилов @Zello,

    Каждый раз у разработчиков возникают всякие проблемы и впихивают на андроид тухлый дизайн, а потом раздаются недовольные возгласы, мол на андроиде продажи слабые, АЙОС имеет больше перспективы.

    Какие могут возникнуть проблемы с разрешением экрана? Почему у других разработчиков таких проблем нет?

    Алексей Гаврилов @Zello avatar
    0

    На Android у Zello как раз дела неплохо — почти половина наших пользователей используют именно Android. По опыту участия в разработке других приложений (TuneIn Radio) могу сказать, что доход от продаж платных программ на Android на порядок меньше, чем на iOS, и лучше всего там зарабатывать на рекламе.

    Дизайн для Android делать объективно сложнее, уверен, что проблемы есть у всех, некоторые их уже решили, некоторые еще нет, а кому-то все равно. Мы относимся ко второй категории )

    zMaster avatar
    zMaster22 июня 2012
    0

    @Алексей Гаврилов @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 это выход из программы, можно повесить запрос о выходе.
    У пипла ведь найдется причина выйти из программы когда это необходимо, а не гасить ее через задачник. Это айфоновская идеология сворачивать все программы независимо от того что хочет пользователь, а андройдовцы более избалованы, надо что бы было куча опций, тем, что бы любой чих и пых можно было контролировать :) У вас кстати с этим порядок ;)

    Не обессудьте за может чуть излишнюю критику, программа действительно отличная и функционал на высоте. Так держать!

    Алексей Гаврилов @Zello avatar
    0

    @zMaster, спасибо за пожелания, согласен что никнеймы будут в тему. Кстати, я в качестве основного телефона использую Android. Рекламу в приложениях не люблю, поэтому ее нет. Надеюсь придумаем более умный способ зарабатывать.

    zMaster avatar
    zMaster23 июня 2012
    0

    @Алексей Гаврилов @Zello,
    А я тоже рекламу не люблю, поэтому на андройде с root-ом и Adaway. Процентов 80 моих друзей тоже с андройдами и про root даже не слышали, далеки от хак теч ;) Вообщем не паханое поле, но решать конечно же не мне :)
    А задумка с бизнес рынком великолепная, это же всякие курьерские службы, такси и т.д. GPS можно прикрутить с картами…

    Войди на сайт, чтобы ответить
    Ответить
  3. madhorse80 avatar
    madhorse80 22 июня 2012
    0

    Приветствую! готов помочь с дизайном вашего чуда!
    за плечами минимум 1 топовое приложение в апп стор.
    контакт по запросу,ссылка тоже.

    Алексей Гаврилов @Zello avatar
    0

    Напишите, пожалуйста, на alex (at) zello.com

    Войди на сайт, чтобы ответить
    Ответить
  4. madhorse80 avatar
    madhorse80 22 июня 2012
    0

    отписал с 5fingers(сабака)list.ru

    Войди на сайт, чтобы ответить
    Ответить
  5. iPad HD avatar
    iPad HD 22 июня 2012
    0

    Я вот непонял, а прослушать и ответить с компа можно прям из Аськи? Типо не у всех же миккрофон к компу подключен. Или я могу шоворить с машины, а мне писать будут в ответ?

    Алексей Гаврилов @Zello avatar
    0

    Чтобы общаться нужен микрофон. Текст отправить можно в виде сигнала вызова, чтобы привлечь внимание и начать разговор, но суть сервиса в общении именно голосом. По нашим данным 96% пользователей подключаются к Zello c мобильных устройств и только 4% c ПК.

    iPad HD avatar
    iPad HD22 июня 2012
    0

    @Алексей Гаврилов @Zello,
    Там нельзя Аську добавить, получается что на другом конце тоже ваш клиент должен быть? А под Мак он есть?

    Алексей Гаврилов @Zello avatar
    0

    @iPad HD,
    Все верно, клиент нужен обоим. Для Мака клиента пока, к сожалению, нет, но план сделать его есть.

    Войди на сайт, чтобы ответить
    Ответить
  6. Kir de Vah avatar
    Kir de Vah 22 июня 2012
    0

    Мне понравилось. Поставил на ПКшки и на телефон. Пригласил друзей. Буду пробовать.

    Войди на сайт, чтобы ответить
    Ответить
  7. Cooler avatar
    Cooler 22 июня 2012
    0

    А сколько в килобайт занимает фраза: “привет как дела”?
    Интересно, какой инет.пакет необходим для комфортного общения.
    Возможно ли включение шифрования данных в данной программе?

    Алексей Гаврилов @Zello avatar
    0

    Секунда звука занимает около 1 кБ при использовании по мобильному интернету и 4 кБ по WiFi (по WiFi качество выше естественно). В месяц обычно хватает 200 Мб если постоянно использовать.

    Войди на сайт, чтобы ответить
    Ответить
  8. Kir de Vah avatar
    Kir de Vah 22 июня 2012
    0

    В разделе “Обо мне”-“О Zello” опечатка “ТОГРГОВАЯ”.

    Алексей Гаврилов @Zello avatar
    0

    Спасибо, исправим!

    Войди на сайт, чтобы ответить
    Ответить
  9. aibo avatar
    aibo 22 июня 2012
    0

    Программа вообще супер! Когда первый раз установил, круглыми сутками не вылазил из нее (ржали просто до боли в животе) – главное интересных собеседников найти. Удивлен, что мало кто про нее знает.

    iPad HD avatar
    iPad HD22 июня 2012
    0

    @aibo,
    Вот тут я и не понял-а это всё вообще для чего? Чтоб поржать? Или чтоб съэкономить на звонках? Просто пользуюсь Voip телефонией, в ней звонки или бесплатные или максимум один цент

    aibo avatar
    aibo22 июня 2012
    0

    @iPad HD, это чтоб пользоваться по типу как рацией. Например, у тебя деловая встреча, а тебе тут по рации (по громкой связи) – Лошара, ау!:) ну к примеру. Или база база – это агент соска, как слышно.

    То есть, мы её так используем, но используем постоянно.

    Войди на сайт, чтобы ответить
    Ответить
  10. iRomario avatar
    iRomario 22 июня 2012
    0

    Парни, спасибо вам! Огромное! Меня всегда поражал альтруизм разработчиков, которые пишут удивительные продукты, и которые при этом бесплатны! Что вами движет? Не поверю, что просто интерес. Реально, вы молодцы!!!!
    Скажите, а МАС версия появится?

    Алексей Гаврилов @Zello avatar
    0

    Спасибо! Вот ради таких комментариев как ваш и стоит делать! Деньги зарабатывать мы планируем на платной версии с бОльшими возможностями и подписках для бизнеса.

    Для Mac версия будет, работу над ней еще не начали, но можно будет использовать много кода из iOS так что должно быть несложно.

    Войди на сайт, чтобы ответить
    Ответить
  11. alex_ti avatar
    alex_ti 22 июня 2012
    0

    Программа отличная с каждым обновлением работает всё лучше.В последнем обновлении добавили возможность через хенсфри начинать/заканчивать разговор. Возможно ли воплотить то же самое с блютуз гарнитурой? Чтоб одним нажатием на кнопку вызова отвечать/заканчивать разговор заместо сенсорной кнопки.

    Алексей Гаврилов @Zello avatar
    0

    С Bluetooth оказалось все сложнее, чем мы думали. Теоретически тот же код, что используется для обработки кнопки проводной гарнитуры должен работать и с Bluetooth гарнитурой. Но не работает — нужные события не приходят, приходят другие, но не всегда. Будем пробовать еще, надеюсь что все же удастся это заставить работать.

    Oleg Sokolov avatar
    Oleg Sokolov16 мая 2019
    0

    @Алексей Гаврилов @Zello, Когда уже будет Видео Зелка?

    Войди на сайт, чтобы ответить
    Ответить
  12. danilor avatar
    danilor 23 июня 2012
    0

    Отличная программа, радует тем,что сжимается объем,но качество на уровне,даже при edge. Находясь в США, с друзьями из России общаюсь без проблем. Особое спасибо за бесплатную версию

    Войди на сайт, чтобы ответить
    Ответить
  13. kislenko avatar
    kislenko 24 июня 2012
    0

    Хай, все конешно супер, я сам с Израеля, тут у 85% людей до 40 лет айфоны, и у нас очень популярна talkbox.. Есть она у всех и уже как 7-8 месяцев.. Там и инвайты через фейсбук/контакты телефона/саджешен на твойх знакомых.. Дезайн просто класс, хистори на бесконечность.. (полугодичные мсджы еще можно прослушать, после того как я зделал рестор эз а нею айфон..) версия уже 1.9 вобщем глянте, различий и плюсов с вашей апп я не нашел..

    Войди на сайт, чтобы ответить
    Ответить
  14. infinity avatar
    infinity 26 июня 2012
    0

    Программа супер, разработчикам большое человеческое спасибо за ваши труды. Единственный вопрос: что за соло режим и с чем его едят? Включал/выключал разницы не заметил.

    Войди на сайт, чтобы ответить
    Ответить
  15. sashadubna avatar
    sashadubna 27 июля 2012
    0

    Добрый день! Программа класс! Есть несколько пожеланий.
    1. текстовый чат. он супер мега необходим. Допустим мы хотим открыть какой-то важный канал. мы сможем продублировать важную информацию в тексте.
    2. на PC версии при нажатии на название канала хотелось бы видеть список собеседников. сейчас его видно только правой кнопкой по каналу – отобразить собеседников.
    3.неудобный поиск. может в поиске было бы возможно сделать хотя бы чекбокс с названием языка, города или каких-либо других параметров канала. 5 отображаемых результатов – тоже маловато.
    4. ну и немножко фантазии типо USB/blutooth гарнитур с тангентой – чтоб из машины можно было работать или дома в монитор не пялясь. Основная претензия людей что не удобно работать с кнопкой на тачскрине. Сам с мобилки не работал, но в принципе их понимаю.
    5. настройки вокса не очень понятны. децибеллы. я в них ничего не понимаю. Вот бы полоску бегающую когда говоришь и ползунок чувствительности как в скайпе.

    Войди на сайт, чтобы ответить
    Ответить
  16. sashadubna avatar
    sashadubna 27 июля 2012
    0

    Да, вдогонку. Сделайте возможность слушать сообщения в онлайн режиме, а то при работе в двух активных каналах, они не успевают проигрываться и копятся!

    Войди на сайт, чтобы ответить
    Ответить
  17. Oleg Sokolov avatar
    Oleg Sokolov 16 мая 2019
    0

    Алексей! Когда уже будет Video Zello?

    Войди на сайт, чтобы ответить
    Ответить
Помни о правилах — если начал оффтопить, то не удивляйся потом.

Нашли орфографическую ошибку в новости?

Выделите ее мышью и нажмите Ctrl+Enter.