unleashed-firmware/applications/examples/example_apps_data
Sergey Gavrilov 777a4d109d
[FL-3055] Getter for application data path (#2181)
* Threads: application id
* Unit tests: appsdata getter test
* Unit tests: moar test cases for appsdata getter
* Unit tests: remove folders after test
* Storage: dir_is_exist, migrate, + unit_tests
* Plugins: migration
* Storage: common_exists, moar unit_tests 4 "common_migrate", "common_migrate" and "common_merge" bugfixes
* Storage: use FuriString for path handling
* Storage API: send caller thread id with path
* Storage: remove StorageType field in storage file list
* Storage: simplify processing
* Storage API: send caller thread id with path everywhere
* Storage: /app alias, unit tests and path creation
* Storage, path helper: remove unused
* Examples: app data example
* App plugins: use new VFS path
* Storage: file_info_is_dir
* Services: handle alias if the service accepts a path.
* App plugins: fixes
* Make PVS happy
* Storage: fix storage_merge_recursive
* Storage: rename process_aliases to resolve_path. Rename APPS_DATA to APP_DATA.
* Apps: use predefined macro instead of raw paths. Example Apps Data: README fixes.
* Storage: rename storage_common_resolve_path to storage_common_resolve_path_and_ensure_app_directory
* Api: fix version
* Storage: rename alias message
* Storage: do not create app folders in path resolving process in certain cases.

---------

Co-authored-by: Astra <93453568+Astrrra@users.noreply.github.com>
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
2023-03-02 03:57:27 +10:00
..
application.fam [FL-3055] Getter for application data path (#2181) 2023-03-02 03:57:27 +10:00
example_apps_data.c [FL-3055] Getter for application data path (#2181) 2023-03-02 03:57:27 +10:00
README.md [FL-3055] Getter for application data path (#2181) 2023-03-02 03:57:27 +10:00

Apps Data folder Example

This example demonstrates how to utilize the Apps Data folder to store data that is not part of the app itself, such as user data, configuration files, and so forth.

What is the Apps Data Folder?

The Apps Data folder is a folder used to store data for external apps that are not part of the main firmware.

The path to the current application folder is related to the appid of the app. The appid is used to identify the app in the app store and is stored in the application.fam file. The Apps Data folder is located only on the external storage, the SD card.

For example, if the appid of the app is snake_game, the path to the Apps Data folder will be /ext/apps_data/snake_game. But using raw paths is not recommended, because the path to the Apps Data folder can change in the future. Use the /app alias instead.

How to get the path to the Apps Data folder?

You can use /app alias to get the path to the current application data folder. For example, if you want to open a file config.txt in the Apps Data folder, you can use the next path: /app/config.txt. But this way is not recommended, because even the /app alias can change in the future.

We recommend to use the APP_DATA_PATH macro to get the path to the Apps Data folder. For example, if you want to open a file config.txt in the Apps Data folder, you can use the next path: APP_DATA_PATH("config.txt").