Steve's Ramblings


iOS App Integration – Feature extension through contract: Elements, textexpander and Dropbox

Filed under: Apple, iOS, iPad, iPhone, iPod Touch — Tags: , , , , — sriggins @ 10:42 am

As computer users, we’re familiar with buy some really awesome utility software that does something such as expands text when we type a phrase or syncs files to some server automatically.

We’re used to buying these utilities, installing them and having them work everywhere in the operating system.

We’re also used to them conflicting with some applications, causing general slowdowns or even potentially opening security holes in the operating system.

It is very tricky for an operating system to allow software to extend the operating system while remaining secure.

On iOS for the iPhone or iPad, there are no mechanisms for applications to hook into the operating system. No “fun” hooks anyway. This is done for security purposes. Sure, you can jailbreak your iOS device and do whatever you like, but that’s like buying a home and immediately removing all of the locks. If you trust your neighbors and any stranger that might wander by, fine, but I don’t trust them.

The new software model in iOS is extension through contract. Take Smile for example, who develops a keyboard shortcut expansion tool textexpander touch. Textexpander will let you type a shortcut you define, for example “`foo” and have it become “Thanks for writing! — Steve” But on iOS you can’t just type “`foo” in Mail because iOS doesn’t allow textexpander to hook into the keyboard input system.

So what does a developer do? In Mail’s case, Smile got creative. You create your messages in textexpander and then it launches mail with your message. This is ok, but not the best solution.

Then Smile got even more creative. They worked with third party developers like Cultured Code to build a framework that Cultured Code can include in their application, Things . This allows textexpander to function directly inside of the application forming a sort of contract with that software.

The developer of the host application (Cultured Code) has to actively trust and include the textexpander software directly in their application.

But how does textexpander find its data? Applications cannot see files in other applications’ folders, again for security reasons.

In textexpander touch’s case, it has a syncing mechanism that allows it to copy groups over wifi.  This is a tad clumsy, as you have to do it one group at a time.  This does allow you to only bring over the snippets that might apply to the iPhone, but I’d rather see dropbox support for textexpander touch.

What is Dropbox? Dropbox is a service that gives a user 2 gigabytes of free remote storage. The nifty thing about Dropbox is that to you, the user, Dropbox is just a folder in your user directory. Anything you put into your dropbox is immediately synced to their servers.

All of your data is encrypted with a key that is encrypted with your password, so it is fairly secure. You can then put Dropbox on several of your computers including Macs and Windows, enter your account information and immediately your data is synced across all of those machines.

Even better, Dropbox keeps older versions of your files for 30 days! Did you make a mistake and save a file you didn’t mean to? Just go to the website and restore the previous version.

What does this have to do with textexpander though? Well, Dropbox has an iOS application. They also have a framework that allows other applications to securely read your dropbox data, without knowing your credentials.  Dropbox stores your encrypted data in a shared data portion of your iPhone. Textexpander touch could then license the dropbox framework and include it in their framework, which is then included in Things.

When you type something in Things, it passes the data to textexpander, which could then load its settings from Dropbox, expand your shortcuts which then go directly into Things as you type. Fantastic!

You’ve got the same functionality you had in an insecure environment but this time without affecting any of your other iPhone applications. If there is a bug in textexpander, (no, there won’t ever be!) then only the applications using textexpander are affected.

Next you buy an application such as Elements, a text editing application which also supports textexpander and you see that hey, that text expanding feature is great! You buy textexpander, get a Dropbox account, set things up and you’re good to go.  Elements supports Dropbox also, so you can save a text file from your Mac into Dropbox and immediately edit it on your iOS device.

You, the user, gets a lot of functionality while developers are encouraged to work together, which means bugs are found faster.

You retain your security and peace of mind and those applications not supporting these cool features are left in the dust.

Sounds good to me.


1 Comment »

  1. You should checkout Droptext. It is another iOS text editor that works with Dropbox with a few differences. Droptext gives you access to your entire Dropbox folder instead of just a folder inside of it. Droptext gives you TextExpander support along with the ability to preview files that can’t be edited. You can choose the file extension that you want to edit. You want your files to use Windows or Mac line endings? Just tell Droptext. All of this for $0.99.

    Comment by Kevin — 2010-08-26 @ 9:52 am

RSS feed for comments on this post.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Blog at

%d bloggers like this: