2020年のWWDCは、新型コロナウイルスによる感染症拡大のため、ほかの様々なイベントと同様に開催形式が変わる。現地時間の22日(日本時間では23日)、KeynoteとPlatforms States of the Unionが行われ、その後に様々なセッションビデオが公開される予定だ。
期待
Appleプラットフォームの開発者としては、WWDCは一年で最大の楽しみである。昨年はCatalystやSwiftUIが発表され、たいへん盛り上がった。今年は何が発表されるのか、否が応でも期待が高まる。
SwiftUI 2
今年はとうぜん、SwiftUIの大幅なアップデートが出てくるだろう。画面いっぱいに「SwiftUI 2」の文字が大写しになるのが待ち遠しい。SwiftUIでアプリを作ろうとするとすぐに気づくのだが、SwiftUIはまだ機能不足である。
WKWebView
をラップしたWebView
を作るとする。ブラウザの「戻る」機能を作るために、WebViewが戻れるのかを知りたい。これにはWKWebViewのcanGoBack
プロパティを使えばいいはず。実際に戻るにはgoBack(_:)
メソッドを呼び出す。こういうのが、SwiftUIでは素直に実装できない。Reactであれば、Ref
という仕組みがあって、実際に作成されたコンポーネントへの参照が得られるが、SwiftUIにはない。TextField
のイニシャライザのように、onXxx
というコールバックを渡すとか、なんらかのシグナルをPublisherとして渡すとか、そういうことになってしまう。これは面倒なので、このようにViewが内包する状態を参照したり、あるいはViewに何かシグナルを送ったり、そういう機能が追加されると嬉しい。
SwiftUIがカバーする範囲がもっと拡がる必要もある。macOSのアプリをSwiftUIで作った経験から言えば、例えばウインドウそのものをSwiftUIで作れるとか、ウインドウのツールバーとか、そういう部分もカバーされていてほしい。ただし、現状のCocoaにはResponder-chainを活用した部分が多く、SwiftUIでこれを解決するのは骨が折れるだろう。
なんにしても、SwiftUIが非常におもしろい、未来の約束されたフレームワークであることは疑いようがない。宣言的なUIフレームワークであることはもちろん、実際のプレゼンテーションと、コード上の表現が意図的に分離されているところに、その本質がある。コード上では同じButton
でも、macOSとiOS/iPadOS、watchOS、tvOSで、それぞれ見かけが異なる。このことは、プラットフォーム毎に最適化されたUIを提供する上で都合がいい。あるいはこの先の、まったく新しいプラットフォーム(もちろんARグラスだ)においても、SwiftUIは役に立つことだろう。
そしてもう一つ、ポストInterface Builderの時代の到来だ。Interface Builderは、今やXcodeの一機能であるが、もともとは独立したアプリケーションとして、Project Builder(Xcodeの前身)を補完するものだった。最近はあまり聞かれないが、Interface BuilderはRADツールと呼ばれていた。SwiftUIの時代では、SwiftUIのコード自体がRADツールであろう。SwiftによるDSLめいた記述でUIを宣言できる。そしてこれは、例えばXcode for iPadのような開発環境において、UI開発の本流となるだろう。
ARM Mac
iPad Proが、「ほとんどのノートパソコンより高速」であると宣伝されるようになってしばらく経つ。少なくともベンチマークの結果からは、この文句に嘘はない。
Macに搭載されると噂されているApple A14ベースの独自のプロセッサは、12コアで、既存のMacBook Airに搭載されているIntelのプロセッサよりも高性能とされる。A14プロセッサはTSMCの5 nmプロセスで製造されると言われている。現在のIntelは、14 nmもしくは10 nmプロセスでプロセッサを作っており、A13までの7 nmプロセスにも到達していない。IntelとARMを単純には比較できないとはいえ、プロセスルールが半分であれば、Intelプロセッサよりも高い性能を得られるというのにも信憑性がある。
開発者からみたとき、ARMへの移行はどれくらい大変なのか。かつてPowerPCからIntelへの移行時に行われたように、Rosettaのような互換レイヤーが提供される可能性もある。そうでなくても、単純なソフトウェアであれば、ソースコードから再コンパイルするくらいで対応できることが多いだろう。バイナリを直接扱っている場合、バイトオーダーやアラインメントによっては対応が必要になるかもしれない。少し厄介なのは、コンパイル済みのSDKやライブラリを使っている場合で、それらの対応を待つ必要がある。最も困難なのは、細かなチューニングが必要なアプリケーションだろう。
消費者向けにARMのMac端末が発売されるのは2021年という噂である。しかし開発者向けには、それに先立ってARM Macの移行キットが提供される可能性もある。PowerPCからIntelへの移行時には、移行キットがリースで提供された。あるいはiPad Proをその目的で使えるとおもしろいが、飛躍しすぎだろうとも思う。
新しい可能性
iOS 14は、前年の失敗から、安定性とパフォーマンスを重視したリリースになると噂される。それでも戦略上、新機能がまったくないということにはならない。
iOSは、その当初からサードパーティに対しては大きな制約の中での開発を強いている。それはセキュリティのためであったり、あるいは端末のリソースを奪い合わないように、という目的がある。反面で、技術的に解決が可能になり、かつそれが必要だと認められれば、新しいAPIが開放されてきた。例えば初期の頃の、アプリのバックグラウンドでの動作を制限する代わりに、Push Notification Serviceを提供する、というのがそれだ。
iOS 14でも、いくらかのAPIが解放されることが期待される。その一つが、ホーム画面のウィジェットだ。iOSにはこれまでにもToday Widgetがあるが、すごく便利かというと、そうでもないと思う。そもそもiOSのホーム画面は、本格的なオーバーホールが必要な時期をとっくに過ぎている。初めてiPhoneが出た頃、私たちが1日に使うアプリの数はたかが知れていた。しかし近年、何もかもがスマートフォンで行える時代においては話が違う。ホーム画面にウィジェットを並べることができたら、Apple Watchのコンプリケーションのように、そのとき必要な情報を一望できるかもしれない。実装はApp Extensionになるだろうけど、全体的なアーキテクチャはApple Watchに近い可能性もある。
もう一つ、デフォルトのアプリを変えられるようになるという噂がある。ChromeをSafariの代わりにデフォルトにできたら、喜ぶ人も多いだろう。ついでにChromiumのようなものも許可してくれると嬉しい。Xcode for iPadの噂も含め、特にiPadOSをデスクトップクラスにしようという流れがあると思う。当然、現在の制約を大きく緩めるときが来ていると思う。
付録:メディアの予想
Appleに関する様々な情報を扱うメディアのうちいくつかが、WWDCで発表される可能性のある内容を予想している。予想と言っても、リーク情報をもとにしているものもあり、精度にはグラデーションがある。
以下の記事を参照して、大まかに一覧にした。
iOS 14
よりカスタマイズ可能なホーム画面
- リスト表示オプション
- ソート
- 最近使った順
- 未読の通知を優先
- Siriの提案
- ソート
- ホーム画面ウィジェット(Avocado)
壁紙
サードパーティのアプリをデフォルトに設定する機能
AR
- 新しいARアプリケーション(Gobi)
- 周囲の情報をARで得る
Siri
- サードパーティの開発者による音声の変更
Messages
- 送信済みのメッセージを取り消す
@
でメンション- グループメッセージでメンションのみを通知する
- グループメッセージでの入力中表示
- メッセージを未読にする
Safari
地図
- Apple Storeとの連携
- 地図アプリからGenius BarやTrade Inのサービスを確認できる
- Appleの認定サービスプロバイダでも同様
- カップルシートや子ども割引、プライベートルームを持つ施設のハイライト
- IMAX上映を行う映画館のフィーチャー
探す
- 誰かがスケジュールされた時刻に特定の場所に到着しなかったことの通知
- 例えば、子どもが学校に到着しなかった、あるいはパートナーが職場に到着しなかった
- 合わせて、設定された時刻よりも早く出発したという通知
- ARを使って視覚的に見つけられる
Podcasts
Clips
Keychain
- 同一のパスワードを複数のサイトで使い回していることに対する警告
- 二要素認証に使われるトークンの保存
CarPlay
- CarPlayの壁紙のカスタマイズ
CarKey
- iPhoneやApple Watchで車を解錠したりコントロールできる
HomeKit
- 電灯のためのNight Shift
- HomeKitが時刻に合わせて自動的に電灯の色温度を調節する
- HomeKitのセキュアビデオ機能に顔の識別機能
アクセシビリティの強化
- 聴覚を失った人のために、火災警報やサイレン、ドアのノック、ドアベル、あるいは赤ちゃんの泣き声のような、重要な音声を検知して、触覚フィードバックに変換する
パフォーマンスと安定性
そのほか
- 新しいスタンドアローンのフィットネスアプリ(Seymour)
- AnimojiやMemojiに関する何か
#shotoniphone
チャレンジが写真アプリに統合される- Apple PayのAlipayサポート
iPadOS 14
Apple Pencil
- 入力フィールドに手書きで入力し、テキストに変換する
Safari
- Webサイト上でApple Pencilの入力を完全にサポート
Xcode for iPad
Final Cut Pro X for iPad
watchOS 7
文字盤
- 文字盤の設定の共有
- iMessageやAirDrop、そのほかの方法で共有する
- Infographシリーズの新しい文字盤、Infograph Pro
- タキメーターを特徴とする
- Internationalウォッチフェイス
- 写真の文字盤で共有アルバムをソースにする
子ども向けのApple Watch
- 保護者のiPhoneでセットアップ/管理する仕組み
- SchoolTime
- 学校にいる時間に使えるアプリやコンプリケーションを管理する
- アクティビティのカロリー消費を、動いていた時間に
睡眠トラッキング
- 新しいSleepアプリで睡眠をトラッキングする
- iPhoneのHealthアプリから睡眠の目標を設定
- 睡眠時間や質を向上させるための助言も含まれる
- コントロールセンターに睡眠モード
- 新しいハードウェアが必要かもしれない
血中酸素飽和度
- 血中酸素飽和度の測定
- 新しいハードウェアが必要かもしれない
そのほか
macOS 10.16
Messages
Shortcuts
- macOSでもShortcutsが使える
tvOS 14
Kids Mode
- 子ども用のアカウントを作成
- 使用できるアプリを管理
Screen Time
- Screen TimeがtvOSにも拡張される
そのほか
HomePod
ハードウェア
再デザインされたiMac
- これまでより細いベゼル
- iPad Proのようなデザイン
- 21.5インチではなく23インチに
- ラインナップがすべてSSD
- Fusion Driveは廃止
- 第10世代IntelCoreプロセッサ(Comet Lake)が採用
- AMDのNaviアーキテクチャのGPU
- Apple T2セキュリティチップがiMacとして初めて搭載
Apple TV
AirPods Studio
- オーバーイヤーヘッドフォン
- 頭部や首への装着を識別
- イコライザのカスタマイズ
- アクティブノイズキャンセリング
- ハイエンドのプレミアムバージョンとフィットネスにフォーカスした軽量のバージョンがあるかもしれない
- 磁力によってパッドやヘッドバンドを交換できるかもしれない
ワイヤレス充電マット
- 小さなワイヤレス充電マット
HomePod
- 現行モデルの半分程度の大きさ
AirTag
- 財布やバッグ、鍵に取り付けるトラッカー
- 探すアプリからトラックできる
- 空間認識に対応した超広帯域チップの技術を含むかもしれない
ARM Macへの移行
- MacのラインナップをARMプロセッサへ移行する計画
- A14をベースにする
- 12コアのカスタムARMプロセッサ
- 8つの高性能コアと4つの高効率コア
- Intelのプロセッサを用いる現行のMacBook Airより著しく強力
- GPUの性能やAIに関する演算性能も注目に値する向上が起きる
- 12コアのカスタムARMプロセッサ
- コンシューマ向けのARMチップが搭載されたMacハードウェアはまだ発表されない
- 発売は2021年からになる
- 開発者向けに移行のロードマップが示される
- 何らかの開発用移行キットのようなハードウェアが提供されるかもしれない