Hello everyone! π
I'm excited to introduce BoltWS Companion, an Android companion project designed to make Kodular and MIT App Inventor extension development easier, faster, and more interactive.
Developing extensions often involves writing Java code, building the extension, testing it, identifying errors, and repeating the process. My goal with BoltWS Companion is to simplify this workflow by bringing extension development and live testing closer together.
The project focuses on connecting your PC-based development workflow with an Android companion, making it easier to experiment with extension methods, parameters, UI components, and runtime behavior.
This is an evolving project, and I want to improve it with feedback and contributions from the community.
β‘ 1. Live Development with Bolt CLI
One of the key goals of BoltWS Companion is to make the live development workflow as convenient as possible.
π₯ Automatic Connection When You Run bolt run
The intended workflow is simple:
- Open your extension project on your PC.
- Start the Bolt CLI live development workflow using
bolt run. - Launch BoltWS Companion on your Android device.
- The companion is designed to discover and connect to the PC automatically when the required components and network configuration are ready.
- Use the companion to test and inspect supported extension functionality during development.
The main idea is to reduce manual connection steps and make live testing more convenient.
The workflow uses network discovery and WebSocket communication to connect the PC-side development process with the Android companion.
The PC and Android device must be able to communicate over the network, and the required services and permissions must be configured correctly.
β‘ 2. FAST CLI Live Testing Using Node.js
BoltWS Companion also aims to support a live testing workflow for developers using FAST CLI.
In this workflow, a Node.js script running on the PC acts as part of the communication process between the development environment and the Android companion.
The workflow is intended to help developers:
- Connect the PC-side workflow with the companion.
- Discover the companion over the local network.
- Communicate through WebSocket.
- Send supported development data for live testing.
- Experiment with extension functionality without relying exclusively on a traditional build-and-test cycle.
π’ What About the Node.js File?
The FAST workflow uses a Node.js script, such as fast-live.js, for PC-side communication.
How to create the Node.js file, configure it, run it, and connect it to BoltWS Companion will be explained separately.
I want to cover that process in a dedicated guide rather than make this announcement unnecessarily complicated.
Bolt CLI vs. FAST CLI
| Feature | Bolt CLI | FAST CLI |
|---|---|---|
| Development workflow | Start with bolt run |
Use the PC-side Node.js workflow |
| Companion connection | Designed for automatic discovery and connection | Uses the configured Node.js communication workflow |
| Communication | WebSocket and network discovery | Node.js, WebSocket and network discovery |
| Main objective | Simplify live extension development | Enable live testing through the FAST workflow |
The exact experience depends on the development setup, network configuration, and the functionality supported by the current implementation.
π§© 3. Extension Method and Parameter Testing
Extension development is not just about compiling Java code. Developers also need to understand how methods behave when called with different arguments.
BoltWS Companion is being developed to help with this process.
The intended testing workflow includes inspecting supported methods and experimenting with parameters such as:
- String β Text values
- Integer β Whole numbers
- Float / Double β Decimal values
- Boolean β True or false
- Color β Color values
- View β Android UI view references
The goal is to make method testing more convenient and help developers understand how different parameter values affect runtime behavior.
Support depends on the method, parameter type, and the current implementation.
π οΈ 4. Reflection-Based Method Inspection
Android and Java reflection can help inspect classes and their available methods at runtime.
BoltWS Companion includes a reflection-oriented approach to method inspection and parameter handling.
This can help developers explore extension methods without having to manually write a separate test for every possible method.
The broader objective is to make extension debugging and experimentation easier, especially when developing custom components.
π¨ 5. UI Component and View Testing
Android extensions frequently create or modify UI elements dynamically.
Testing these components can be challenging when their appearance or behavior depends on runtime values.
BoltWS Companion aims to make UI-related extension testing more interactive.
Potential testing areas include:
- Creating and inspecting supported UI components.
- Experimenting with method parameters.
- Checking runtime behavior.
- Testing supported view-related operations.
- Identifying issues during development.
The goal is to provide developers with a more practical environment for experimenting with their extensions.
βΆοΈ 6. Run and Reset Workflow
A useful development companion should make repeated testing convenient.
BoltWS Companion includes a development-oriented workflow for running supported tests and resetting the testing state.
This is intended to help developers experiment with different values and test scenarios without repeatedly starting the entire process from scratch.
The behavior of individual controls and their compatibility with different components will continue to be improved as the project evolves.
π‘ 7. Network Communication Architecture
BoltWS Companion uses network communication to connect the Android companion with the PC-side development workflow.
The current project architecture includes:
| Component | Purpose |
|---|---|
| UDP β Port 9001 | Network discovery |
| WebSocket β Port 9000 | PC-to-companion communication |
| Android Companion | Receives supported development messages and provides the companion-side interface |
| PC-side scripts and tools | Support the development and live-testing workflow |
| DEX-related workflow | Supports the project's extension-development and testing approach |
These components are intended to work together to make the development process more interactive.
For successful communication, the PC and Android device must be reachable over the network, and the relevant ports must be accessible.
π§ͺ 8. Why Is This Project Useful?
Traditional extension development often involves a repetitive cycle:
Write code β Build extension β Install or update β Test β Find an issue β Modify code β Build again.
A live development workflow aims to reduce unnecessary repetition and make experimentation more convenient.
BoltWS Companion is intended to help extension developers:
- Experiment with supported methods and parameters.
- Test extension behavior during development.
- Inspect runtime behavior more conveniently.
- Work with Bolt CLI and FAST CLI development workflows.
- Identify problems earlier in the development process.
- Explore new possibilities for extension debugging and testing.
The objective is not to replace every part of the normal extension-building process, but to provide another useful tool for development and experimentation.
π§ͺ 9. Current Testing Status β Honest Feedback Is Welcome
I have tested BoltWS Companion with selected extensions, but I have not yet fully established its complete capabilities, limitations, or compatibility across different extensions and use cases.
I want to be transparent about the current status of the project. Testing a few selected extensions does not mean that every feature has been fully tested or that every type of extension will work correctly.
The full capabilities and limitations of the project are not yet completely clear. More real-world testing is needed to understand what works well, what needs improvement, and what features may be missing.
That's why I would appreciate it if developers could try the project with their own extensions and share their experiences.
Please help me understand:
- Which features work correctly?
- Which features do not work as expected?
- Which extension types or methods cause problems?
- Are there parameter types that need better support?
- Are there connection, UI, or runtime issues?
- What important features are missing?
- What should be improved first?
Please do not hesitate to report problems or limitations. Honest feedback is more valuable than simply saying that everything works.
Your testing can help reveal the project's actual strengths and weaknesses and guide future improvements.
πΊοΈ 10. Future Roadmap
BoltWS Companion is an evolving project. There are several areas I would like to explore and improve with community feedback.
πΉ Planned Improvements
1. Better Method and Parameter Metadata
Improve how method names, parameter names, parameter types, and other relevant metadata are obtained and displayed.
2. Better Kodular Block Integration
Explore ways to connect extension metadata with the corresponding Kodular block information so developers can identify methods and parameters more easily.
3. Improved Parameter Handling
Improve support for different parameter types, default values, and more convenient input controls.
4. Better UI and User Experience
Make the companion interface more intuitive, organized, and easier to use during development.
5. Improved Error Handling
Make connection problems, invalid inputs, unsupported methods, and runtime errors easier to identify.
6. More Reliable Live Testing
Continue improving the Bolt CLI and FAST CLI workflows to make the connection and testing process more convenient.
7. Documentation and Tutorials
Provide clearer instructions for setting up the companion, configuring the PC-side tools, and using the supported workflows.
These are areas for future development, not a promise that every feature is already implemented. Their priority will depend on feasibility, testing, and community feedback.
π 11. This Is an Open-Source Project β You Can Contribute!
One of the most important things I want to share is that BoltWS Companion is an open-source project released under the MIT License.
I am sharing the source code publicly because I believe projects like this can become more useful when developers work together.
π€ What Can You Do?
- Use it: Explore the project and use it in your own development workflow.
- Modify it: Change the source code to suit your needs.
- Add new features: Develop new functionality and improvements.
- Fix bugs: Investigate problems and contribute fixes.
- Improve the UI: Suggest or implement interface improvements.
- Improve compatibility: Explore support for additional methods, parameter types, and development workflows.
- Contribute code: Fork the repository, make improvements, and submit a pull request.
- Share feedback: Explain what works, what does not work, and what should be improved.
You do not need to wait for me to implement every feature. If you have the knowledge and want to improve something, you can work on the project yourself.
You are welcome to use, modify, and distribute the project in accordance with the MIT License.
π Found a Problem? Please Report It!
If you encounter a bug, connection problem, unexpected behavior, or missing feature, please share the details through the repository's GitHub Issues section.
When reporting a problem, it helps to include:
- What you were trying to do.
- The steps required to reproduce the problem.
- The error message or relevant logs.
- Whether you were using Bolt CLI or FAST CLI.
- Any other technical details that may help identify the cause.
Clear reports make it easier to understand problems and work toward solutions.
π‘ Have an Idea for a New Feature?
I would also like to hear your suggestions.
If you believe a feature would make BoltWS Companion more useful, describe the idea and explain how it could help extension developers.
I cannot promise that every suggestion will be implemented, but I will consider community feedback and evaluate useful ideas for future development.
The aim is to build something practical that can benefit more than one developer.
π 12. Let's Build It Together!
BoltWS Companion is an attempt to make Kodular and MIT App Inventor extension development more convenient through live testing, method inspection, parameter handling, and PC-to-Android communication.
I welcome developers, extension creators, testers, and anyone interested in improving the project.
You can use the source code, modify it, experiment with new ideas, report problems, or contribute improvements.
If something is missing, tell me. If something is broken, report it. If you have a better idea, share it.
We can discuss the problems, evaluate possible solutions, and consider useful improvements for future versions.
Thank you to everyone who takes the time to explore the project and contribute to its development! β€οΈ
π GitHub Repository β Explore, Use, Modify, and Contribute
The complete source code is available here:
https://github.com/Praveenhajare/BoltWS-Companion
The project is open source under the MIT License. Feel free to explore the code, use it, modify it, add new features, and contribute improvements in accordance with the license.
If you encounter any issues or have suggestions, please share them through GitHub.
Your feedback, testing, and contributions can help identify limitations and shape the project's future.