OnTheFly
Effortlessly convert file formats in the background.
OnTheFly is a desktop app that automates file format conversions in the background. Customize it to monitor multiple folders, process images, handle files matching specific regex patterns, and more!
Downloading
Currently, OnTheFly is not stable (in active development) for general consumer use, but keep a watch in the Releases Tab!
Building
For people who want to do it themselves...
As previously stated, OnTheFly is not stable and is in active development, so expect bugs, undocumented actions, etc.. Additionally, there currently is only support for Windows. Building for any other platforms will produce undefined and untested behavior. However, as OnTheFly is built on Flutter and Dart, it is very easy to build with the tooling provided.
To build, you must have the Flutter SDK downloaded: https://docs.flutter.dev/get-started/install
Make sure you have all of the dependencies required by Flutter. You can check by running the command flutter doctor.
- Clone the repository (
git clone https://github.com/exoad/on_the_fly.git) - Enter the root directory of the repository
- Download all project dependencies:
flutter pub get - Run the respective Flutter build command for Windows:
flutter build windows --release(the--releaseflag is used for maximal optimization) - The built artifact can be located in the generated folder
./build/windows/Runner/Release
Building using Python Script (Windows Only)
build.py is a standardized script for building typically release builds of OnTheFly. It requires Python 3 and up and Flutter to be installed as well as dependencies required
by Flutter (which you can check with flutter doctor).
By default, running the script with python build.py will produce a "non-release" build. To run it with release mode, run it with the --release flag (python build.py --release).
Furthermore, there are a few parameters you can tweak—for example, the build output locations; all of which you can find in these lines:
# configuration stuffs (change if you want to)
BUILD_OUTPUT_FOLDER_NAME = "BuildArtifacts"
BUILD_OUTPUT_FOLDER_ROOT_NAME = "OnTheFly"
BUILD_OUTPUT_FOLDER_UPDATER_NAME = "OnTheFly_Updater"
ALLOW_BUILD_LOG_TO_FILE = True
BUILD_LOG_FILE_NAME = (
"onthefly_pybuilder.log" # only is used if ALLOW_BUILD_LOG_TO_FILE is also True
)
⚠️ Edit the script at your own risk!
Documentation
You can check out the documentation here
Supported Formats
Currently there are only implementations for image formats, but more mediums will be added!
Input
webppngjpgtiffgifbmpico
Output
pngjpgtiffgifbmp
Translations + Contributing
This app is currently stable for English, with additional works for Simplified Chinese (中国大陆).
All of the internationalization can be found in ./lib/i18n/*.yaml. If you spot a mistake in the strings or want to make a suggestion, please include it in a pull request! Thank you very much for your contributions :)
Acknowledgements
Here are some of the tools and libraries that make this app possible and greatly simplified the development process.
gskinner/flutter_animate
For simplifying the animation creation process and enhancing the app's overall smoothness.
flutter
A well built framework that is the backbone of this app.
brendan-duncan/image
For a versatile cross-platform image IO library for Dart.
unDraw
Providing amazing illustrations within the UI.
Contributors
Libraries
- base\ephemeral
- base\native_channel
- base\win_man
- client\app_view
- client\components\asyncs
- client\components\c_canvas
- client\components\components
- client\components\debug_component
- client\components\gradient_f_circle
- client\components\kinetic_carousel
- client\debug_layer_view
- client\events\debug_events
- client\events\ephemeral_stacks
- client\events\job_stack
- client\load_it_n_view
- client\logging_view
- client\root_service_view
- client\tray\tray
- core\components\j_body
- core\components\j_fields
- core\components\j_prebuilt
- core\components\j_spinner
- core\components\j_titles
- core\components\job_component
- this part is usually used for commonly used ui elements for job forms
- core\core
- core\e_files
- core\folder_watchdog
- core\formats\formats
- core\formats\images_target
- core\jobs
- core\output_builder
- core\services\services
- core\utils\date_time
- core\utils\file_system
- core\utils\result
- core\utils\strings
- helpers\basics
- helpers\color_helper
- helpers\projection_matrices
- helpers\ranged_incrementor
- i18n\translations.i18n
- i18n\translations_zh.i18n
- main
- shared\app
- shared\bundles
- shared\layout
- shared\theme
- xt