Среда разработки мультиплатформных приложений Delphi XE5
Д.А. Арсентьев,
ассистент кафедры ИВТиАМ,
П.С. Пашков,
студент кафедры ИВТиАМ
В последнее время, на рынке разработки программного обеспечения ведущие позиции начинает занимать разработка для мобильных платформ.
При этом возникает необходимость разработки мультиплатформных приложений как мобильных, так и настольных. Современные бизнес-решения требуют возможности управления проектом с любого устройства, практически из любой точки мира. Такие тенденции приводят к созданию мультиплатформенных сред разработки, иными словами, такие среды позволяют (используя один и тот же исходный код, или код с минимальными изменениями) использовать для создания приложений на разные платформы устройств.
Одним из первых кросплатформенных решений стала технология FireMonkey, созданная разработчиками фирмы Embarcadero и встроенная впервые в среды разработки Delphi XE2 и C++ Builder XE2.
Первая версия FireMonkey позволяла из одного исходного кода создавать «нативные» приложения для Windows,MACOSX и iOS.
Следующим этапом развития платформы, которая вышла под названием FireMonkey 2.0, в составе Embarcadero RadStudio XE3, стала возможность создания приложений для Windows 8, используя интерфейс Metropolitan UI.
В мае 2013 года состоялся выход EmbarcaderoRadStudioXE4 поддерживающий FireMonkey 3.0. Данная технология позволяла создавать приложения под все выше упомянутые платформы. Основным нововведением стала возможность выбора разрешения в процессе запуска приложения в зависимости от устройства, на котором оно запускалось. Иными словами, одно и то же приложение стало возможно
12
использовать как на iPhone, так и на iPad, при этом учитывая особенности размера и разрешения дисплея каждого отдельного устройства.
Однако, окончательно, мультиплатформенной средой разработки стала, на данный момент, последняя версия Delphi RadStudio XE5, увидевшая свет в сентябре 2013 года. Технология FireMonkey, была переименована в FM и обзавелась возможностью создания приложений в «нативном» дизайне для Android и iOS используя единый унифицированный код. Теперь, при сборке приложения компилятор автоматически снабжает приложение необходимыми стилистическими библиотеками, в зависимости от указанной разработчиком конечной платформы.
В настоящее время данная технология, единственная, которая позволяет создавать «нативные» приложения под мобильные платформы, которая не использует при построении сторонние Framework. Иными словами, данные приложения запускаются на конечном устройстве, не требуя от пользователя установки каких-либо сторонних оболочек, драйверов и сред работы с данными.
FM предоставляет разработчикам возможность создания приложений, которые одинаково корректно работают на любой платформе, при этом, не требуется проводить отладку на каждом отдельном устройстве.
Основным достоинством данной технологии является то, что разработчикам предоставляется возможность работать в одной среде разработки, писать приложения на одном языке программирования (Delphi или C++), и при этом получать приложения для всех наиболее популярных систем. Используя данную среду разработки не требуется отдельно устанавливать, настраивать и разбираться в компонентах и принципах использования всевозможных SDK различных платформ.
Конечно, в связи с унифицированостью, возникает один непреодолимый минус данной технологии - размер конечного приложения. При сборке приложения компилятор автоматически дописывает в инсталятор все необходимые компоненты и библиотеки, которые могут понадобиться операционной системе при развертывании данного приложения на конкретном устройстве, однако, мощности современных устройств и имеющиеся объемы памяти делают этот минус незначительным, по сравнению с удобством разработки и отладки приложений.
FM позволяет создавать полнофункциональные приложения, ограничения в функционале которых, связано лишь с возможностями конечных платформ.
FM дает разработчику возможность проектировать приложения привычным образом, не отвлекаясь на проработку дизайна оболочки под конкретную платформу. При создании приложения среда автоматически стилизует вид элементов управления под конкретную платформу, однако, выше сказанное не означает невозможность созда-
13
ния приложений с собственным дизайном. Разработчик может самостоятельно создавать новые и редактировать имеющиеся шаблоны стилей оформления, в зависимости от требований заказчика.
Так же основным достоинством DelphiXE5 является поддержка VCL, пусть и не в полной мере для мобильных приложений.
Рассмотрим основные возможности данной технологии и принципы работы в среде Delphi RadStudio XE5, применительно к самым распространенным мобильным ОС.
В качестве демонстрационного проекта разработаем программу «Фонарик».
Создадим новый проект FireMonkey Mobile application. Среда разработки позволяет выбрать необходимое основное разрешение, конечное устройство и платформу, под которую будет производиться сборка приложения.
Зададим дизайн приложения. Хочется обратить внимание на то, что визуальный дизайн приложения создается со свойственной для всей линейки Delphi простотой. Дизайн показан на рис. 1.
Рис. 1. Дизайн приложения «Фонарик»
Для упрощения проекта ограничим возможности поворота экрана, и установим тип устройства - телефон (рис. 2).
14
Рис. 2. Ограничения на поворот экрана
Далее переходим к непосредственному созданию логики приложения. Данное приложение позволяет нам использовать вспышку фотокамеры в качестве фонарика, горящего постоянно или только при удерживании индикатора.
Перейдем непосредственно к написанию кода приложения. В листинге 1 указаны все необходимые модули, подключаемые в данном приложении.
Листинг 1. Модули приложения «Фонарик».
uses
System.SysUtits, System. Types, System.UITypes, System.C/asses, System. Variants, FMX. Types, FMX. Graphics, FMX. Controls, FMX.Forms, FMX.Dia/ogs, FMX.TabControl, FMX.StdCtrls, FMX.Gestures, FMX.Media, System.Actions, FMX.ActnList, FMX.Ani, FMX.Colors, FMX.Objects;
В листинге 2 показана часть кода приложения. Хочется отметить, что код не сильно отличается от того, который был привычен разработчикам среды Delphi,начиная с первой версии этого приложения.
Листинг 2. Код приложения «Фонарик».
procedure TTabbedForm.Action1Execute(Sender: TObject);
begin
if tabControli.ActiveTab=Tabltem1 then
begin
15
if Cam Torch. TorchMode=ttorchMode. tmModeOff then begin
Cam Torch. Active:=true;
Cam Torch. TorchMode:=ttorchMode. tmModeOn;
Co/orButton 1. Color:=TAIphaColor($9A CD32); end else
ShowMessage('Torch has already On);
end;
end;
После написания кода можно произвести запуск приложения на выбранном устройстве.
Delphi XE5 от Embarcadero позволяет быстро и достаточно легко создавать различные приложения для различных мобильных и настольных платформ. Наблюдается активное развитие языка программирования, который многими разработчиками считался умирающим. Delphi развивается и перенимает некоторые методы и функции из технологии Net.
На данный момент это единственное решение, которое позволяет создавать мультиплатформенные приложения, не сильно изменяя логику самого приложения.
Единственным значимым недостатком данного пакета, является цена продукта. Однако, если рассмотреть перспективность данного направления, этот недостаток многим может показаться не критичным.
16