Hi, everybody.
I've been absent for a few years, but now, eventually, I got back in home automation.
I took a look at iViewer state and it seems like nothing has changed at all since the last time I was using it.
So I vibe-coded it =)
Kind of. Not everything, there is a lot of work to do for 99% compatibility with iViewer.
Without any reverse engineering.
I feeded
github.com/CommandFusion/DemoUserInterfaces to LLM (Google Gemini + Claude Sonnet) to produce gui file parser and used demo projects to debug behavior.
Okay, technically:
- PixiJS on WebGL canvas is responsible for rendering.
- Tauri is on backend side.
The advantages of this design I see:
1. Frontend codebase is the same for every platform. Rendering part is completely in JavaScript. In fact, it can be run in browser.
2. The same for backend but with some exceptions, e.g. multicast is disabled by default on Android, may be the same applies to iOS, I cannot say. Anyway, only minor changes needed to support another platform.
3. Desktop support, easier to debug.
4. Browser Developer tools (WebKit for macos/ios/linux and Chromium based for Android, Windows), so debugging session will be a joy.
5. Basically, our app is just a webapp, so it will be easier to integrate js libs, use Web APIs, e.g. use WebCodecs API to render video streams, maybe include WebRTC support.
Another idea I have is to implement GUI editor as a plugin for VSCode and mcp-server for AI agents.
https://github.com/shabunin/agapiThere are binaries for Windows and Android in Releases.
It is just a demo so do not expect much.
What are your thoughts, opinion, critique?
Maybe there is a place for iViewer Community Edition ?