読者です 読者をやめる 読者になる 読者になる

inFablic

Fablic開発者ブログ

WWDCで発表された気になる新機能とおすすめセッションまとめ

皆様初めまして。 iOSエンジニアのshobyです。

皆さん、WWDC 2015のキャッチアップはできていますか?

この記事では、実際にWWDCに参加した私が気になった新機能と、おすすめセッションについてお伝えします。

バッチリな方も、まだこれからな方も、ぜひご確認ください。

概要

  • 気になる機能
  • おすすめセッション
  • まとめ
  • 告知

気になる新機能

気になる機能を、セッションビデオやドキュメントなど、一般に公開されている範囲内からお伝えします。

  • App Thinning
  • Search APIs
  • Content Blocking
  • App Transport Security

App Thinning

app_thinning.png

AppStoreからDLするアプリの容量を減らしてくれる技術です。 以下の3つの要素から構成されています。

  • Slicing
  • BitCode
  • On-Demand Resources

Slicing

画像などのAssetsを各端末に最適化して、複数のバイナリに切り出してくれます。 (iPhone4s用には@2xのAssetsだけ含むバイナリ、iPhone 6 Plus用には@3xのAssetsだけ含むバイナリ…など)

BitCode

AppStoreへの提出時に、ビルド済みのバイナリではなく、中間形式でアップロードするようになります。 AppStoreからの配布では、中間形式から各端末に最適化したバイナリを配布してくれます。 アプリのアップデートをしなくても、Appleが最適化をかけてくれます。(将来的な話)

Search APIs

search.png

SpotlightやSafariの検索バーからアプリ内のコンテンツが検索できるようになったり、Webとアプリを紐付けることができます。

以下の3つの要素から構成されます。

  • NSUserActivity
  • CoreSpotlight
  • Web Markup

NSUserActivity

ユーザーがアプリ内で閲覧したコンテンツをindexして、SpotlightやSafariの検索バーから検索することができます。 これにより、アプリへの再訪問を促すことができます。

indexされたコンテンツは基本的にそのデバイス内でしか検索することができませんが、 WebのURLを紐付けてPublic Indexをすることにより、 アプリをインストールしていないユーザーのSpotlightやSafariの検索バーにも、コンテンツを表示することができます。 アプリがインストールされていないユーザーがタップするとWebに飛びます。

多くのユーザーに閲覧され、Public Indexをされた数が多いコンテンツしか検索結果には出ないようです

CoreSpotlight

CoreSpotlightはSpotlightに表示させるコンテンツを追加、更新するためのFrameworkです。 NSUserActivityはユーザーの閲覧したコンテンツのみをindexするための仕組みですが、 CoreSpotlight APIを使うことでアプリ内の任意のコンテンツを検索させることができます。 ただし、こちらはデバイス内での検索限定です。

Web Markup

Web上のコンテンツ特定の書式でmark upすることにより、Spotlight内で検索させることができます。 また、Webページを開いた際に、DeepLinkで直接アプリのコンテンツに飛ばすこともできます。

Content Blocker

ユーザーがSafari上で任意のコンテンツをブロックできる機能です。 iOSではApp Extensionとして、アプリに紐づく形で提供することができます。 ユーザー側からすると、Content Blocker機能を搭載したアプリをインストールし、iOSの設定画面から有効にすることにより、アプリがブロック対象としているコンテンツをSafari上でブロックすることができます。 また、SFSafariViewControllerという新しいViewControllerでもコンテンツのブロックが有効になります。

Content Blocker機能では、以下のことができます。

  • HTML内の任意のElementを消せる
  • 任意のURLをブロックする

ペアレンタルコントロールアプリや、広告ブロックアプリなどを作ることができます。

App Transport Security

HTTP通信は、デフォルトでHTTPS通信に置き換えられます。(http://がhttps://に変換される) Info.plistで対象外ドメインに指定しないと、HTTPでは通信できません。

APIやサポート用のサイトがHTTPSに対応していない場合、この機会にきちんと対応しておくのが良いと思います。

おすすめセッション

WWDC 2015のおすすめのセッションを紹介します。(以下の動画はSafariでのみ再生が可能です)

Platforms State of the Union

union.png 新しい機能についての概要です。忙しくてもこれだけは見ておいた方が良いと思います。 このセッションを見るだけでWWDCでの概要を広く浅くつかめます。

What's New in Cocoa Touch

cocoa.png

Cocoa Touchの新機能について。UIStackViewやiPadのMultitaskingなどについて解説してくれています。

App Thinning in Xcode

slising.png

アプリの容量を減らすApp ThinningについてのSessionです。

Introducing Search APIs

search_api.png

上で解説したSearch APIsについての詳しい解説Sessionです。 今後、アプリ内コンテンツの検索は大きな価値を持っていくこととなるはずです。

Safari Extensibility: Content Blocking and Shared Links

content_blocker.png

Content Blockerの詳細についてです。 BlockListの作成方法についても詳しく解説されています。

Networking with NSURLSession

security.png

App Transport Securityや、HTTP 2.0の対応についての詳細です。 HTTPが使えなくなるのは実際かなり大きな変更なため、通信が関わるアプリを開発されている方は、閲覧するのをおすすめします。

What's New in Swift

swift.png

ErrorHandlingなど大きく変わったSwift 2.0もきちんと押さえておきましょう。

Swift and Objective-C Interoperability

nullability.png

Objective-CとSwiftを相互利用する方法についてのSessionです。 NullabilityやLightweight GenericsなどのObjective-Cの新しいSyntaxについても解説されています。

Designing with Animation

animation.png

アニメーションをアプリに取り入れるメリットや、アニメーションの効果的な使い方についてです。 実例を交えてわかりやすく解説されています。 スライドではわからないので、動画を見るのをおすすめします。

まとめ

WWDC 2015では多くの機能が発表されましたが、その中でもApp Thinning、Search API、Content Blocking、App Transport Security辺りが注目すべき機能です。

App Thinningはアプリの容量を削減することができ、Search APIsによりアプリ内のコンテンツの検索やWebとの連携を強め、 Content Blockingによりユーザーが任意のコンテンツをブロックすることができるようになります。 また、App Transport Securityにより、HTTPがデフォルトでは使用できなくなりました。

告知

6/30(火)の19時00分からGoogle I/O、WWDCの報告会を開催します。 Google I/OとWWDCどちらも参加したhuinと、WWDCに参加したshobyが、 発表された最新技術についてお話しします。ぜひご参加ください。

fablic.connpass.com