フレームワークの魅力
これまでmacOSおよびiOSのシステム内部では、「Account.framework」というフレームワークでインターネットアカウントの管理、「Social.framework」というフレームワークでツイッターやフェイスブックなどインターネット上の著名サービスの利用の仕組みを提供してきました。
これらのようにOSに標準提供されるフレームワークの場合、アプリごとにサービスのパスワードといった秘密の情報を管理する必要がなくなるため、手軽にサービスと連係できるようになります。アプリの利便性が上がり、ひいてはMacやiPhone、iPadといった製品の魅力が高まるというわけです。
一方サービス側も、OSと同様に、アプリがそのサービスを簡単に使えるようにするフレームワークを提供しています。ツイッターなら「Twitter Kit for iOS」、フェイスブックなら「iOS用Facebook SDK」などがそれに当たります。これらのフレームワークを組み込むことで、開発しているアプリとサービスを簡単に連係させることができます。サービス側が提供しているフレームワークの利点は、サービスの最新機能や細かい機能までも使えること、アンドロイドなどほかのOSでもフレームワークが提供されていて、同じ感覚で機能追加ができる点にあります。
そんな中、サービス側のフレームワークで一例に挙げたTwitter Kit for iOSのドキュメントに重要な記載が追加されました
変節したApple
今年6月に開催されたWWDC 2017直前に発表された「Twitter Kit 3」のドキュメントの中に「Migrating from iOS Social Framework」(訳:iOSのSocial Frameworkからの移行)という章が加えられ、「iOS 11 no longer supports using Twitter through the built-in social framework.」(訳:iOS11ではOSに組み込まれるSocial frameworkを使ったツイッターの利用はサポートされない)などという衝撃的な説明が掲載されたのです(図1)。
原稿執筆時点で、アップルはこの件について特にコメントを発表していませんが、このツイッターキットのドキュメントが事実だとわかる情報は出しています。図2はアップルが公開しているSocial.Frameworkのドキュメントの1つで、Social Frameworkで利用される定数(キーワード)の1つ「SLServiceTypeTwitter」についての説明になります。この定数は、Social Frameworkを使ってツイッターを利用する際に使われるものです。
ここをよく見ると、iOSにて「Deprecated」(廃止)と赤字で記載されているのです。つまり、iOS 11ないし、それ以降では、SLServiceTwitterという定数は利用できない、Social Frameworkにツイッターへつないでくれと伝えることができなくなってしまいます。これはツイッターだけではなく、フェイスブック、リンクトイン、ウェイボなどといったほかのSNSも含めた定数すべてが同じく廃止となるのです。
廃止にする影響は?
廃止されるのはiOS 11(とそれ以降)のみで、macOSではこれまでどおり利用可能です。少なくとも先の定数の定義を見る限りは、macOS 10.8以降で有効だととれるので、おそらくmacOS 10.13 ハイ・シエラでも利用できるのでしょう。
一方、iOS 11向けに新規開発されるiOSアプリでは、Social Frameworkを使ったインターネット上のサービスへの接続ができない、ということになります。
では、iOS 10ないし、それ以前で動いていたこれまでのアプリはどうなるでしょうか? 正直いうと、これはまだわかりません。iOSには高度な互換性レイヤーが隠されており、古いOS向けにリリースされたアプリを新しいiOSで動かす際にも、正常に動作させるためにOS側の挙動を整えています。ひょっとしたら、iOS 10ないし、それ以前のアプリをそのまま使う際に限っては、Social.frameworkも正常に動くのかもしれません。
しかし、先日アップルからiOS 11において32bitアプリがサポートされなくなる旨のリリースがあったため、そもそも古いアプリがそのまま使えないという状況になっているのも事実。
細かいことはiOS 11がリリースされるまでわかりませんが、いずれにせよiOSアプリの作者は今後 Social.frameworkを使えないことになるため、TwitterKit for iOSやiOS向けFacebook SDKなどを使うようにしていかなければなりません。開発者にとっては、大変な夏を迎えることになりそうです。
Twitter Kitのドキュメント(図1)
ツイッターによる開発者向けのWEBサイトに掲載されたTwitter Kitのドキュメントです。中央部分に「Social FrameworkでTwitterに書き込みできない」旨が記載されています。【URL】https://dev.twitter.com/twitterkit/ios/migrate-social-framework
「Deprecated」と記されたAppleの開発者ページ(図2)
こちらはアップルによる開発者向けWEBサイト。写真内の囲みにあるとおりiOS 11で「Deprecated」と記載されているのがわかります。【URL】https://developer.apple.com/documentation/social/slservicetypetwitter
【Deprecated】
アップルに限らず、技術系文書を読むとよく見かけるのがこの「Deprecated」と言う単語です。単語の意味としては「強く反対する」「避難する」など、否定的な意味ですが、技術系文書では「その機能を非推奨にする」、ないしは「廃止する」という意味合いになります。その意味の強さはベンダーによって異なり、アップルが「Deprecated」と書いた場合は、文字どおり「その機能を廃止したからまったく使えないよ」と捉えるべきでしょう。
【iOSアプリの32bit対応】
iPhoneは5sから、iPadは初代Airから、すなわちA7チップを搭載したデバイスから、搭載CPUが64bitアプリ対応になっています。逆に、iPhone 5やiPad 4など、A6チップやそれ以前のCPUを搭載したiOSデバイスは32bit CPUで、32bitのアプリだけが動作します。64bitのiPhone、iPadでも32bitのアプリは動かせましたが、iOS 10.3からは32bitのアプリは起動時に警告が出るようになっています。そして先日アップルから正式にリリースが出た結果、iOS11では32bitのアプリに対応しなくなることが確定しました。
文●千種菊理
本職はエンタープライズ系技術職だが、一応アップル系開発者でもあり、二足の草鞋。もっとも、近年は若手の育成や技術支援、調整ごとに追い回されコードを書く暇もなく、一体何が本業やら…。