サードパーティ製iOSアプリのデフォルトアプリを選択するための、オープンソースのフレームワーク

サードパーティ製iOSアプリのデフォルトアプリを選択するための、オープンソースのフレームワーク
サードパーティ製iOSアプリのデフォルトアプリを選択するための、オープンソースのフレームワーク

開発スタジオ Substantial の Alex Novosad によって作成され、GitHub でベータ版として本日リリースされた Choosy は、iOS にデフォルトのアプリ選択メカニズムがない問題を (少なくとも部分的に) 改善することを目的とした新しいサードパーティ フレームワークです。

OS Xとは異なり、iOSでは、ウェブリンク、写真、地図座標で共有されるルート案内などのデフォルトアプリをユーザーが選択することはできません。GoogleのAndroidでは、ユーザーがお気に入りのモバイルブラウザを設定したり、別のメールアプリを選択したりできるのに対し、AppleはこれまでiOSのデフォルトアプリとして自社製のアプリのみを使用するという考えに固執してきました。Alex Novosad氏によると、Choosyのアイデアは2013年末に生まれたそうです。最初のiOSアプリを完成させていた彼は、アプリに埋め込まれたユーザー名を開く際にどのTwitterクライアントを使うかをユーザーが選択できるようにしたいと考えていたのです。

Choosy は、過去に多くの iOS 開発者が直面した問題を解決しようと試みています。それは、ユーザーにリンクをデフォルト以外のアプリで開くオプションを提供することです。アプリに Choosy を実装すると、リンクを開くための「お気に入り」アプリを選択するよう求めるダイアログが表示されます。この動作は Android の動作に似ていますが、いくつか違いがあります。例えば、Web リンクを開くブラウザとして Chrome を選択すると、そのアプリからのすべてのリンクのデフォルト設定が Chrome になります。設定は手動でリセットできます。また、Choosy はアプリを削除した場合にデフォルトの設定を自動的にリセットするスマート機能を備えています。

Choosyの特徴は、開発者がアプリにハードコードする必要があるURLスキームや設定とは異なり、統合がサーバーサイドで行われることです。Choosyにはアプリの種類別に整理されたURLスキームの「辞書」が付属しているため、Choosyとの統合を希望する開発者は、URLスキームを手動で追加するのではなく、このデータセット(GitHubでも入手可能)を参照するだけで済みます。このコンセプトは、Launch Center ProのiOSアプリ向けURLスキームディレクトリに似ていますが、Choosyをアプリに組み込むことを希望するすべての開発者が利用できるように設計されています。

サポートしたいアプリ(ファーストパーティアプリを含む)ごとに固有のコードを書く代わりに、リンク先のアプリの種類(「type」はTwitter、マップ、ブラウザ、メールなど)に応じた汎用パラメータを渡します。Choosyは、その種類のインストール済みアプリと各アプリがサポートするパラメータを検出し、サポートされるパラメータとアプリ固有のパラメータ名に基づいて各アプリに適切なURLを作成し、そのURLを実行してアプリを起動します。

しかし、Appleが無視してきたiOSの領域を改善しようとした結果、ChoosyはiOSのAPI不足に起因する一連の制限とトレードオフを前提として構築されました。単一の共通データベースを複数のiOSアプリで共有できないため(SmileのTextExpander touchで発生した問題)、Choosyでサポートされているアプリとアイコンのライブラリを定期的にダウンロードしてデバイスにキャッシュする必要があります。サンドボックス化によって別の問題も発生します。Choosyはインストール済みのすべてのアプリの設定をシステムレベルで保存できないため、各アプリにデフォルトの選択肢が設定されることになります。

Choosyは非脱獄デバイス向けに開発されています。そのため、アプリサンドボックスのルールが適用されます。適切な方法が見つかるまでは、ユーザーのデフォルト設定はアプリごとに保存されます。ユーザーがアプリでTweetbotをデフォルトのTwitterクライアントとして選択した場合、別のアプリでも再度Tweetbotをデフォルトとして選択する必要があります。これが、私たちが可能な限りシンプルでクリーンなUIとアフォーダンスを実現しようとした主な理由の一つです。ユーザーがデフォルトアプリを複数回選択する必要がある場合、そのプロセスは可能な限りスムーズで一貫性のあるものにする必要があります。

ChoosyがGreg Pierce氏のx-callback-urlと同じくらい普及するには、iOS開発者はGitHubのリクエストを通じて、アプリがサポートするURLスキームを文書化する必要があります。Novosad氏によると、Choosyのロードマップには、iPad UIのデザイン改善、iTunes APIを使ったアプリアイコンの自動ダウンロード機能、アクセシビリティの向上、そして当然ながら、異なるパラメータを持つタイプに分類されたより多くのアプリのサポートが含まれています。

Choosy(そしてFacebookのApp Linksなど、iOSのアプリ間通信機能を強化することを目的とした他のサードパーティ製ソリューション)の最大の問題は、AppleがWWDCでiOS 8に搭載される新しいデータ共有機能を発表するかどうかという点です。iOSを厳密に管理するプラットフォームホルダーとして、Appleが開発する新しいAPIは、サードパーティへの依存がなく、ネイティブ統合が強化された状態で、常に開発者に「無料」で提供されます。Appleの次期開発者会議に関する噂によると、6月2日までにChoosyの要件や制限の一部を覆すような、新しいアプリ間通信機能を発表する日が近いのではないかと言われています。

しかし、ノボサド氏は心配していない。WWDCでの今後の発表について尋ねたところ、「iOS 8はChoosyのようなフレームワークが利用できるAPIを提供するだけかもしれません」と彼は言った。「開発者コミュニティからのフィードバックを得て、そこから改善していくのが楽しみです」と彼は言った。「iOS 8にクールな機能が搭載されたとしても、この秋までは、そしてiOS 7に残るアプリには、まだ何かが必要なのです」

Choosy をアプリに実装することに興味のある iOS 開発者は、GitHub のプロジェクト ページを確認してください。

クラブ・マックストーリーズ

追加コンテンツと特典にアクセスする

Club MacStories は 2015 年に設立され、ほぼ 10 年間にわたって毎週独占コンテンツを提供してきました。

毎週、毎月の電子メール ニュースレターから始まったものが、すべての MacStories ファン向けに設計されたメンバーシップ ファミリーに成長しました。

詳細については、こちらおよびクラブの FAQ をご覧ください。

Club MacStories : アプリ、ヒント、自動化ワークフロー、長​​文執筆、MacStories Unwind ポッドキャストへの早期アクセス、定期的な景品など、盛りだくさんの情報を満載した、電子メールと Web 経由の週刊および月刊ニュースレター。

Club MacStories+ : Club MacStories が提供するすべての機能に加え、アクティブな Discord コミュニティ、クラブの過去のカタログ全体を閲覧するための高度な検索機能とカスタム RSS 機能、ボーナス コラム、多数のアプリ割引などが含まれます。

Club Premier : 上記のすべてに加え、早期に、広告なしで、高ビットレートのオーディオで配信される当社の主力ポッドキャストの拡張バージョンである AppStories+ が含まれます。