Craft for Apple Vision Proの誕生

CraftのVision Proアプリがどのように生まれたか。アプリエンジニアのKristóf GruberとPéter Wiesner、デザインチームのArtom Konovalovが語る対談をお届けします。

執筆者
Craft Author: Peter Wiesner
Peter Wiesner
公開日
7/8/2024
Building Craft
Craft for Apple Vision Proの誕生

Apple Vision Pro上のCraft——新しい領域への挑戦 ⛵️

このプラットフォームを取り込むことはなぜ重要だったのですか?

Artom: この製品はまだ展開途中であることは明らかで、多くのアーリーアダプター——新しいテクノロジーが好きな人や、すでにビジョンを信じている人——と接触しています。このようなユーザーは、将来のメインストリームユーザーが何を望むかを示してくれるという意味で貴重です。

これにより、自分たちのテクノロジースタックが適切に設定されているかどうかを確認できます。成熟したプラットフォームは、特にユーザーとの操作方法において、革新をどう行うかを制限することがあります。新しいプラットフォームは既知のことから解放され、もう一度初心者になれる機会を与えてくれます。すべてが新鮮に感じられると、自分たちが学んできたことを再発見することができます。時には行き詰まることもあり、時にはブレークスルーにつながることもあります。だからこそ早期にVision OSを探求し、製品をリリースすることに取り組んでいます。

Kristóf: visionOSはまったく新しいプラットフォームであり、まだ充実したアプリが揃っていません。これはゲーマーを対象とせず、生産性アプリとメディアアプリを念頭に置いて開発された初めてのAR/VRヘッドセットです。このプラットフォームにはまだメモアプリが多くないため、Craftが強い価値を提供できると感じました。そして私たちはすでに優れたネイティブテキストエディターを持っており、それがvisionOSに適していると感じています。

Peter: Craftのユーザーベースはテクノロジーに精通したアーリーアダプターが多いです。Craftがノートテイキングに対して新鮮なアプローチをしているように、彼らも最新のテクノロジーに追いつくよう努めています。新しいプラットフォームでリーチすることで、そういったタイプの人々をもっと見つけられると思いました。

取り組み始めたときどのように感じましたか?

Kristóf: まったく新しいプラットフォームに取り組めることにとても興奮しました。Appleはすべてを構築し、エコシステム全体をVision Proに持ち込む素晴らしい仕事をしており、私たちはその恩恵を活用したかったのです。iPadアプリはすでにvisionOSで動作しており、ヘッドセットでCraftのiPadバージョンを試しました。非常に良い体験でしたが、プラットフォーム向けにネイティブアプリを構築すれば、さらに多くのことができると感じました。

ネイティブアプリの開発は予想より簡単でした。コードのほとんどはそのまま動作し、細かい部分を調整するだけで済みました。例えば、visionOSには「スクリーン」という概念がないため、スクリーンサイズを計測するすべてのコードを適切なものに変更する必要がありました。触覚フィードバック、iPhoneのステータスバーのカラー設定、Macのメニューバーアプリなど、いくつかの機能も削除する必要がありました。その後、アプリをネイティブに動作させることができました。

次のステップはvisionOSのフルポテンシャルを活かすための改善でした。Vision対応アプリのルック&フィールが気に入ったので、アプリのデザインをガラス素材、エレガントなツールバーボタン、エディターウィンドウ側面のオーナメントを使用するように調整しました。アプリがあなたの部屋の中で自然に馴染むような見た目と感触にしたかったのです。

Peter: 2023年6月の発表以来、Vision Proに一方の目を向けていました。10月のハッカソンでは、参加者の一人がVision Proに対応したソリューションを考案しました。新しいプラットフォームは常に製品に対する新しい機能と方向性をもたらします。AR/VRプラットフォームでの開発は私たちの多くが経験したことのないことで、没入型環境でCraftをより良くする方法を見つけることに興奮していました。

初めてオンにしたときは本当に魔法のようでした。

セットアップや選択ジェスチャーが問題なくすぐに動作するなど、多くのことがすでに対応されていることに感銘を受けました。

Craftはすでに互換アプリとしてVision Proで利用可能でしたが、そのパワーをネイティブに解放するのを待ちきれませんでした。

アプリの開発はいつ始めましたか?

Kristóf: visionOSへの移植は趣味のプロジェクトとして扱いました。もちろん、取り組むべき他の重要な機能もあったため、デバイスが発売された直後から週1人×1週間のバッチで素早く作業を進めました。

デザインプロセスはどのようなものでしたか?

Artom: Vision Proのデザインプロセスは波のように訪れました。昨年初めてデバイスを体験する機会があり、その可能性に感銘を受けました。実際にそれで仕事をすることが効果的かどうかについては少し懐疑的でした。VRとARを搭載したデバイスが本格的な仕事用デバイスとして位置づけられたことは、これまでありませんでした。ある意味では、iPadもそのような始まり方をしていませんでした。 Vision Proを試してみると、ユーザーが集中した状態に入れる能力に惚れ込みました。OSのデザインがとても適応性が高く——まったく別の世界に連れて行ってくれることもあれば、完全に現実の環境に根ざすこともできます。Vision Proが私たちのアプリをプラットフォームとして強化してくれると感じたため、visionOSのための適切なプロダクト体験のデザインと構築に時間を投資しました。

デザインの観点から、空間オーディオがユーザーに感覚を伝えてフィードバックを与える重要なイネーブラーであることに気づきました。これは他のどのデバイスよりも自然な感覚でした。そのため、重要なアクションのためにユニークなサウンドのシリーズをデザインし、Craftの精神をより強く伝えるようにしました。

ビジュアル面では、車輪の再発明はせず、ヒューマンインターフェースガイドラインからできる限り多くのパターンを活用することにしました。将来的には多くの新しいアイデアを探求できることは分かっていましたが、Craftを新しい方向に設計し始めるには、プラットフォームとの時間も、ユーザーからのフィードバックも十分ではありませんでした。しかしその時は来るでしょう。

visionOSのような革新的なプラットフォームでは、まず研究してAppleが推奨することに従いたいと思います。なぜなら彼らはユーザーがデバイスとどのように関わるかという根本的な原則について長年考えてきたからです。

visionOSアプリで見られるのは、特にCraftのiPadバージョンを使用している場合は、すべてがユーザーにとって馴染みのあるものであることです。私たちのiPadアプリはすでにApp Storeで最高の生産性アプリのひとつですが、visionOS向けのネイティブバージョンを作ることで、物事がずっとスムーズでアクセスしやすくなりました。

課題としては、UXをどこまで追求するかを決めることがデザインにとっての大きな課題のひとつでした。どのパターンがCraftアプリに最も適合するか?アプリはモジュール式にすべきか?ガラスの表面にフラットな黒いものを編集オプションとして表示すべきか?アプリのシェルはダークにすべきかライトにすべきか?ドキュメントの色は何にすべきか?これらすべてに注意が必要で、できる限り多くのことを考慮したかったのです。

新しいプラットフォームが新しいときはより大胆に進める余地があり、ユーザーは新しいものを体験したいと思っています。だから、より多くのことを試してどうなるかを見る許可があります。

visionOSでのアイデアの一部が他のプラットフォームに波及してきていることがすでに見え始めており、これがデザインチームにとって時間投資に十分な価値があることを示しています。

01_Browse.png

技術的な課題はどのようなものでしたか?

Peter: 新しいプラットフォーム(iOS、macCatalyst)を生活と仕事のエコシステムに導入することは困難を伴います。主に新しい輝かしい機能とAPIをすべて失いたくないこと、visionOS専用のものが簡単に維持できることを確保したいこと、そしてもちろんバグなしにアプリが素晴らしく動作することを確保したいからです。

これを達成するために、プロジェクトを3つの主要な目標に分けました: 1. コンパイルを通す 2. メンテナンス可能でバグのない状態にする 3. 輝かせる

最初のパートが最も難しかったです。自分たちのコントロール下にあるコードをvisionOSでコンパイルできるようにすることはひとつの課題ですが、サードパーティの依存関係もこれに対応している必要があります。フォークしたり修正したりして多くの依存関係をアップグレードする必要がありました。

第2フェーズでは、コードベースがifdefだらけにならないこと(始めた時点で250個ありました)、そしてできる限り適応的でプラットフォームに依存しないCraftの高パフォーマンスコードと融合させることを確認しました。シミュレーターで遭遇したバグ——キャンバスツールバーの無効な配置など——は実際のデバイスでは存在しないか、後のOSバージョンで修正されていました。

visionOSをコードベースの一流市民にしてから、ヒューマンインターフェースガイドラインの提案を採用して最後の仕上げに集中し、デザインの観点から際立たせることができました。

障壁と「あーそういうことか!」という瞬間はどんなものでしたか?

Kristóf: 問題のほとんどは実際には他の開発者ライブラリによるものでした。visionOSが非常に新しいため、私たちが使用するすべての依存関係が新しいOSを「認識」するためにコードをアップデートする機会をまだ取っていません。多くの調整を行い、動作させるためにここかしこのコードをフォークする必要がありました。

visionOS上のCraftを初めて愛するようになったのは、プラットフォーム向けに壮観なガラスデザインを作り上げたデザインチームの優れた仕事を初めて見たときでした。これらのマテリアルを使ったCraftは非常に美しい。そして最終的に開発で到達し、Craftウィンドウを物理的に「歩き回る」ことができたときは素晴らしかった。小さな角の丸み、3Dツールチップ、ネイティブメニュー、マルチウィンドウ処理——これらはとても心地よかった!

Peter: 幸いなことに、サポートされていない機能をオフにするか、visionOSにまだ対応していないサードパーティライブラリについての削減という困難な決断をすることで、本当の障壁を避けることができました。その後は地道な作業だけが残りました。すべてのプラットフォームにわたって「スクリーン」の概念を汎化できることを確認したり、UITraitcollectionを正しく処理したり、拡張機能(通知、シートの共有など)を修正したりすることです。

私の「あーそういうことか!」という瞬間は、ガラスデザイン、ホバー/フォーカスエフェクト、ツールチップが揃ったネイティブCraft Vision Proアプリを初めて見たときでした。最終的なデザインが実装されるのが待ちきれません。

エンジニアリングとデザインチームの間のコラボレーションはどのようなものでしたか?

Kristóf: Craftでは、チーム間で非常に密接にコラボレーションしています。デザインフェーズでは、アイデアや技術的な観点からの可能性について議論するための会議を何度も開きました。アイデアがデザインへと発展し、実装するまでの過程を頻繁にレビューしました。また、オフィス内の誰でもVision Proユニットを持ち帰って試せるようにしました。それが何を実現できるかをより良く理解し、使いたいと思うデザイン言語を見つけるのに大いに役立ちました。

Peter: プロジェクトを3つのステップに分けることで、エンジニアリングとデザインチームが並行して作業できました。コードを修正している間に、デザインチームはHIG(ヒューマンインターフェースガイドライン)を採用して現在利用可能なアプリで遊ぶことができました。デザイナーはVision Proのデザイン言語を理解するために何時間も費やしました。エンジニアリングとデザインの世界が統合されたのは、メンテナンス可能でバグのない状態にする段階でした。バグを修正している間に、デザインチームはステップ3でネイティブな感触にするためのデザインに集中する前に、いくつかの小さな改善を提案することができました。デザイナーはバグと改善のアイデアも収集し、ステップ3の前に一緒に優先順位をつけてスコープを決めました。

01_Browse-2.png

私たちの次の大きなリリースに参加しませんか? - ぜひ参加を! 🧑‍🤝‍🧑

この旅に参加してくれる才能あふれる新しいメンバーを常に探し求めています。募集中のポジションは👉️こちら👈️から確認して、今すぐ応募してください!

ブログをもっと読む