TextExpander and External Keyboards on iOS24 Sep 2017
TextExpander is a fantastic tool that fundamentally allows you to enter a string of characters and trigger a response that can replace the text with different content (e.g. plain text, formatted text, an image). On some platforms it can do even more, triggering scripts; though generally the intent is to then return and output some content.
One of the platforms TextExpander is available on is Apple? iOS, the operating system that runs iPhones and iPads. Whilst these devices have on screen virtual keyboards, they also allow interaction through physical keyboards, but in order to use TextExpander effectively with physical keyboards on these devices you have to do a little preparation work. Whilst Apple’s own built-in text expansion functionality works (and I have a handful of simple expansions set-up in there) it is a pale shadow in comparison to TextExpander.
The TextExpander Custom Keyboard Extension.
With the release of iOS 8 back in September 2014, Apple introduced a custom keyboard extension feature. This enabled third party developers to create on screen keyboards that could be used in place of the standard Apple on screen keyboards. Smile, the makers of TextExpander, released a keyboard extension at the launch of iOS 8 that allows TextExpander to be used within any application.
It isn’t without its limitations. Apple’s sand boxing means that it can’t be used in password fields (a security precaution to stop the potential for malicious keyboards to exfiltrate passwords from the system) and more complex TextExpander snippets such as forms are not fully supported. However the majority of boiler plate text style expansions are of course fully supported.
There are effectively three different types of physical keyboard.
The first is a wireless keyboard and this probably still remains the most prolific. Connecting via Bluetooth the keyboard is not physically connected to the device but transmits the key presses to the device which then actions them on screen. I’m actually typing this post on my iPad via a Bluetooth keyboard.
The second is a smart connected keyboard. With the introduction of the iPad Pro range of iPads, Apple introduced a new connector on the side of the device (left side in portrait orientation). This was seemingly introduced to support the introduction of smart keyboard cases. Screen covers that incorporated a thin keyboard. The low profile keyboard has proven quite popular and works in the same way as the wireless keyboards, but via the smart connector the key strokes are sent over a physical connection and the keyboard is powered by the iPad via the smart connector.
The third is a wired USB keyboard. Whilst the iPad does not include a USB connector, the camera adapter that can be attached to the iPad’s lightning port. A USB keyboard can then be connected to that and providing the keyboard does not have an excessive power draw for use, the wired keyboard again functions like the others. I’ve never seen anyone actually use this set-up in a coffee shop or on a train, but there are some keyboard aficionados out there who love their clickety keyboards and use this sort of set-up at home.
Note that if you are using an iPhone, the physically connected keyboards are not an option and for iPad users it is worth noting that not all iPads have a smart connector.
TextExpansion on iOS with a Physical Keyboard
Regardless of the physical keyboard you are using (and yes that absolutely includes you, the smart connected keyboard users out there), TextExpander text expansion with the physical keyboard means that you have to take a particular approach.
The TextExpander key press expansion hooks are not linked in any way to the physical keyboard when the TextExpander custom keyboard is enabled. They are only linked to the on screen keyboard. That’s the thing many users don’t realise.
The way around this is to use something else with TextExpander key press expansion hooks. There are two such options.
The TextExpander App
The first is the TextExpander iOS application. Typing in the notes section of this app with a physical keyboard will give you access to not only the custom keyboard level of expansions but also to expansions like forms unlike the custom keyboard.
This can be rather limiting and whilst not ideal can be useful if you really need the expansion capabilities from your physical keyboard.
TextExpander Enhanced Applications
My preferred option however is to use a TextExpander enhanced application. These applications are iOS applications that have been coded to take advantage of the TextExpander SDK (software development kit) and they include TextExpander text expansion hooks such that you can use all of your snippets in the application. Because it is at the application level this means it will work with your physical keyboard.
It is also worth noting that if you have a more complex (e.g. form) snippet, a TextExpander enhanced application will call out to the TextExpander application, allow you to complete the snippet there and then switch back to the originating app and insert the content.
The downside is that you have to manually refresh your snippets in each TextExpander enhanced application periodically to ensure you have all of the latest snippets cached, but this is a relatively small downside faced with the benefits it brings.
Smile maintain a list of TextExpander enhanced applications on their web site though I suspect there are still several applications out there that have been enhanced but where they have not informed Smile to add them to the list. It is of course a good starting point for selecting such applications.
For me being a TextExpander enhanced application is a prime factor in choosing applications - especially since TextExpander enhanced applications work with any iOS on screen keyboard too. It makes a huge difference to my productivity on iOS devices.
It is also worth noting that other third party text expansion applications don’t offer such an SDK and along with its multi-platform availability this is what makes TextExpander such an invaluable tool for me.
Non-TextExpander Enhanced Applications
There is another noteworthy workaround for when you are working with a physical keyboard inside of an application that does not support TextExpander natively. For example, Apple’s Mail application. It is possible to temporarily switch out to an on screen keyboard without disconnecting your physical keyboard.
Physical keyboards tend to have a show/hide keyboard button available that will reveal and re-hide the on screen keyboard even when a physical keyboard is connected. My current keyboard is an Anker A7709 wireless keyboard and the F3 key can be used to do just this.
Once displayed you then have to enter the text on the on screen keyboard for it to expand. Far from ideal, but for some snippets it certainly is worth the inconvenience and this is presented more as a workaround than a solution.
Hopefully you now have a clear idea of your options around using a physical keyboard on your iOS devices and getting the benefits of text expansion with TextExpander at the same time.
If you found this useful please let me know and/or consider sharing it with your followers on social media. If you would like to keep up to date with my activities you can also follow me on Twitter where I post as @sylumer.