Perhaps I can explain this from a technical but still understandable point of view. The Connect API is actually being continually updated. As new aircraft are added and features implemented, the API is updated to reflect those things.
In software development, changes to an application (or in this case, API) are defined in a few specific ways. Patches contain bug fixes and are backwards compatible (IF pushes hotfixes when issues arise, these are patch versions), then you have minor updates which are still backwards compatible (ie apps that work before the update still work afterwards) but other features are added. Then you have major updates, which is defined by “major breaking changes” - in other words, apps that worked before won’t work anymore. The Connect API is updated at every standard update to IF - 20.2, 20.3, 21.1, etc. These are minor changes. They add features but it still works for applications created on older versions.
There is actually a rather comprehensive documentation area for the Connect API available here:
If you think there’s anything missing from the docs, let me know - I can get it added for you.
Here’s the problem - Apple especially (but Android too) enforce certain rules around what apps can and cannot do. They put apps in a “sandbox”. It’s like when you navigate to a website, you don’t want that website to have the ability to delete files from your computer.
One of those rules is around USB Devices. Now, I’m not a mobile app developer but I know enough to know that Android is much more lenient than iOS. That’s why Android users can plug a joystick directly into their device and have it “just work”. iOS prevents these kinds of things (afaik), hence making it a lot more difficult to implement native support.
In terms of third party apps, as Seb said, the API is pretty reliable. It runs on a protocol called TCP - that’s the same protocol that HTTP is built on top of. The point being, the IF Connect API should (in theory) be as reliable as your web browsers. Of course, that’s not the case and I won’t go into reasons too specifically but just know that networks are complex beasts and sometimes stuff doesn’t always go as it should if the networks aren’t set up in a certain manner.