Здравствуйте, дорогие Хабровчане!
Продолжая тему выбора среды разработки ПО, а конкретно Delphi XE6, затронутой нами в предыдущей публикации, считаем своей обязанностью перейти сразу к демонстрации того, что можно сделать, используя возможности этого языка программирования, таланта разработчиков и платформы Firemonkey.
Сразу оговоримся, в этом посте не будут освещаться проблемы разработки, тем более, что об этом вы сможете узнать из интервью руководителя отдела разработки нашей компании Алексея Глызина, которое у него взял известный среди разработчиков на Delphi блогер — Александр Божко. Мы познакомим вас с результатом, которого добились, используя Delphi XE6. Итак, начнем.
Под катом вас ждет подробное описание функционала, анонс реализованных в коде возможностей, GUI, полезные фичи, планы на будущее и многое другое…
ВНИМАНИЕ! Много скриншотов!..
«Sphere Live» — это бесплатная мультиплатформенная система организации видеоконференцсвязи с неограниченным количеством участников в форме симметричных и ассиметричных лекций с интегрированной биллинговой системой, функциями файлообмена и облачного хранилища, а также защитой информации о пользователе (переписка, отправленные и переданные файлы, видео- и аудиообщение).
На кого ориентирован наш продукт?
Проект Sphere Live ориентирован на самую широкую аудиторию пользователей, как на обычного пользователя, который все время «на связи», так и на бизнесмена, которому нужно проводить конференции и совещания удаленно, контролировать работу сотрудников «вне офиса» посредством функций демонстрации рабочего стола и удаленного доступа к камере, как на студента заочника, который выбрал формат дистанционного обучения, так и на любого преподавателя, консультанта, блогера.
Проект реализовывался «для себя», и мы хотели решить следующие задачи:
— обеспечить качественную и надежную связь во время аудио/видео вызова;
— организовывать групповые видеозвонки;
— иметь инструмент для отправки сразу нескольких файлов с не лимитированным объемов информации неограниченному количеству адресатов на максимально возможной скорости;
— «расшаривать» файлы;
— иметь полноценную историю всех типов звонков и сообщений, отправленных и переданных файлов;
— интегрировать переводчик в чате для общения на разных языках;
— быть уверенным, что никто не получит доступ к переданной мной информации, даже разработчик софта;
— знать, что никто не прослушает ваш разговор;
— создать инструмент для проведения взаиморасчетов внутри самой программы с целью организации платных аудио/видеозвонков, чтобы упростить задачу сбора средств и уменьшить вероятность неоплаты за оказанные услуги: индивидуальные и групповые консультации, лекции и т.д.;
— возможность передачи и просмотра любых файлов на мобильных устройствах;
— обеспечить работу с файлами только в программе, чтобы максимально сохранить у автора его права;
— сэкономить трафик для пользователя за счет уникальной технологии передачи аудио/видеопотоков и файлов;
— организовать удобное и надежное хранилище с неограниченным объемом.
Это лишь небольшой список задач, который мы уже решили на уровне кода. Реализацию отдельных задач в интерфейсе, мы как раз и хотим вам сегодня продемонстрировать. Остальные функции и реализованные задачи будут появляться в каждой новой версии, которую мы планируем выпускать еженедельно с подробной историей изменений и обзором на Хабре в нашем блоге и на сайте.
Принцип реализации конфиденциальности в Sphere Live
Перед демонстрацией, мы хотим сказать несколько слов о том, каким образом мы решили задачи конфиденциальности, т.к. это один из самых обсуждаемых в сети вопросов.
Во-первых, обеспечить полную конфиденциальность от «3-х лиц» нам удалось на уровне архитектуры клиент-серверного приложения. Нет никакого доступа к базе данных. Его просто не существует «из вне». Клиентское приложение не получает никакого доступа к БД. Оно лишь «общается» с сервером. А сервер, в свою очередь, используя контроллеры и специально разработанный интерпретатор, оперирует с данными пользователя: переписка со своими контактами, отправленные/переданные им/ему файлы, доступ к своему профилю и содержащейся в нем информации. В общем организацией всего занимается сервер, а точнее — сервера. Поэтому утечка информации возможна лишь в том случае, если пользователь предоставил логин и пароль «3-му лицу». Однако и в этом случае мы предусмотрели в архитектуре системы дополнительные опции для защиты. В случае утери логина и пароля программа будет Вам сообщать об авторизации новых неизвестных устройств, в т.ч. и SMS-сообщениями и сообщением на e-mail, и позволять блокировать их.
Во-вторых, для защиты информации от разработчика, мы интегрировали такую «фичу» как дополнительное шифрование информации — это касается как файлов, так и режимов общения в чате и в сеансе аудио/видеозвонка.
Одним из элементов защиты от прослушивания является особенность разработанного нами протокола передачи аудио/видео:
мало того, что для подключения к «беседе» необходимо не только знать все протоколы и принципы работы ПО, но и невозможно подключиться к разговору незамеченным, т.е. участники разговора всегда смогут понять, что к ним кто-то подключился, так как добавиться еще один «участник», иначе подключиться к разговору просто нельзя.
Физическое вторжение и изъятие информации из файлового хранилища тоже ни к чему не приведет, иными словами, если вы перед отправкой зашифровали файл (допустим сами), а потом еще использовали встроенный в нашей программе инструмент, то прочитать этот файл просто нереально. Недостаточно знать — кто и когда отправил файлы. Недостаточно даже знать логин с паролем пользователя, чьи файлы вы хотите получить. Как мы описали выше, архитектура приложения и всей системы предусматривает и такой вариант: вам не только будет сообщено о попытке авторизации с неизвестного Вам устройства, но и обо всех действиях данного клиента (данная опция нами уже реализована и сейчас проходит этап тестирования. В нашей программе она появится в ближайшее время). Кроме того, уникальная система хранения файлов позволяет иметь доступ к файлам только клиентам, которым данный файл принадлежит.
На этом пока и остановимся, а то у вас не хватит терпения дочитать нашу статью до конца (очень уж объемная получится).
Обращаем ваше внимание, что в этой статье не содержится информации о конкурентных преимуществах программы и пиара (это будет чуть позже). Цель данной статьи узнать ваше мнение о нашем приложении и получить обратную связь.
Начало: где скачать, как установить, запуск приложения
В настоящий момент мы тестируем новые сервера, и возможны отключения клиентского приложения. Понять, что произошло отключение, вы сможете если заметите следующее: не приходят сообщения или ваши сообщения не доходят до адресата, не можете сделать звонок или вам не могут дозвониться, в процессе авторизации не определяется ваш логин, файлы не отправляются или не приходят. Данные ситуации кратковременны, но для возобновления работы приложения, его необходимо перезапустить. Приносим свои извинения за доставленные неудобства в бета-версии нашего ПО. Мы планируем закончить работы по тестирования новых серверов до конца августа.
Стоит отметить, что наша работа никак не скажется на ваших текущих звонках, независимо от того — аудио/видео звонки это или конференции. Разработанная нами архитектура и протоколы системы позволяют приложению автоматически восстанавливать текущие звонки и участие в конференциях/лекциях, в том числе и после отключения и восстановления сети Интернет.
Для установки и запуска приложения вам достаточно посетить наш сайт www.sphere-live.com и нажать кнопку «Загрузить». Будет загружен инсталлятор ПО соответствующий вашей операционной системе. На данный момент приложение нельзя установить для Mac OS X Mavericks, поэтому придется подождать следующего обновления (((.
Для Windows
Запустите файл InstallSphere.exe и пройдите процесс установки (это займет у вас несколько секунд, если вы, конечно, не станете изучать лицензионное соглашение).
Для Android
В папке «Download» вы найдете дистрибутив InstallSphere.apk, который вам нужно запустить. После установки у вас появится ярлык SphereLive в разделе «Меню». Запускайте!
Да, процесс установки разный, но дальше все идентично и для Windows, и для Android, и для Mac OS.
Первый запуск
Вы видите стандартное приветственное окно программы (Рис.1), где можно выбрать язык интерфейса (русский или английский, другие языки мы будут появляться в программе по мере их добавления нами). Идем дальше и нажимаем кнопку «Продолжить».
Перед вами выбор: зарегистрироваться или залогиниться (Рис.2), поэтому если вы впервые запускаете наше приложение, тогда вам в раздел «Регистрация», ну а если вы уже пользовались программой, тогда вы сами знаете, что делать дальше. )))
Процедура регистрации максимально упрощена для удобства пользователя. Вам нужно придумать никнейм/ник/логин на латинском языке длиной более 6 символов, придумать пароль и последовательно ввести его дважды. Далее ввести реальный e-mail, иначе при утере пароля вам придется регистрироваться заново. Прочитайте пользовательское соглашение, поставьте галочку и нажмите на кнопку «Регистрация». (Рис.3)
Обзор интерфейса.
Интерфейс.(Рис.4)
Давайте познакомимся со всеми панелями интерфейса.
1. Основное меню.(Рис.5) Активны (в текущей реализации) только следующие разделы: профиль, поиск и добавление контактов, настройки, выход из учетной записи и выход из программы.
2. Информация о пользователе. (Рис.6)
Здесь вы можете изменить статус, проверить/пополнить баланс (1) (об этом мы расскажем в следующих версиях, в процессе подключения данных опций) и перейти в раздел «Детальная информация». (2)
(2) Детальная информация (Рис.7).
В этом разделе вы можете:
— указать свой номер мобильного телефона, чтобы пользователи, которые внесены в список ваших контактов, смогли отправлять вам SMS из программы, не вводя ваш номер телефона;
-сменить аватар, выбрав его из своего архива или сделав фото с камеры.
3. Горячие клавиши: аудиовызов, видеовызов, открыть чат (активны при выделенном контакте). (Рис.4)
4. Список контактов (ниже описание контекстного меню в этом разделе). (Рис.4)
5. Списки контактов. (Рис.4)
6. Окно вывода информации (для настроек и чата, в ОС Android эти окна открываются в случае вызова соответствующих разделов и функций)… (Рис.4)
Прежде чем перейти к рассмотрению основных функций программы, позволим себе «пробежаться» по разделу «Настройки» без дополнительного описания, т.к. содержимое этих разделов интуитивно понятно любому. (Рис.4)
а) Основные. (Рис. 4)
б) Интерфейс. (Рис.8)
в) Аудио. (Рис.9)
г) Видео. (Рис.10)
д) Видеонаблюдение. (Рис.11)
Здесь мы задержимся, т.к. данные настройки не являются стандартными. Видеонаблюдение организовано по принципу удаленного доступа, поэтому если вы хотите, чтобы ваш собеседник (только тот, кто авторизован в вашем списке контактов) мог в любой момент увидеть вас, то нужно активировать эту функцию, «включив тумблер», далее ввести дважды пароль и, выбрав из своего списка пользователей, добавить их в список разрешенных контактов. «А как использовать эту функцию?» — «Читайте дальше!»
е) Файлы
ж) Переводчик.
Функции
В этом разделе мы рассмотрим все возможные (в данной версии) функции, но сначала нам необходимо обзавестись «друзьями»/контактами. Для этого мы можем использовать «основное меню» или же воспользоваться панелью «управления списками контактов», кликнув на соответствующую кнопку.(Рис.12)
Если вы «одиноки», а также хотите внести свой вклад в развитие проекта Sphere Live, рекомендуем вам ввести в строке поиска следующее имя — support и отправить запрос на добавление в список контактов. (Рис.12)
После подтверждения сотрудником техподдержки вашего запроса, контакт support авторизуется у вас в списке контактов.
Теперь мы можем перейти непосредственно к тестированию основных функций. Для этого вам необходимо выделить контакт и правой кнопкой мыши кликнуть по нему (для Android и девайсов, поддерживающих функцию тачскрин, необходимо выделить контакт и удерживать «LongTap»), чтобы вызвать контекстное меню, в котором отображены все функции. (Рис.13)
1. Отметки. Данная функция позволяет выделить контакты для выполнения групповых команд.
2. Открыть чат. Эта функция открывает чат с выбранным контактом (функции и интерфес чата мы рассмотрим ниже). (Рис.14)
3. Звонок. Аудиозвонок контакту. (Рис.15)
4. Видеозвонок. Видеозвонок контакту. (Рис.16)
5. Звонки. (Рис.17)
Данный пункт содержит субменю: Звонки на мобильный телефон и Видеонаблюдение.
Звонок на мобильный телефон возможен только для устройств под управление ОС Android при условии, что контакт, которому вы хотите позвонить указал свой номер телефона у себя в профиле. ВНИМAНИЕ! Звонок совершается с использованием вашего сотового оператора по действующему тарифу на мобильный телефон контакта.
Видеонаблюдение. Для того, чтобы воспользоваться этой функцией, ваш контакт должен быть добавлен в список контактов пользователя, к которому вы подключаетесь, которым разрешен удаленный доступ к камере. Кроме этого вы должны знать пароль доступа к камере этого контакта, который необходимо ввести в появившемся окне.
6. Отправить файлы. (Рис.18) Данная опция временно не доступна для ОС Android.
В панели отправки файлов можно добавить неограниченное количество файлов (1), но с ограничением в 200 МБ (суммарный объем упакованных/сжатых файлов), а также добавить в рассылку других адресатов (2) из своего списка контактов.
7.Отправка. (Рис.19)
Субменю включает в себя две активные функции: Отправка e-mail (1) и Отправка SMS (2).
8. Информация о контакте.
9. Контакт. Данный пункт меню включает в себя субменю управления контактами: «В избранное», «Удалить из избранного», «Переименовать контакт», «Удалить контакт».
Интерфейс чата
1. Окно отображения отправленных/принятых текстовых сообщений.(Рис.20)
2. Панель ввода текстовых сообщений с контекстным меню редактора.(Рис.20)
3. Панель идентификации собеседника.(Рис.20)
4. Горячие кнопки (аудиозвонок, отправка файла, смс, отправка e-mail).(Рис.20)
5. Период отображения истории чата.(Рис.20)
6. Переводчик. (Рис.20)
Здесь можно выбрать с какого языка на какой переводить переданные и принятые тестовые сообщения.
Анонс до 31.08.2014 г.
Мы планируем подключить большую часть реализованного нами в коде функционала, а именно:
— настройки качества аудио и видео;
— видеоконференция с неограниченным количеством участников (ограничение на уровне железа и пропускной способности интернета);
— ассиметричная видеоконференция;
— групповой чат;
— история звонков, принятых и преданных файлов, групповых чатов;
а также:
— оптимизация GUI под планшет;
— светлый скин;
— выпустить версию для Mac OS X.
Следующая публикация будет посвящена обзору обновлений и новых фич, конкурентных преимуществ, а также мы расскажем о том, какие мы преследовали цели и кто наш клиент, какой смысл мы вкладываем в понятие «конфиденциальность», и чем это понятие отличается от прочих маркетинговых ходов.
Все комментарии (замечания, пожелания, рекомендации, жесткая конструктивная критика) пишите в личку или по следующим контактам:
e-mail: support@sphere-live.com
Sphere Live: support (только предварительно добавьте нас в список контактов)
В завершение небольшое задание для тех, кто любит подарки и наделен талантом исследователя: найдите в приложении фичи, которые не опубликованы в статье и получите VIP-аккаунт с расширенным функционалом и увеличенным файловым хранилищем. Результаты публикуйте в комментариях.
До встречи в новых публикациях!
P.S. несколько Android скринов:
Автор: SphereLive