Project Catalystは大きな話題になってはいるが、サプライズではなかった。なぜなら、昨年のWWDCの基調講演で最後のサプライズとして開発発表されていたからだ。今年はProject Catalystの後にARKit 3の発表とインパクトのあるデモがあり、「今年はARで終わりか……」という雰囲気になりかけた。ところが、さらに「One more thing...」のようなサプライズがあった。「SwiftUI」の発表だ。

  • 「Swiftにとって大きな年になる」とCraig Federighi氏 (ソフトウェアエンジニアリング担当SVP)

SwiftUIは、Appleプラットフォーム全体の共通UIフレームワークであり、Appleの開発者サイトのSwiftUIのページには次のように書かれている。

「Better apps. Less code.」

SwiftUIがなぜ歓迎されているのかというと、癖の強いObjective-Cではなく、シンプルで読み書きしやい宣言型のSwift構文で、しかも共通のAPIで、全てのAppleデバイスのUIを開発できるからだ。

アプリ作りに挑戦してみたいと思ったしよう。Webか、アプリか、アプリだったらPCか、モバイルか、モバイルならiOSか、Androidか、というように悩むことになる。全てをサポートできたら良いが、時間は限られる。だから、TwitterがMacのネイティブアプリから撤退したように、優先順位をつけて選択することになる。クロスプラットフォーム対応を実現するソリューションとして、JavaScriptによるWebアプリ開発に近い作法でAndroidアプリとiOSアプリの両方を開発できるReact Nativeのようなソリューションが出てきているが、複雑なプロジェクトに使うには不安が残る。ネイティブ言語による開発の質と安定性は捨てがたく、悩みは尽きない。

AppleはApple製品向けのアプリを開発する人を1人でも増やしたい。そしてProject Catalystからも分かるように、AppleはiPhoneだけではなく、1つでも多くのApple製品に提供してもらいたいと考えている。

Swift/Objective-C (iOS)か、それともJava (Android)を学ぶべきか、という悩みに比べたら、iOSか、Macかというような同じApple製品の違いは乗り越えやすい。それでも、Objective-Cの困難さ、異なるAPIへの対応といった手間が存在した。

SwiftUIによる開発で、アプリ作りの困難さが格段にやわらぐ。開発手法を会得したら、iPhoneだけではなく、iPad、Mac、Apple Watch、Apple TV、Appleプラットフォームの全てのデバイスのアプリ作りに使える。しかも、ネイティブ言語によるネイティブアプリの開発である。

  • watchOSにとってはネイティブアプリを構築するための初めてのフレームワーク

「シンプルに作れる」からアプリ作りに挑戦する人が増えるし、開発の時間やコストを抑えられる。Appleプラットフォームの全ての製品に可能性が広がるというのは、開発者にとって大きな魅力になる。iOSとAndroidよりも、Appleのデバイス網羅を優先する会社が増えるきっかけになるかもしれない。何より、開発の容易さによって、より多くのアイディアが形になるだろう。その恩恵はユーザーを含むAppleプラットフォームのエコシステムに広がる。