Prerequisite
Emulator manager and Virtual remote has been developed and tested on below environment
Visual Studio Code is a source-code editor made by Microsoft for Windows, Linux and macOS.
Electron (formerly known as Atom Shell) is a free and open-source software framework developed and maintained by GitHub. It allows for the development of desktop GUI applications using web technologies: it combines the Chromium rendering engine and the Node. js runtime.
- Google Chrome: Version 96.0.4664.93 (Official Build) (64-bit)
Google Chrome is a cross-platform web browser developed by Google.
Node.js is an open-source, cross-platform, back-end JavaScript runtime environment that runs on the V8 engine and executes JavaScript code outside a web browser.
- V8: 9.1.269.39-electron.0
V8 is Google's open source high-performance JavaScript and WebAssembly engine, written in C++. It is used in Chrome and in Node.js, among others.
- OS: Linux x64 5.11.0-41-generic
An operating system is system software that manages computer hardware, software resources, and provides common services for computer programs.
Run application
Follow below steps to run application on host pc and create installer package
- step 1 - get the emulator src code (link will be added soon) then run below command
$ npm install
- step 2 - run below command
$ npm run start
Create installer package
Follow below steps to create installer package for linux/windows/mac
- Need to install electron-packager and electron-installer-debian globally
$ sudo npm install -g electron-packager
$ sudo npm install -g electron-installer-debian
- Run below commands to make deb file for linux intaller.
$ electron-packager . --platform linux --arch x64 --out dist --overwrite
$ electron-installer-debian --src dist/EMV-linux-x64/ --arch amd64 --config config.json
- Installer package will be created and stored inside the dist folder.
For the complete documentation on electronjs refer link: https://www.electronjs.org/.
Features
VM Manager
- Install image: By clicking on install image button Developer/developer will get the option to provide instance name, select added image from the list ( or add image by adding the absolute path of the image) and install image into the vm.
- Show installed OS List: By clicking on the show installed os list button Developer/developer can see the list of installed images into the vm.
- Start VM: By clicking on start vm button Developer/developer can start the vm.
- Shutdown VM: By clicking on shutdown vm button Developer/developer can power off the vm.
- Reboot VM: By clicking on reboot vm button Developer/developer can restart/reboot the vm.
- Delete VM instance: By clicking on delete vm instance Developer/developer can remove/delete the vm instance.
App Manager
- Configure emulator ip address: Developer has to configure the emulator ip address, after ip configuration Developer will be able to send commands to applications running on emulator.
- Set app url: Developer/developer having the option to set the application url which is running on host machine and on clicking launch button app will be launched on emulator.
- launch ResidentApp: By clicking on launch residentapp button default residentapp will be launched.
- Launch IDE: By clicking on launch ide button developer can launch the pre-configured vs code and do modification in the code after that need to run $ lng dev command and immediately changes will reflect on emulator.
- Automate tests option: By clicking on automate tests button developer will get the option to execute the test scripts (pre-configured). On submit selected script will be executed and developer will be able to see the results on emulator.
Api Manager
- Validate Api: Developer can use this option to validate the plugin api's, by selecting api from dropdown and click/select api from the the list, results will be printed above. Developer can use pre-configured plugin api lists in Api manager.
Remote Manager
- Launch remote: Developer can choose the remote from the available remotes listed in remote manager and on clicking use this button selected remote will be launched on window, as a separate app.