<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><div><br></div><div>For a while now (something like a decade), I’ve had a dream of a single unified OVMS App. A rough list of some of the pain points I have wanted to solve includes:</div><div><br></div><div><ul class="MailOutline"><li>Free and open source - both the project and the tools.</li><li>One app running on the web, as well as mobile iOS, Android, etc.</li><li>Multi-platform - taking the virtual vehicle module concept from our module firmware out into the App, and allowing vehicles to be added to the app using ‘platforms' (such as OVMS v2 API, OVMS v3 MQTT, Tesla Fleet Api, and possibly others like Smartcar, Tessie, etc).</li><li>Solve the vehicle image problem once and for all.</li><li>Customizable screens / dashboards.</li><li>Allow for reliable custom server push notifications (ie; not just <a href="http://api.openvehicles.com">api.openvehicles.com</a> and dexter’s).</li><li>Support for native extensions (watch apps, etc).</li></ul></div><div><br></div><div>Having tried more than half a dozen cross platform development environments, a year ago we started using the Expo environment (based on react native) at my day job, and that was a game changer. It finally made React Native usable, with real-time prototyping, cloud builds, simplified distribution, push notifications, cloud (not App Store) updates, and much more. Still painful, but usable. However, the real impetus was pursuading my son to help out as a summer internship.</div><div><br></div><div>Expo is pretty cool. You can develop locally, then build iOS and Android apps in the cloud (no need for windows or Mac locally). It has it's own push notification system using it's own tokens, and so long as you know the token any server can push notifications out to the apps (even under iOS) - that can be locked down with a secret or left open. It is still cumbersome (Javascript / typescript with a heavy load of libraries), but imho the best that there is out there for stuff like this. For projects like ours it is effectively free, and while commercial it is open source and nothing would stop us from moving to pure react native at a later date (should Expo start behaving badly).</div><div><br></div><div>We’ve now built a prototype of this App, and I’ve attached some screenshots below. The UI is far from complete, but we have the all important virtual vehicle metrics, OVMS v2 API (SSL/TLS over websockets), location streaming on a map, vehicle commands, and a few others things all working well. We are targeting having something usable for others to be able to look at and play with by next month - August - although if you wanted to see it now I don’t think it would be too hard for you to find it on GitHub (just don’t expect any help from me for the moment as it breaks on a daily basis). Hint: it is *not* Open-Vehicle-React-App.</div><div><br></div><div>Long term I am not sure if (but hope that) this App can replace both the existing ones. It is certainly better than the iOS App today, even in it’s current prototype form.</div><div><br></div><div>We don’t need help with the App development for the moment, as things change too frequently to make a bigger team worthwhile. But we do need help with the vehicle images, and I will eMail separately regarding that topic.</div><div><br></div><div>Regards, Mark</div><div><br></div><div><br></div><img src="cid:C081DF00-2292-4817-B762-CA96D8691747" alt="OVMS-X-1.png" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><img src="cid:D40A7438-6B98-42A1-B263-AE64A65693B6" alt="OVMS-X-3.png"><div><img src="cid:EF29BB48-04E1-4F7D-86BC-D7520B65048D" alt="OVMS-X-4.png" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><img src="cid:4D5268E7-1F52-496B-AC0C-C9E9C652C051" alt="OVMS-X-8.png"></div><div><img src="cid:7F40BAAE-F18B-4C8E-A661-BDBB778BD1DC" alt="OVMS-X-6.png"><img src="cid:2F55A827-26A1-4E1F-AFB4-E9CA1FA61914" alt="OVMS-X-7.png"></div><div><br></div><div><br></div></body></html>