Purpose

The User Interface of the Mobile Clients (Android, iOS) as well as the Windows Desktop client, can be fundamentally customized using custom XAML definitions. These UI definitions are loaded and interpreted by the clients at runtime, and override the default UI that are packaged with the Apps.

Architecture

All UBIK Clients are built on the UBIK Universal Client Foundation and can therefore leverage all its functionality.

flowchart TD

subgraph View
    WEB["Web (Blazor)"]
    HOLO["Hololens 2"]
    WIN["Windows (WinUI)"]
    MAUI["Android/iOS/Tizen (MAUI)"]
    CUSTOM["Custom Clients"]
end

subgraph ViewModel
    UCF["Universal Client Foundation (UCF)"]
    AR["AR Module (UCF.AR)"]
    AI["AI Assistant"]
end

subgraph Model
    CORE["Mobile Core"]
    DB[(Mobile Database)]
    FS[[File System]]
end
    AUTH["Authentication"]
    CONTENT["Content"]
    PUSH["Push"]
    SERVER["UBIK Server"]

WEB <-.HTML/CSS.-> UCF
HOLO <-.Unity 3D.-> UCF
WIN <-.XAML.-> UCF
MAUI <-.XAML.-> UCF
CUSTOM <-.-> UCF

UCF <--> CORE


CORE <--> AUTH
CORE <--> CONTENT
CORE <--> PUSH

AUTH <--> SERVER
CONTENT <--> SERVER
PUSH <--> SERVER

Customization

Because all clients share the same foundation, there is no difference between usable ViewModels, Properties and Commands. However, since they use different UI Frameworks, there are differences in the XAML dialect that prevent reusing the same UI definitions across mobile and desktop clients.

Mobile Clients (Android, iOS)

The UI System of the UBIK Mobile clients is built on the .NET MAUI Platform, therefore the principals and constraints of this framework apply.

Desktop Clients

The UI System of the UBIK Mobile clients is built on the .NET Win UI Platform, therefore the principals and constraints of this framework apply.