Last weekend, I unlocked my car using my own Dart package (according to pub.dev, the first one ever built for it). I walked down to the parking lot, opened the app, tapped the button, heard the clunk. "Worth it." Then I locked it again, went back upstairs, and called it a productive Sunday.

But let's get back a few months earlier, when I had bought a connected MG. I opened the official app, and like any developer who gets a new piece of technology, I spent about five minutes enjoying it as a normal person. Then I started wondering how it worked, what APIs were behind the app, and whether I could build something on top of it myself.

A quick search confirmed that no Dart package existed for the SAIC iSmart API. That's how I ended up building the first one.

My initial approach was to decompile the official app.

What the official app reveals, and what it doesn't