2 июня 2012
[Разработчик] Обзор программы Wi-Fi Talkie
cn_dart
Идея данной программы появилась у меня на работе, когда, находясь не так далеко друг от друга, приходилось как-то координировать свои действия. Тогда для этого использовалась обычная сотовая связь. Но, во-первых, ввиду особенности рабочего помещения не всегда обеспечивался качественный прием от операторов, а во-вторых, длительные переговоры часто плохо сказываются на состоянии баланса на телефоне.
Так появилось понимание того, что, имея смартфон, открытую точку доступа в нем и другой смартфон, подключенный к этой точке доступа, можно попытаться реализовать передачу голоса от одного аппарата к другому. Решили сделать некое подобие walkie-talkie, но уже средствами смартфонов. Этим и занялись.
Первые строки кода данного приложения были написаны, если не ошибаюсь, в феврале 11-го года. Тогда начали с простой передачи звука. Разработкой занимались вдвоем с другом, но опыта в работе с сетью у него фактически не было, и поэтому большую часть всего приложения пришлось писать мне, а друг тем временем был занят другими проектами – благо интересных идей (по крайней мере, таковыми они нам кажутся) у нас немало. При этом способы реализации той или иной фишки мы придумывали вместе, стараясь сделать интерфейс максимально дружелюбным для пользователей, функциональность богатой, а логику работы легко понятной.
И 23 ноября 2011 года мы добрались до публикации в Android Маркете. Описывать все стадии разработки в рамках данной статьи не стану – не тот формат. А вот о том, что в итоге получилось, расскажу подробно.
Звонки внутри сети
Пусть у нас есть некоторая локальная сеть, к которой подключены несколько андроидфонов. Такой сетью может являться сеть Wi-Fi точки доступа, VPN сеть, или даже подсети мобильного интернета сотового оператора. Все телефоны с запущенной Wi-Fi Talkie отображаются в основной вкладке главного окна приложения.
В этом списке цветом иконки отражается статус каждого смартфона: серый – в сети, красный – не в сети, желтый – входящий или исходящий вызов, зеленый – активный разговор. Позвонить можно либо с помощью вызова меню через продолжительное нажатие на нужный элемент в списке, либо с помощью более удобных Quick Actions элементов, вызываемых кликом по иконке.
Процесс установления соединения между телефонами мы сделали похожим на обычный звонок. Поэтому после вызова со стороны звонящего на экране сопряженного телефона появляется такое окно:
Потянули левую иконку вправо – приняли вызов, потянули правую влево – отклонили звонок. Все просто, как в стандартной гугловской звонилке. А затем уже начинается разговор. Одновременно можно вести общение сразу с несколькими людьми – ограничений никаких нет. При поднесении телефона к уху экран потухает, позволяя сэкономить батарею и избежать случайных нажатий на экран (данная функция отключаема в настройках).
Обмен сообщениями
В процессе разработки нам показалось логичным добавить в приложение своеобразную аську (хотя тут, скорее, надо IRC вспомнить) для общения внутри сети. Присутствуют как личные сообщения, так и чат. Личные сообщения вызываются кликом по элементу из списка устройств, а под чат у нас выделена отдельная вкладка. Все просто, и, по идеи, здесь проблем у пользователей быть не должно.
Передача файлов
Идея с добавлением функции обмена файлами возникла не сразу, однако, как сейчас можно судить, данная «фишка» завоевала немалую популярность у пользователей программы. И это при том, что изначально, была реализована функция передачи файлов исключительно поодиночке. В нынешней же версии, которая появилась буквально с неделю назад, функционал в области передачи файлов несколько расширен: сейчас можно слать не только сразу несколько файлов, но и папки целиком.
Итак, для того, чтобы послать нужные нам файлы и папки, используем либо уже знакомые Quick Action, либо контекстное меню (всё как и в случае со звонком).
После этого мы попадаем в файловый браузер, в котором нам и нужно выбрать те файлы и папки, которые мы хотим отправить.
Следует сказать, что при продолжительном нажатии на файл или папку, появится контекстное меню, которое позволит быстро переименовать или удалить конкретный элемент.
Как только файлы выбраны, нажимаем на кнопку «Отправить». Получатель наших файлов тут же увидит окно, схожее по принципу работы с приемом звонка. Только на этот раз нужно иконку с дискетой перетянуть либо в наш телефон, либо «выкинуть» подальше.
В случае выбора первого варианта мы попадем в уже знакомый файловый браузер, в котором теперь придется выбрать путь для сохранения.
Передача файлов относительно быстрая. Иной раз может доходить до 2-2,5 МБ/сек.
Настройки
Подробно рассказывать про настройки не буду, иначе текст уже начнет приобретать некие черты руководства к программе, а не обзорного материала.
Однако скажу, что здесь можно настроить такие параметры как имя устройства в сети, мелодии для входящих звонков, файлов и сообщений, язык приложения, качество передаваемой речи, сетевой порт, который «оккупирует» программа. Отдельно стоит упомянуть пункт «Тестовый режим», который позволяет программе общаться самой с собой (может пригодиться в настройке, да и просто в освоении программы). Также в настройках имеется раздел «Дополнительные подсети», где можно задавать дополнительные сети, в которых требуется работа устройства.
Бесплатная и платная версии
Наша программа распространяется в Android Play Маркете в виде бесплатной и платной версий. Первая имеет рад ограничений:
- Исходящие вызовы длятся не дольше одной минуты. Только исходящие! С платной версии на бесплатную разговор не ограничен.
- С бесплатной версии на такую же бесплатную можно отправлять файлы размером не больше двух мегабайт и суммарным объемом, не превышающим 20 МБ за раз. Обмен файлами между платной версией и бесплатной ограничений полностью лишен.
Заключение
Подводя итог, хочется сказать, что приложению есть куда развиваться. Это и качество передаваемого звука, которое на ряде устройств, мягко говоря, оставляет желает лучшего, хотя на многих все идеально. Это и новые фишки, которые постепенно постараемся реализовать. В общем, работы как всегда много, а времени на все это мало. Мы не намерены останавливаться на достигнутом и будем продолжать развивать наш Wi-Fi Talkie.
Очень приятный интерфейс, человеку, который его делал, лучи добра 🙂
Спасибо! Очень интересный и полезный штуковин 🙂 Надеемся в скором времени вы перейдете и к разработкам мобильных развлечений. Всегда приятно знать что есть думающие люди, говорящие по-русски :))
А зачем она?
Статью_не_читай_сразу_отвечай?
Pro4el, no vedj est Skype, Gtalk! Nahrena e6e?
Идея в том, как уже писали, что все, что вы называли — требует качественного подключения к интернет, а для описываемой программы «интернетов» не нужно
отличная прога. спасибо за новость. будем знать, что если возникнет необходимость в ее функциях куплю) а пока потестирую бесплатную. ) хотя в моем рабочем окружении одни айфоны)
Получится ли использовать эту программу для «превращения» смартфонов в автомобильные рации? При езде по трассе группой машин.
Дальности Wifi hotspot может не хватить, как мне кажется.
А не проще ли использовать скайп?
Для скайпа требуется интернет, да и трафик не у всех безлимитный. А в данном приложении как раз интернет не нужен: можно уехать в лес и, например, через wi-fi телефона передавать файлы, отсылать сообщения и использовать как рацию. Или можно через стенку координировать различные действия с коллегами по работе.
Для скайпа требуется интернет, да и трафик не у всех безлимитный. А в
данном приложении как раз интернет не нужен: можно уехать в лес и,
например, через wi-fi телефона передавать файлы, отсылать сообщения и использовать как рацию. Или можно через стенку координировать различные действия с коллегами по работе.
Дизайн стремный, конечно. Иконка мусорника хоть под общий стиль сделана, а вот дискеты… 🙂
Почитал статью, но все же вопрос остался, а именно: «Возможно-ли передавать файлы по wi-fi, если допустим я создаю точку доступа, а ко мне подключается друг, или всё же нужно третье устройство, которое будет выступать в роли точки доступа?»
Если один телефон создает точку доступа, а второй к нему подключается, то все должно прекрасно передаваться. В приложении как раз есть возможность быстро включать и выключать точку доступа, чтобы обмениваться подобно синезубу, но уже с большей скоростью.
А почему вы проигнорировали гайдлайны гугла в плане дизайна?
Речь о гайдлайне для Андроида не старше 2.3 или о гайдлайне для четверки? Гайдлайнам последнего никак не могли следовать, т.к. приложение релизнулось только тогда, когда максимум один девайс его поддерживал. Да и чужеродно бы это смотрелось на телефонах под управлением 2.2 и 2.3, на которые и делался прежде всего расчет.
А если говорить про гайдлайны предыдущего поколения, то приложение, на мой взгляд, следуя ему, будут довольно мрачными, а хотелось чего-то более жизнерадостного. Да и сами элементы управления почти везде стандартные, лишь немного приукрашенные.
А расстояние какое, в среднем, например в лесу ?
Давно пользую VIber. Все тоже и заодно автоматом добавляют тех кто уже пользует VIber. Очень удобно.Так же он работает через 3G.
Дольше двух сеукнд не держит связь..
Продублировать бы на iOS. Чтоб соединяться с андроида и айфона.
a very nice app but can u put a «Search» on the «Device» list for easier browsing of online user? thanks… 😀
спасибо