На самом высоком уровне мобильное приложение состоит из двух компонентов: контроллера и слоя представления.
Интерфейс приложения, с которым взаимодействует пользователь.
Разрабатывается на «нативных» языках: Kotlin для Android, Swift для iOS.
Слой представления взаимодействует только с контроллером.
Бизнес логика приложения на языке C++ и его компонентная структура описана в IDE Genie по общим правилам Wasaby Framework для автономных приложений.
Все взаимодействия с облаком осуществляет контроллер.
Для обслуживания запросов контроллер может инициировать запросы в облако в асинхронном режиме.
Сопряжение слоев происходит посредством мостов между типами С++ и нативными языками программирования.
Контроллер организуется как система микросервисов , взаимодействующих друг с другом.
Микросервис контроллера представляет собой набор модулей бизнес-логики, реализующих работу с одной ограниченной предметной областью.
В простейшем случае микросервис может быть описан как набор модулей ядра мобильной платформы и один прикладной модуль.
Микросервис контроллера может обладать собственной выделенной БД SQLite. Развертывание и обновление БД микросервиса осуществляется посредством соответствующих утилит из состава платформы автономных приложений.
Типовой микросервис состоит из трех основных компонентов:
Djinni-интерфейс, который предназначен для взаимодействия UI с микросервисом приложения
Выполняет функции хранилища данных микросервиса, и является шиной данных между CRUD-фасадом и синхронизатором
Модуль, который предназначен для взаимодействия микросервиса контроллера с облаком
Высокая скорость работы приложений достигается благодаря
библиотеке компонентов, которые экономно используют ресурсы.
<ion-card>
<ion-img src="/assets/myImg.png"></ion-img>
<ion-card-content>
<ion-card-header>
<ion-card-subtitle>Card Subtitle</ion-card-subtitle>
<ion-card-title>Card Title</ion-card-title>
</ion-card-header>
<p>Here’s a small text description for the card component.
Nothing more, nothing less.
</p>
<ion-item>
<ion-button fill="solid">Action</ion-button>
<ion-icon name="heart" slot="end"></ion-icon>
<ion-icon name="share" slot="end"></ion-icon>
</ion-item>
</ion-card-content>
</ion-card>