Craft high-performance mobile apps in native programming languages

  • Over 100 mobile UI components
  • Business logic using the Wasaby Framework

Architecture of an offline-first mobile app

Basically, the mobile app consists of two components: the controller and the view layer.

View layer (UI)

The user interface of the app.

Developed in the native languages: Kotlin for Android and Swift for iOS.

The view layer interacts only with the controller.

Controller

The app business logic is realized in C++, and the component-based structure of the app is described in the Genie IDE according to the general rules of the Wasaby Framework for offline-first applications.

All interactions with the cloud are handled by the controller.

Cloud

To serve user requests, the controller can initiate queries to the cloud asynchronously.

The layers are connected by bridging C++ types with the native programming languages.

Controller structure

The controller is a system of microservices communicating with each other.

A controller microservice is a set of business logic modules ensuring work with one bounded domain.

In its simplest form, a microservice can be described as a set of modules of the mobile platform core and one application module.

Read documentation

Microservice architecture

A controller microservice can have its own dedicated SQLite database. The microservice database is deployed and updated using the corresponding utility programs from the platform of offline-first applications.

A standard microservice consists of three main components:

CRUD facade (API)

A Djinni interface intended for the interaction of the UI with the application microservice

SQLite database

Functions as a storage of the microservice data and as a data bus between the CRUD facade and the synchronizer

Synchronizer

A module intended for the interaction of the controller microservice with the cloud

UI development

The user interface of the app.

Developed in the languages native for the platform: Kotlin for Android and Swift for iOS.

This layer interacts only with the controller.

Read documentation

Library of ready-made components

The high running speed of the apps is ensured by
the library of components, which are saving resources.

<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>
iOS
Android