2 июня 2012

[Разработчик] Обзор программы Wi-Fi Talkie

Идея данной программы появилась у меня на работе, когда, находясь не так далеко друг от друга, приходилось как-то координировать свои действия. Тогда для этого использовалась обычная сотовая связь. Но, во-первых, ввиду особенности рабочего помещения не всегда обеспечивался качественный прием от операторов, а во-вторых, длительные переговоры часто плохо сказываются на состоянии баланса на телефоне.

Wi-Fi Talkie

Так появилось понимание того, что, имея смартфон, открытую точку доступа в нем и другой смартфон, подключенный к этой точке доступа, можно попытаться реализовать передачу голоса от одного аппарата к другому. Решили сделать некое подобие walkie-talkie, но уже средствами смартфонов. Этим и занялись.

Первые строки кода данного приложения были написаны, если не ошибаюсь, в феврале 11-го года. Тогда начали с простой передачи звука. Разработкой занимались вдвоем с другом, но опыта в работе с сетью у него фактически не было, и поэтому большую часть всего приложения пришлось писать мне, а друг тем временем был занят другими проектами – благо интересных идей (по крайней мере, таковыми они нам кажутся) у нас немало.  При этом способы реализации той или иной фишки мы придумывали вместе, стараясь сделать интерфейс максимально дружелюбным для пользователей, функциональность богатой, а логику работы легко понятной.

И 23 ноября 2011 года мы добрались до публикации в Android Маркете. Описывать все стадии разработки в рамках данной статьи не стану – не тот формат. А вот о том, что в итоге получилось, расскажу подробно.

Звонки внутри сети

Пусть у нас есть некоторая локальная сеть, к которой подключены несколько андроидфонов. Такой сетью может являться сеть Wi-Fi точки доступа, VPN сеть, или даже подсети мобильного интернета сотового оператора. Все телефоны с запущенной Wi-Fi Talkie отображаются в основной вкладке главного окна приложения.

Список устройств

В этом списке цветом иконки отражается статус каждого смартфона: серый  – в сети, красный – не в сети, желтый – входящий или исходящий вызов, зеленый – активный разговор. Позвонить можно либо с помощью вызова меню через продолжительное нажатие на нужный элемент в списке, либо с помощью более удобных Quick Actions элементов, вызываемых кликом по иконке.

Процесс установления соединения между телефонами мы сделали похожим на обычный звонок. Поэтому после вызова со стороны звонящего на экране сопряженного телефона появляется такое окно:

Входящий звонок

Потянули левую иконку вправо – приняли вызов, потянули правую влево – отклонили звонок. Все просто, как в стандартной гугловской звонилке. А затем уже начинается разговор. Одновременно можно вести общение сразу с несколькими людьми – ограничений никаких нет. При поднесении телефона к уху экран потухает, позволяя сэкономить батарею и избежать случайных нажатий на экран (данная функция отключаема в настройках).

Обмен сообщениями

В процессе разработки нам показалось логичным добавить в приложение своеобразную аську (хотя тут, скорее, надо IRC вспомнить) для общения внутри сети. Присутствуют как личные сообщения, так и чат. Личные сообщения вызываются кликом по элементу из списка устройств, а под чат у нас выделена отдельная вкладка. Все просто, и, по идеи, здесь проблем у пользователей быть не должно.

Личные сообщенияЧат

Передача файлов

Идея с добавлением функции обмена файлами возникла не сразу, однако, как сейчас можно судить, данная «фишка» завоевала немалую популярность у пользователей программы. И это при том, что изначально, была реализована функция передачи файлов исключительно поодиночке. В нынешней же версии, которая появилась буквально с неделю назад, функционал в области передачи файлов несколько расширен: сейчас можно слать не только сразу несколько файлов, но и папки целиком.

Итак, для того, чтобы послать нужные нам файлы и папки, используем либо уже знакомые Quick Action, либо контекстное меню (всё как и в случае со звонком).

Контекстное меню

После этого мы попадаем в файловый браузер, в котором нам и нужно выбрать те файлы и папки, которые мы хотим отправить.

Файловый браузер. Отправка

Следует сказать, что при продолжительном нажатии на файл или папку, появится контекстное меню, которое позволит быстро переименовать или удалить конкретный элемент.

Как только файлы выбраны, нажимаем на кнопку «Отправить». Получатель наших файлов тут же увидит окно, схожее по принципу работы с приемом звонка. Только на этот раз нужно иконку с дискетой перетянуть либо в наш телефон, либо «выкинуть» подальше.

Входящие файлыФайловы браузер. Получение

В случае выбора первого варианта мы попадем в уже знакомый файловый браузер, в котором теперь придется выбрать путь для сохранения.

Передача файлов относительно быстрая. Иной раз может доходить до 2-2,5 МБ/сек.

Настройки

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

Настройки 1Настройки 2

Однако скажу, что здесь можно настроить такие параметры как имя устройства в сети, мелодии для входящих звонков, файлов и сообщений, язык приложения, качество передаваемой речи, сетевой порт, который «оккупирует» программа. Отдельно стоит упомянуть пункт «Тестовый режим», который позволяет программе общаться самой с собой (может пригодиться в настройке, да и просто в освоении программы). Также в настройках имеется раздел «Дополнительные подсети», где можно задавать дополнительные сети, в которых требуется работа устройства.

Бесплатная и платная версии

Наша программа распространяется в Android Play Маркете в виде бесплатной и платной версий. Первая имеет рад ограничений:

  1. Исходящие вызовы длятся не дольше одной минуты. Только исходящие! С платной версии на бесплатную разговор не ограничен.
  2. С бесплатной версии на такую же бесплатную можно отправлять файлы размером не больше двух мегабайт и суммарным объемом, не превышающим 20 МБ за раз. Обмен файлами между платной версией и бесплатной ограничений полностью лишен.

Заключение

Подводя итог, хочется сказать, что приложению есть куда развиваться. Это и качество передаваемого звука, которое на ряде устройств, мягко говоря, оставляет желает лучшего, хотя на многих все идеально. Это и новые фишки, которые постепенно постараемся реализовать. В общем, работы как всегда много, а времени на все это мало. Мы не намерены останавливаться на достигнутом и будем продолжать развивать наш Wi-Fi Talkie.

Ссылки

Wi-Fi Talkie

Wi-Fi Talkie — $1.99

Wi-Fi Talkie Lite - Бесплатно

Wi-Fi Talkie Lite — Бесплатно

Play Market Web Free Version

Play Market Web Paid Version

Читайте также