Платформа LUWRAIN построена по открытой архитектуре, которая позволяет всем желающим разрабатывать свои приложения. Основной язык разработки приложений в LUWRAIN, как и всей платформы, — это язык Java, хотя его можно при необходимости заменить на Kotlin, используя широкие возможности совместимости последнего с Java. В перспективе также планируется добавление поддержки разработки приложений внутри платформы на языке JavaScript без необходимости установки какого-либо дополнительного программного обеспечения.
Для создания своего приложения в LUWRAIN на Java необходимы следующие установленные в систему компоненты:
LUWRAIN включает специальный класс org.luwrain.app.base.AppBase
, который содержит набор утилит для упрощения создания новых приложений.
Несмотря на то, что все возможности остаются доступными и без использования этого класса,
рекомендуется им всегда пользоваться,
поскольку он не только упрощает работу,
но и вносит определённую упорядоченность в реализацию нового приложения,
делая его максимально похожим и привычным на все остальные.
Руководство, представленное в этом разделе, раскрывает детали создания приложений с использованием класса AppBase
.
Приложение в LUWRAIN, не входящее в стандартный набор поставки, обязательно должно являться расширением, динамически подключаемым к системе. Таким образом, простейшее приложение для LUWRAIN должно содержать три класса, удовлятворяющие следующим интерфейсам:
org.luwrain.core.Extension
: расширение с приложением, загружаемое при запуске платформы;org.luwrain.app.base.AppBase
: экземпляр приложения, создаваемый после команды пользователя запустить приложение;org.luwrain.app.base.LayoutBase
: скомпонованные элементы управления, наполняющие интерфейс приложения.Экземпляр Extension
всегда должен быть один на каждую запущенную копию платформы.
Экземпляр AppBase
создаётся каждый раз новый на каждую запущенную копию приложения.
Классов, расширяющих класс LayoutBase
может быть несколько, если приложение содержит несколько компоновок элементов управления.
Порядок операций при запуске платформы и при запуске приложения изображён на схеме ниже.