SwiftKey, one of the most popular custom keyboards for iPhone and iPad, requires "full access" in order to be fully functional. Why is that? Because a good portion SwiftKey's prediction engine is too big to fit into the keyboard extension itself, and so has to live back in the SwiftKey app. Here's the explanation by way of the SwiftKey blog:
This is necessary because SwiftKey's prediction engine lives inside the container app, along with various settings, different language packs and theme choices. Keeping all of this in the container app helps ensure the keyboard extension's memory footprint is manageable for better performance, and allows us to offer the full SwiftKey experience that we've become known for.
So, in order for SwiftKey, the keyboard extension, to communicate back to SwiftKey, the full app, it needs full access. This is completely different and separate from any online access, which SwiftKey says is enabled by using Google or Facebook to sync between devices.
There have been a lot of questions about why SwiftKey asked for full access, does this explain it?