Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Разберём, за счёт чего это достигается.
FireMonkey (FMX) — кроссплатформенный фреймворк
Если VCL привязан к Windows API и подходит только для классических десктопных приложений, то для кроссплатформенной разработки в Delphi используется фреймворк FireMonkey. Он предоставляет собственный набор визуальных компонентов и собственный движок отрисовки интерфейса, не зависящий от нативных элементов управления конкретной операционной системы — это и позволяет одному и тому же приложению работать на Windows, macOS, Android и iOS с минимальными правками кода под каждую платформу.
Единая кодовая база
Основная идея FireMonkey — написать бизнес-логику и интерфейс один раз, а затем скомпилировать проект под нужные платформы с помощью соответствующих компиляторов и платформенных SDK. Под капотом Delphi использует собственные компиляторы для разных целевых платформ, которые превращают один и тот же исходный код Object Pascal в нативный машинный код для Windows, macOS, Linux, Android и iOS.
Адаптация интерфейса под платформу
Несмотря на единую кодовую базу, интерфейс мобильного приложения и десктопного отличается по размеру элементов, жестам, навигации. FireMonkey даёт инструменты для адаптации: Platform-specific стили оформления, условная компиляция участков кода под конкретную платформу через директивы компилятора ($IFDEF), отдельные формы для мобильных и десктопных версий при необходимости.
Доступ к нативным возможностям устройства
Для вещей вроде камеры, геолокации, push-уведомлений или датчиков Delphi предоставляет кроссплатформенные API-обёртки, которые под капотом обращаются к нативным возможностям каждой ОС. Это избавляет разработчика от необходимости писать отдельный нативный код для каждой платформы в большинстве типовых сценариев.
Когда что выбирать
Если приложение нацелено исключительно на Windows и использует глубокую интеграцию с особенностями этой ОС — разумнее остаться на VCL. Если же цель — одно приложение сразу на нескольких платформах, включая мобильные, FireMonkey — штатный инструмент Delphi именно для такой задачи.