Choosy aims to let developers enable default apps on iPhone and iPad

iOS currently offers no way to set third-party App Store apps as default on the iPhone or iPad. In other words, tapping on a link opens Safari and you can't make it open Chrome instead. Choosy, an open-source framework by Substantial's Alex Novosad, aims to let developers offer a work around in their own apps:

All of this relies on UIApplication's canOpenURL method. (Oh the things we could do if we had two API methods!) We store a list of URL schemes and their building blocks for each app on a server (in a GitHub repository right now), categorizing apps by type. Choosy downloads that info as needed. Developers code to an app-agnostic interface where they just specify the type of app they are linking to/trying to interact with, and pass in a list of parameters. Choosy maps those parameters to the parameters supported by each app and builds app-specific URLs.

Since it's not being implemented by Apple it's not system-wide. That means it only works in apps that do implement it. Yet work-arounds like x-callback — and the just-announced Facebook App Links — have already been used with great efficacy by apps like Launch Center Pro and Drafts. If a few incredibly compelling apps appear that use Choosy, or if a critical mass of apps embed Choosy, who knows what could happen?

Apple could announce their own way of handling default apps in iOS 8 or some future version. Until then, developers who are interested in default apps can check out Choosy, and anyone who wants default app functionality in their favorite apps can encourage developers to check out Choosy and see if it works for them.

Have something to say about this story? Leave a comment! Need help with something else? Ask in our forums!

Rene Ritchie

EiC of iMore, EP of Mobile Nations, Apple analyst, co-host of Debug, Iterate, Vector, Review, and MacBreak Weekly podcasts. Cook, grappler, photon wrangler. Follow him on Twitter and Google+.

More Posts



← Previously

Deal of the Day: Belkin Grip Candy Sheer Case for iPhone 5/5S

Next up →

How to create and customize vibration alerts on your iPhone

Reader comments

Choosy aims to let developers enable default apps on iPhone and iPad


I'm not a dev, but as a user I'd love to see the ability to set third party apps as default instead of some native apps. I hope it comes to be.

Sent from the iMore App

As someone who finds iOS 7 Safari to be an unusable disaster, my biggest wish (after reverting to 3.5" screens) is for changeable default apps.
And I probably have about equal hopes for both.

Sent from the iMore App

Please make it happen app developers. Give Choosy a chance to let consumers choose what they want as default.

Sent from the iMore App

How about Apple needs to add this, it's one of the reasons I switched to Android, because my iPhone4 didn't handle the update well and I had incredible lag in the music app..... Which was pretty much the only reason I had an apple device. So sad day, Android let's me use another music app as a default fun times.

Posted via the Android iMore App!

Okay, so I'm disappointed that this is news. I love that devs are figuring out ways to make the platform more usable but something like this shouldn't be left up to them. While this says a lot about the creativity and talent of the iOS development community I would rather those attributes be put towards end user products - not the framework to make those products work.

I have been beating the drums for user-specifiable default apps since about iOS4, and I was prepared to pooh-pooh this idea as being untenable without an official blessed Apple implementation, but I must say after poking around the github site that I am impressed. It is an impressive workaround for one of iOS' most annoying limitations, and it is simple, neutral, flexible, and, most importantly, minimally painful for the developer to implement. While I would much rather see Apple put this in iOS itself, Choosy is not far off from how I would like to see it accomplished. If enough popular apps used this as opposed to their own schemes (I'm looking at you, Google), this could be very, very cool.

Okay.. But we already have that! "Open in..."I have an app named phonto which has this feature since past 1 year... It's not new..

You miss the point of what Choosy is, and how it differs from what Phonto does there. Phonto works with files there, not actions. "Open in..." is indeed something iOS has, though not as flexibly as I would like. But what iOS does *not* have is the ability for App A to tell App B to do something, or for a user to say they always want to use App B, instead of what Apple has declared a default. Sticking with Phonto, you can use "Mail" to email an image, or "Twitter" to Tweet it. What if you use Tweetbot? You are stuck -- you can use Twitter to send it, come back, and then open up Tweetbot. Not the best experience. Choosy plugs that hole, or aims to.

People have come up with their own workarounds for this, like Google allowing you to specify Chrome or Safari form other Google Apps, or the facebook x-callback methods, but that requires each app to know about the existence of each other app, and code specifically for that other app. The coolest part of Choosy's approach (IMHO) is that all goes away for the developer. Choosy provides a central way for a dev to have their app work with *any other* app that can do an action, without having to know anything about the guts of those other apps. All they dev has to do is indicate a user action is a "Twitter" action, and Choosy does the rest -- allowing the user to pick an app, or pick a default app so they never have to pick again, and Choosy provides pretty sensible default actions as well.

Of course, as Rene points out, this only works if enough apps adopt the Choosy framework, and for that reason (and a few others), it would be better if Apple just provided such a framework as a system level service. But, lacking that, Choosey looks to be a pretty nice alternative.