Блог Александра Божко
Архивы
Рубрики
Поделись с другими!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

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

Sphere Live. Desktop Settings Video

Desktop Chat Incoming message

Мой старинный друг и коллега Тагир Юмагузин, уже давно рассказывал о проекте в котором он участвует.  Сейчас же, когда проект вышел на предрелизную стадию, мы решили, что рассказ об этой разработке будет интересен Delphi сообществу. По сути, это реальный большой проект, реализованный на FM. Речь идет о Sphere Live. Небольшая статья, посвященная Sphere недавно была на Хабре. Чуть подробнее, с учетом читательской аудитории моего блога, рассказать о данном продукте согласился руководитель отдела разработки ООО “Сфера Системс”- Алексей Глызин.

А. Б. Алексей, в двух, чем является Ваш проект?

А. Г. Идея проекта возникла не сразу.

До начала работы над проектом SphereLive наша команда работала с проектами, в которых реализованы технологии потокового аудио/видео. Позже мы создали собственное ПО, реализующее раздачу аудио/видео потоков неограниченному количеству пользователей с возможностью обратной связи. Но нам потребовалось прикрутить к нашему ПО биллинг.

Понимая, что данное направление весьма перспективно,  и мир движется в направлении увеличения трафика за счет передачи аудио/видео в режиме реального времени, но при этом явно не хватает определенных инструментов, мы решили создать свое ПО.

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

В процессе разработки архитектуры и самого приложения, мы решили оптимизировать его и под “дистанционное образование”.

Уточним, если возникают вопросы о том, что подобных систем уже “море”. Мы предлагаем пользователям нашего ПО уникальные функции. Это, в первую очередь, касается всех “платных” режимов. Пользователи могут давать платные консультации, организовывать платные конференции, лекции и т.д. Ограничений практически нет, за исключением, конечно, аппаратных возможностей.

Наши “фишки” – это еще собственные протоколы, в т.ч. передачи аудио/видео, уникальная система приема/передачи файлов, экономия трафика пользователя, переводчик в чате и многое другое.

Desktop LoginMobile Login

А. Б. И это все полностью реализовано на Delphi?

А. Г. Практически все реализовано на Delphi. Есть несколько библиотек, реализованных на C. Ввиду того, что приложение должно работать на разных платформах, несколько Open-source библиотек скомпилированы отдельно под разные платформы. Все остальное, а это практически более 95%,  Delphi.

А. Б. А почему именно Delphi? На выбор среды разработки повлиял успех Skype?

А. Г. Когда мы создали UML-модель проекта, то стало очевидно, что проект Sphere Live очень большой, если не сказать мега-большой! Более 200 модулей!

Наш многолетний опыт показал, что оптимальным, для реализации столь серьезной задачи, является  Delphi.

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

В любом случае, мы смогли избежать множество ошибок  остановившись на Delphi в качестве основного языка разработки.

Тем более в большинстве случаев Delphi под силу реализация любой задачи. Скорость компиляции — на высоте.

Объем получаемого на выходе «бинарника» оптимален, несмотря на все отклики в сети о том, что он «слишком большой». Поверьте, мы знаем, о чем говорим.

Что касается Skype и многих других продуктов, созданных на Delphi, их успех повлиял отчасти, но все дело в простоте и понимании нами Delphi.

Согласитесь, когда объем всего кода намного превышает цифру «с шестью нулями», то достаточно сложно работать с этим кодом, проводить рефакторинг, обучать новых сотрудников, вносить изменения. И здесь уже не до рассуждений на каком языке писать, надо писать на том, который знаешь лучше всего и умеешь с его помощью решать нестандартные и, порой, невыполнимые задачи. И это еще не говоря о коде сторонних компонентов, ведь нам иногда приходится править исходники и Delphi, из-за специфики некоторых задач нашего ПО.

А. Б. Какие версии Delphi использовались?

А. Г. В реализации последней версии нашего ПО, мы использовали Delphi начиная с XE2.

По мере выхода новых версий – быстро переводили проект.

А. Б. Скины тоже “родные” или использовали сторонние средства силизации приложений?

А. Г. За основу мы взяли “родные” скины. Но ввиду того, что они не реализуют того объема необходимых нам элементов и не очень хорошо оптимизированы, пришлось очень серьезно их переработать. В итоге все переделки скина вылились в то, что получился собственный скин частично схожий с “родным”.

Mobile Settings Video

А. Б. Использовали ли вообще компоненты сторонних производителей?

А. Г. Да, использовали.  Это библиотека сетевых компонентов – RTC (RealThinClient SDK).

Временно мы используем Mitov VideoLab. В самой первой версии нашего ПО, которое было создано только под Windows и с ипользованием VCL, мы активно использовали Mitov AudioLab и VideoLab. Но для разработки кросс-платформенной версии нам пришлось создать собственные модули для работы с аудио и видео. И сейчас у нас есть полностью свои модули, однако при работе с видео под Windows нам приходится использовать VideoLab (до окончания отладки модулей).

Также, мы используем для работы со звуком известную библиотеку BASS.

А. Б. Вообще, отсутствие для FM такого широкого спектра сторонних компонентов, как для VCL это проблема на Ваш взгляд?

А. Г. Нет, это не проблема. Вся прелесть FMX в том, что создание собственных компонентов — достаточно простая задача. Конечно, все относительно, но в целом создание визуальных компонентов намного проще чем в VCL. Все дело в том, что именно позволяет технология Firemonkey.

Для GUI, мы использовали только FMX-контролы.

В нашем случае важно было использовать одни компоненты под все платформы. Поэтому, создавая компоненты нам было важно, что они будут работать везде, и на Windows платформе и на MacOS и в Android и в iOS.

Стоит отметить, что в планах Embarcadero “экспансия” на другие платформы, а это значит нам практически ничего не придется делать для переноса своего продукта на новые платформы в будущем.

В итоге, мы пришли к выводу, что гораздо проще создавать собственные контролы, чем искать те, что устраивают нас.

А. Б. А есть компоненты собственной разработки?

А. Г. Да, конечно есть. И мы будем рады кое-чем из них поделиться. Кроме того, по мере рефакторинга, мы будем оптимизировать разработанные нами компоненты, и некоторые из них будем публиковать для тех кому это будет интересно или полезно в своих разработках.

Так что в ближайшее время мы их выложим. Вот, кстати, у Вас бы в блоге и разместили. И с удовольствием обсудили бы их с сообществом.

А. Б.  Для меня это приятный сюрприз! И что это за компоненты?

А. Г. В процессе разработки ПО потребовалось создать компоненты, работающие под все платформы.

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

Еще пример – аналог TImage, но с возможностью необходимого пропорционального масштабирования.

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

Компоненты унаследованные от TListBox и TTreeView, поддерживающие расширенные функции Drag&Drop.

Думаю, что многим интересна будет публикация наших компонентов.

А. Б. Вы объявили о начале разработки мобильных клиентов в сентябре прошлого года. Сегодня мы видим рабочий мобильный клиент для Android  и, насколько я понимаю, скоро будет iOS. Каков процент совместно используемого кода?

А. Г. Как ни странно, несмотря на вышеперечисленные “отступления” от единого кода, процент совместного кода превышает 90%. Думаю, не ошибусь, если скажу, что скорее даже больше 95%.

Но это после последнего рефакторинга :)

Есть модули, которые принципиально отличаются. Но мы и их “обернули” своими модулями, для того чтобы код стал единым. В итоге, например, работа с микрофоном или веб-камерой под Windows ничем не отличается от работы под Android или MacOS. Мы говорим именно о коде.

Т.е., например, если я пишу

TMediaDevices.VideoManager.CurrentVideoCaptureDevice.StartCapture

то этот код включит камеру на любой платформе.

А. Б. Был ли у Вашей команды опыт мобильной разработки до этого?

А. Г. Нет. Это наша первая разработка под мобильные платформы. И естественно мы очень хотели создать продукт, который был бы практически не отличим на десктопе, планшете и на мобильнике не только в плане интерфейса, но и по функционалу. Надеюсь, что пользователь оценит наши старания и поможет нам усовершенствовать наше приложение.

А. Б. Какие были основные трудности в использовании «Платформы FM»?

Сложно с ходу ответить на этот вопрос.

Трудностей было много. Мы ведь начали разработку версии под разные платформы еще с Delphi XE2. Давайте попробую ранжировать все трудности (смеется).
На первом этапе возникли сложности в понимании самой технологии. Это сейчас появилось достаточное количество сайтов и вообще информации с описанием FMX и ее особенностей (книги, блоги, форумы, сообщества). Теперь уже проще начинать проекты с использованием технологии Firemonkey.

Поэтому основная проблема – это отсутствие информации, описывающей и технологию и ее особенности.

Проблема, связанная с разработкой ряда мультимедиа модулей и компонентов, реализующих индивидуальные особенности платформ. Это относится и к работе приложения «в фоне».

Был ряд проблем с реализацией некоторых элементов GUI, в том числе — со скоростью работы самой GUI. Однако, стоит отметить, что в Delphi XE6 компания Embarcadero проделала очень серьезную работу над собственными ошибками и «багами», чем нас всех очень порадовала.

А. Б. Планируете дальнейшее функциональное развитие продукта?

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

А. Б. Что бы Вы посоветовали тем, кто только начинает знакомиться с мобильной разработкой в Delphi?

А. Г. Не бояться экспериментировать! Не бояться ничего нового. Создавать и создавать.

Мы взялись за разработку мобильной версии не имея опыта создания мобильных приложений вообще. И вообще, мы прошли очень тернистый путь до сегодняшнего дня. Но давайте оставим право повествования Success story нашему менеджменту (смеется), поверьте – это будет что-то из разряда “миссия невыполнима”.

Очень рекомендуем внимательно следить за блогами, форумами, где обсуждается разработка на Delphi с использованием FM. Те обсуждения и примеры, которые приводятся на данных ресурсах, помогут понять основные принципы и особенности технологии FM. Не будем утверждать за всех, но думаем, что вы там найдете и понимание, и помощь.

Delphi


Поделись с другими!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

1 комментарий: SphereLive. Наглядная демонстрация возможностей платформы FM.

  • У вас на сайте, слишком узкие боковые колонки. В статье больше одного слова в строчку влазит.

Оставить комментарий

Ваш email не будет опубликован. Обязательные поля отмечены *

Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Купить Delphi в Украине

Лицензирование Delphi и других продуктов компании Embarcadero на территории Украины у авторизованного реселлера, компании DC Link (Харьков).

  • квалифицированные консультации;
  • честная цена;
  • подписка Blase Pascal Magazine в подарок.

Тел. +38 (066) 718 40 95; +38 (098) 045 23 27

e-mail: info@delphixe.com.ua

icq: 798-256

Skype Name: alexbozhko

Продукты DevArt
Купить онлайн:



Читай русскоязычные Delphi блогиVisual Studio, .Net, Silverlight, Azure, Sharepoint
Каталог блогов Blogdir.ru
Яндекс.Метрика