@@ -0,0 +1,12 @@
|
||||
# Application Lifecycle
|
||||
|
||||
The app goes through these states:
|
||||
|
||||

|
||||
|
||||
Let's look at a scenario where an app launches another app:
|
||||
|
||||
1. `first` app starts: `first.on_create()` -> `first.on_show()`
|
||||
2. `second` app starts: `first.on_hide()` -> `second.on_create()` -> `second.on_show()`
|
||||
3. `second` app stops: `second.on_hide()` -> `second.on_destroy()` -> `first.on_show()`
|
||||
4. `first` app stops: `first.on_hide()` -> `first.on_destroy()`
|
||||
@@ -0,0 +1,9 @@
|
||||
@startuml
|
||||
[*] --> on_create : app is started
|
||||
on_create --> on_show : app becomes visible
|
||||
on_show --> on_hide : app is no longer visible
|
||||
on_hide --> on_destroy : app is being closed
|
||||
on_destroy --> [*]
|
||||
skinparam ranksep 25
|
||||
skinparam padding 2
|
||||
@enduml
|
||||
@@ -0,0 +1,43 @@
|
||||
# TODOs
|
||||
- Update `view_port` to use `ViewPort` as handle externally and `ViewPortData` internally
|
||||
- Create more unit tests for `tactility-core` and `tactility` (PC-only for now)
|
||||
- Have a way to deinit LVGL drivers that are created from `HardwareConfig`
|
||||
- Show a warning screen if firmware encryption or secure boot are off when saving WiFi credentials.
|
||||
- Show a warning screen when a user plugs in the SD card on a device that only supports mounting at boot.
|
||||
- Try out Waveshare S3 120MHz mode for PSRAM (see "enabling 120M PSRAM is necessary" in [docs](https://www.waveshare.com/wiki/ESP32-S3-Touch-LCD-4.3#Other_Notes))
|
||||
- T-Deck has random sdcard SPI crashes due to sharing bus with screen SPI: make it use the LVGL lock for sdcard operations?
|
||||
- Wi-Fi connect app should show info about connection result
|
||||
- Check service/app id on registration to see if it is a duplicate id
|
||||
- Fix screenshot app on ESP32: it currently blocks when allocating memory
|
||||
- Localisation of texts
|
||||
- Portrait support for GPIO app
|
||||
- App lifecycle docs mention on_create/on_destroy but app lifecycle is on_start/on_stop
|
||||
- Explore LVGL9's FreeRTOS functionality
|
||||
- Explore LVGL9's ILI93414 driver for 2.4" Yellow Board
|
||||
- Bug: in LVGL9 with M5Core2, crash when bottom item is clicked without scrolling first
|
||||
- Publish firmwares with upload tool
|
||||
- De-duplicate WiFi SSIDs.
|
||||
- Move libs/M5 projects to boards/M5Shared
|
||||
|
||||
# Core Ideas
|
||||
- Make a HAL? It would mainly be there to support PC development. It's a lot of effort for supporting what's effectively a dev-only feature.
|
||||
- Support for displays with different DPI. Consider the layer-based system like on Android.
|
||||
- If present, use LED to show boot status
|
||||
- 2 wire speaker support
|
||||
- tt_app_start() and similar functions as proxies for Loader app start/stop/etc.
|
||||
- tt_app_set_result() for apps that need to return data to other apps (e.g. file selection)
|
||||
- Wi-Fi using dispatcher to dispatch its main functionality to the dedicated Wi-Fi CPU core (to avoid main loop hack)
|
||||
|
||||
# App Improvement Ideas
|
||||
- Sort desktop apps by name.
|
||||
- Light/dark mode selection in Display settings app.
|
||||
|
||||
# App Ideas
|
||||
- File viewer (images, text... binary?)
|
||||
- BlueTooth keyboard app
|
||||
- Chip 8 emulator
|
||||
- BadUSB
|
||||
- Discord bot
|
||||
- IR transceiver app
|
||||
- GPS app
|
||||
- Investigate CSI https://stevenmhernandez.github.io/ESP32-CSI-Tool/
|
||||
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 221 KiB |
@@ -0,0 +1,23 @@
|
||||
@startuml
|
||||
skinparam componentStyle uml1
|
||||
|
||||
[Tactility] as t
|
||||
note right of t : to build and use graphical apps
|
||||
[TactilityHeadless] as theadless
|
||||
note right of theadless : to build and use background services
|
||||
[TactilityCore] as tcore
|
||||
note right of tcore : defines, data types, logging, async, etc.
|
||||
|
||||
package "Applications" {
|
||||
[AppSim] as appsim
|
||||
[AppEsp32] as appesp
|
||||
}
|
||||
|
||||
note right of appesp : AppEsp depends on the board \n projects for configuration
|
||||
|
||||
[t] ..> [theadless]
|
||||
[theadless] ..> [tcore]
|
||||
[appsim] ..> [t]
|
||||
[appesp] ..> [t]
|
||||
|
||||
@enduml
|
||||