This is the question all developers asked when they found out to be able to communicate with container app within keyboard extension, they need to get user to allow something called "full access".

This is the question we, as developers, asked when we first heard about some strange permission request called "Full Access". Let me explain in detail what it is and why all keyboard extensions will need this permission to work correctly.

On iOS 8, Apple introduced extensions, small apps packaged inside another app i.e. container app. One of the extension types is keyboard extension. Keyboard extensions are limited in features and capabilities like they can not access internet or share data with their container app. After all they are just keyboards and why a keyboard may need internet or communication with its container app! Wrong. Keyboard extensions are here to extend default keyboard. Without these permissions, all a keyboard extension can do is to rearrange keys! This is not what users need. Better to say this is what users will hate! They used to work with this standard arrangement of keys over years.

Apple thought about it already. iOS 8 allow keyboard extensions to access internet or share data with container app under one condition: User should allow these permissions explicitly. This is what called "Full Access". The down side is that "Full Access" gives an extension all permissions even if it doesn't need them. This is the case for CooolKey.

CooolKey is a keyboard extension that allows one to set themes for keyboard. CooolKey app downloads themes from internet and shows them to user. But it also needs to pass the selected theme into keyboard extension via shared container, a space shared between app and extension. It is only allowed if user enables "Full Access".

If only Apple had allowed read-only shared container, CooolKey wouldn't have needed any extra permission under a big name such as "Full Access".

This is the story behind CooolKey and "Full Access". We stated in our privacy policy that we do not gather any data from users except anonymous data about CooolKey app usage like what themes are popular or what colors users use more frequently.

September 20, 2014