Что же такое FireMonkey?

Я являюсь разработчиком на FireMonkey на протяжении последних 3-х лет, до этого деятельность была связана с классическим Delphi VCL. Сейчас возникло желание написать данную статью и поделиться с вами своим опытом.
Все началось с выходом версии RAD Studio XE5 в 2013 году, когда появилась поддержка всеми любимого Android и FireMonkey обеспечил реальную поддержку кроссплатформенности. За это время было реализовано множество проектов и нетривиальных задач, в основном связанных с нативными (родными для конкретной платформы) плюшками, которые на тот момент не поддерживались из коробки. Также была изучена структура движка изнутри, т.к. часто возникали сумасшедшие ошибки без малейшего намека на информативность и приходилось изучать исходники.

 

Что же такое FireMonkey?


FireMonkey (FMX) — фреймворк для кроссплатформенной разработки как  для  настольных систем (Windows, Mac OS + в ближайшем будущем планируется поддержка серверной части на Linux),  так и мобильных (iOS и Android) с использованием языка Delphi/C++.

 

Особенности:

 
  • единая кодовая база для всех платформ;

  • любой контролл (визуальный компонент) может быть контейнером (родителем)  для других компонентов;

  • наличие очень продвинутого относительного расположения (20 типов)  компонентов на форме;

  • LiveBinding позволяет подключать любые типы данных или информации к любому пользовательскому интерфейсу или графическим объектам;

  • наличие стилей формы/компонентов;

  • Multi-Device Preview позволяет настроить визуальное представление для каждой из платформ;

  • FireUI Live Preview -— отображение вида приложения на реальных устройствах в режиме реального времени.

Возможности:

 
  • использование нативного API каждой из платформ, также возможность вызов сторонних родных библиотек;

  • взаимодействие со всеми датчиками (GPS, Accelerometer, Compass, Bluetooth (включая LE) и другие);

  • поддержка push уведомлений, IoT;

  • поддержка асинхронных HTTP запросов;

  • поддержка большинства баз данных (MsSQL, MySql, Oracle, PostgreSQL, MongoDB и др.);

  • работа с Cloud Service (Amazon, Azure);

  • поддержка Android Service.

Минусы (на текущий момент):

 
  • отсутствие поддержки кастомизации нативных классов;

  • реализация специфических вещей либо невозможна (виджеты, расширения (iOS) и др) либо необходима пляска с бубном (background service, broadcast message и др);

  • кастомизация  Splash screen (начальный экран) мягко говоря никакая;

  • FMX контролы используют собственный рендеринг (визуализация, отрисовка), который чисто визуально похож на нативный;

  • использование нативных контроллов связано с большими телодвижениями;

  • при большой вложенности компонентов происходят невероятные вещи: приложение крашится в самых различных местах, теряется фокус, зависает и др.;

  • информативность отладки приложения на мобильных платформах нулевая;

  • описание ошибок на мобильных платформах сводятся к бесполезным “Error 0х00000Х”;

  • время компиляции желает быть лучшим для средних и крупных проектов;

  • необходимость использование напильника для доведения до ума мобильных приложений для каждой платформы;

  • отсутствует поддержка Intel Atom архитектуры;

  • неадекватная цена по сравнению с конкурентами.

Плюсы:

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

  • наличие громадного числа бесплатных и коммерческих компонентов;

  • скорость работы приложения очень близка к нативному;

  • очень продвинутый визуальный редактор и среда в целом, наличие стилей;

  • возможность тестировать приложение на Win, и лишь потом разворачивать на устройствах, что очень ускоряет разработку;

  • смена режима/платформы легким движением руки;

  • PAServer обеспечивает легкое взаимодействие с MacOs при разработке для ОС Apple;

  • поддержка 3D графики из коробки.


В заключение хочу сказать, что FireMonkey за последние пару лет вырос в профессиональный инструмент кроссплатформенной разработки бизнес приложений и не только. Многие недостатки постепенно решаются и с каждым релизом продукт становиться все более современным и самодостаточным, также исчезает существующий скептизм к самому языку Delphi, связанный с многолетним застоем. Написание новых проектов на FireMonkey  является “безопасным” и перспективным. 

 


Автор: Короленко Фёдор

 
 
5.

ИНТЕГРИРОВАННАЯ
СИСТЕМА
БЕЗОПАСНОСТИ

6.

БЕСПЛАТНОЕ РЕШЕНИЕ
ДЛЯ ПРОИЗВОДИТЕЛЕЙ
ОБОРУДОВАНИЯ

ЗАКАЗАТЬ ОБРАТНЫЙ ЗВОНОК
Контакты

г. Москва,
ул. Академика Королева, 8а
mail@softacom.ru

Подписывайтесь на наши новости и статьи в социальных сетях:

facebook twitter googleplus