開発ツールに関しては、デベロッパー向けのメディア以外で大きく扱われることはあまりない。しかし、Apple（アップル）がWWDCで発表した開発ツール類は、今後のアップル製品向けのアプリの数と質の両方に、多大な影響を与える可能性が高い。それはiPhoneだけに限らない。macOS、watchOS、tvOS、そして新たに加わったiPadOSを搭載する製品にすべて関わってくる。

今回のイベントの主役ではなかったが、デベロッパーが盛んに話題にしていたのはSwiftUIだった。

5年前、アップルはプログラミング言語Swiftを発表して、アプリ開発をできるだけ容易なものしようとする動きを見せた。そして今回のWWDCでは、SwiftUIと呼ばれるまったく新しいユーザーインターフェースのフレームワークを発表し、そのビジョンをさらに押し進めた。SwiftUIを利用することで、スムーズなアニメーションの付いたフル機能のユーザーインターフェースを、シンプルな宣言的コードによって実現できる。

デベロッパーにとっては、これは大幅な時間の節約につながる。SwiftUIが備える自動化の機能によって、アプリの設計を洗練されたものにできるだけでなく、バグを減らすことになるからだ。また、アップルがデベロッパーに説明したところによれば、「単にコードの量を減らせるだけでなく、より良いコードにできる」ということだ。

シンプルであることを目指したのは、そうでなければどうしても避けられない、さまざま種類の誤りの発生を防ぐことを意図したもの。SwiftUIのコードは、まるで他の人からユーザーインターフェースについて説明を受けているかのように読みやすい。さらに、デベロッパーは異なるプラットフォーム間で、より多くのコードを再利用できるようにもなる。

それによって、開発サイクルの大幅な短縮にもつながる。デベロッパーが、アプリのユーザーインターフェースの一部だけを変更したくなった場合でも、素早く、しかも簡単に変更できる。

SwiftUIのフレームワークは、インターフェースのレイアウトをはじめとして、さまざまな面に効果を発揮する。たとえば、iOS 13が装備するダークモードへの対応、アクセシビリティ、右から左へ向かって書く言語への対応を含む国際化などだ。しかもSwiftUIは、同じAPIをiOS、iPadOS、macOS、watchOS、さらにtvOSという複数のOSに共通のものとすることで、アップルのアプリのエコシステム全域にまたがって使えることも重要なポイントだ。

このような特徴によって、これまでiOSだけに注力していたデベロッパーも、既存のアプリをSwiftUIに対応させさえすれば、クロスプラットフォームの開発に着手しやすくなる。

もちろん、アプリの性格によって、どこまでSwiftUIに対応できるかの程度は異なるだろう。しかしSwiftUIは、新規のデベロッパーにとっても魅力的なだけでなく、初めてアプリ開発に取り組むような初心者をも惹きつけるものがある。

SwiftUIは、Xcodeの新バージョンとともに発表された。このXcode 11には、新しいグラフィカルなUIデザインツールが含まれている。それによってデベロッパーは、コードを書くことなく、SwiftUIを使ったユーザーインターフェースの開発が可能となる。

視覚的なデザインツール上でUIが変更されると、そのつど新たなSwiftコードが自動的に生成される。さらに、そのアプリがどのような表示になり、どのように動作するのか、iPhone、iPad、iPod Touch、Apple Watch、Apple TVなど、接続されたデバイス上のリアルタイムのプレビューで確認できる。

これによりデベロッパーは、各プラットフォームでコードがどのように機能するかをテストできる。たとえば、マルチタッチに対してどのように応答するか、カメラやセンサー類の動作はどうかなど、開発プロセスの中で確認できるのだ。

Watchアプリ

watchOSに関しては、SwiftUIによって、Watchアプリならではのアニメーションとエフェクトの開発の複雑さを解消することができる。これまでは、その難しさのせいで、Watchアプリに手を出すのを躊躇するデベロッパーもいた。

SwiftUIは、スワイプして削除、リストアイテムの並べ替え、カルーセルのスライド、デジタルクラウンへの直接アクセス、といった機能を備えたWatchアプリの開発をサポートする。

またApple Watchは、デバイスから直接App Storeに接続できるようになり、ペアとなるiOSデバイスやiPhoneがなくても、スタンドアローンのアプリをインストールできるようにもなった。

このスタンドアローンのWatchアプリは、iOSから独立して動作させることができるだけでなく、Apple Watchを独立したプッシュ通知のターゲットに設定することも可能となる。つまり、そのユーザーがログインしているすべてのデバイスにではなく、Watchにだけ通知を送信することができる。

Watchアプリは、CloudKitのサブスクリプションをサポートできるようになり、プッシュ通知をコンプリケーションとして表示することで、ユーザーに最新情報を伝える。Watchアプリは、対応するiPhoneアプリを使っていないユーザーをもターゲットにできるようになったので、ユーザー名とパスワードを入力するテキストフィールドを表示するようになった。そこに入力してサインアップするか、今回発表された「Sign in with Apple」ボタンを使うこともできる。状況によってはアップルでサインインが必須の場合もある。

Watchアプリは、オーディオのストリーミング再生もできるようになった。これにより、これまで可能だったものとは異なるタイプのアプリへの道が開かれる。デモで見たように、Pandoraのようなインターネットベースのストリーミングサービスを利用して、スポーツ中継や音楽をストリーミング再生するアプリを想像するのも難しいことではなくなった。

さらに、watchOSの新しい拡張ランタイムは、ユーザーが手首を下げた状態でも動き続ける、新たな種類のWatchアプリの開発を促すことにもなるだろう。

たとえば、セルフケア、マインドフルネス、理学療法、スマートアラーム、健康状態のモニタリング、といった分野のアプリは、このランタイムを利用することで、Apple Watchのユーザーにとって新たな体験を創出することができるだろう。

これまでのWatchアプリのエコシステムが停滞したのは、アプリ開発の複雑さによるものだけでなく、ユーザーが手首を持ち上げている状態でしか動作しないというような制限をデベロッパーに課してきたことにもよる。ユーザーの手首の上で何ができるかを考えることを止めても、たとえばセンサーやストリーミングオーディオを利用することで、デベロッパーは単純に普通のiOSアプリを移植することも可能となる。

驚くべきことではないが、これまでそうしたアプリの多くは失敗し、やがて削除されることになった。アップルは、Watchアプリのエコシステムの再起動を狙っている。

macOSアプリ

今回のWWDCで発表された新しい開発ツールは、iOSのデベロッパーが、1億人のアクティブなMacユーザーにアピールする機会を生むことになる。

アップルによれば、いくつかの純正iPadアプリは、Mac上でも十分通用するものであることを認識しているという。しかし、一般のデベロッパーは、macOSのAppKitを使ってiPadアプリを移植する時間的な余裕がない。そこで今年のWWDCでは、デベロッパーにとって「最小限」の労力でiPadOSアプリをMac用に移植できるような技術を発表した。

現在、iPad用には100万本を超えるアプリのエコシステムがあり、その多くはMac上で動かしても意味のあるものだと考えられるということだ。

この取り組みの一環として、アップルはiOSからMacに40個ものフレームワークを移植した。その結果、わずかな例外を除いて、ほぼすべてのiOSのAPIの移植が完了した。これは、UIKitをネイティブなフレームワークとして採用し、次期macOSのリリース、Catalinaに直接組み込むことによって実現した、とAppleは述べている。

さらにアップルは、iPadアプリをMacに移植するための3段階のプロセスを用意した。

その最初のステップは、Xcodeのプロジェクト設定で「Mac」と書かれたチェックボックスをオンにすること。

するとXcodeでは、ソースに変更を加えるたびに、iOS、iPadOS、そしてmacOS用のすべてのアプリが自動的に更新されるようになる。

またiPadアプリを優れたものにすることは、ベストプラクティスをサポートするところから始まるという考えに沿って、デベロッパーはMac用にカスタマイズすべき部分を示唆される。つまり、状況に応じてメニューバー、タッチバー、マウスホバーのイベントなどをサポートすべきことが示される。

チェックボックスをオンにするだけで優れたMacアプリが開発できるわけではないが、それによって作業量は軽減される。

ただし、アップルが（優れた」iPadアプリの条件として、どの程度のものを要求するかについては疑問も残る。アップルは最大の効果を得るためには、デベロッパーはiPadのベストプラクティスを採用すべきだとしている。たとえば、外部キーボードをサポートしたり、Metalのようなキーとなる技術を採用することなどだ。

とは言え、もしアップルが本当にMac App Storeの品揃えを充実させたいなら、そしてもっと利益を生み出すアプリを増やしたいと考えているなら、Macに移植されるiPadアプリに、それほど多くを強いることはないかもしれない。

アップルでは、WWDCで発表する前に、すでに10社程度のデベロッパーとこの移植プロセスを試している。その中には、アメリカン航空、Crew、DCユニバース、Post-It、ツイッター、Tripit、フェンダー、アスファルト9、Juraなどが含まれる。

iPadOS

ところで、iPad上で動作するiOSには、iPadOSという新たなブランディングが施されることになった。

これまでのiPadは、発売当初からずっとiOSを搭載してきた。しかし時が経つにつれ、iPadの大きな画面を活かすための独自の機能も実現してきた。たとえば、スライドオーバー、スプリットビュー、ドラッグ＆ドロップや、Apple Pencilのサポートなどが挙げられる。

まずはじめに、iPadOSでは、ホーム画面のアイコンのグリッド間隔は狭くなる。これは、サードパーティアプリが使えるホーム画面のスペースが広くなることを意味する。また、ウィジェットはホーム画面に固定できるようになる。これも、iPadアプリがホーム画面に占めるスペースを確保することになり、それだけユーザーの注意を引くことになるだろう。

しかし、iPadが本当に優れているのは、ノートパソコンの代わりに使えること。生産性も高くなり、スケッチやデジタルアートなど、クリエイティブな使い方も可能なのだ。

仕事効率化アプリのデベロッパーにとっては、１つのアプリから独立した別ウィンドウを開けるようになるのは、パソコン的な使い方を可能にする便利な機能だ。さらにアプリExposeや、３本指によってコピー、カット、ペースト、取り消しを可能にするジェスチャーも使えるようになる。

デベロッパー向けのツールについては、PencilKitというAPIが新たに加わり、サードパーティのアプリでも、純正アプリと同様に新しいApple Pencilにアクセスすることが可能になる。

それでも、実際にiPadアプリの開発を促進するのは、iPadアプリを簡単にMacに移植できるようになることかもしれない。言い換えれば、iPadアプリを開発しようというデベロッパーのモチベーションを本当に高めるのは、以前よりもずっと少ない労力で、同じアプリをMacでも動かせるようになること、なのかもしれない。

tvOS

Apple TV用のtvOSは、SwiftUIとiPadアプリのMacへの移植の話題に比べると、ほとんど注目されなかった。それにはアップルは、Apple TVとそのストリーミングサービス、つまりApple TV+に関しての熱意を示すイベントを開催したばかりだったということもある。

とは言え、SwiftUIはここでも活躍する。tvOSアプリでも、コードの再利用が可能になるからだ。

拡張現実と機械学習

アップルが今回のWWDCで発表したのは、作業をシンプルにして開発を促進することを狙ったものばかりではない。他の技術としては、まずARKitをさらにアップデートしたARKit 3が挙げられる。これは、モーションキャプチャー機能を備え、フレームの中の人物も認識できるようになった。それによって、人物をARオブジェクトの後ろに配置したり、前に出したりすることなどが可能となる。

これもアップデートされたCore ML 3を使えば、デベロッパーが機械学習の専門知識を持っていなくても、自分のアプリで機械学習を構築し、学習させ、その結果を利用できるようになる。

他にも、MetalやCreateMLのような重要な技術に進化が見られる。そうした技術を利用することで、デベロッパーは、それぞれの領域で、より品質の高いアプリを開発できるようになるだろう。

それでも、もっとワクワクさせ、興味を引きつける部分は、やはりアップルが現在最も人気のあるアプリプラットフォームであるiOSにテコ入れして、アプリのエコシステム全体に活を入れようとしていることだろう。今回のWWDCで発表されたツールによって、アップルは開発とデザインを合理化し、よりシンプルなものにしようとしている。それにより、より多くの人にプログラミングに参加してもらい、アプリのデベロッパーのコミュニティがiPhoneを超えて発想してくれるよう促しているのだ。

［原文へ］

（翻訳：Fumihiko Shibata）