📦app (module)

The app module consists of a tray (status bar icon from PySide6) and app (nicegui native application)

Background

Motivation

  • A user-interface is necessary for users to feel comfortable using OpenAdapt. The CLI is too intimidating.

  • The tray provides notifications, to let the user know the state of the application

Literature review

Goals

  • The tray should make interacting with OpenAdapt easier

  • The application should never fail on its own

  • The tray should always reflect the state of the DB (always up-to-date)

  • The app and tray should be responsive and quick.

Design

System Overview

Analysis

The app window could look better and may be hard to see.

If an error occurs, the tray might get blocked, so the process may have to be killed.

Performance

System:

  • M1 2020 MacBook Pro

    • Memory: 16 GB

    • macOS: 13.4.1

Benchmarks:

App Startup

approximately how long it takes for the app to fully display:

  • python -m openadapt.app.main

    7.22s user 2.26s system 203% cpu 4.665 total

Tray Startup

  • python -m openadapt.app.tray:

    4.58s user 1.01s system 225% cpu 2.476 total

  • poetry run app

    • 4.18s user 2.12s system 221% cpu 2.845 total

Last updated