Cultured Codeチームが「Things」をサーバサイドのSwiftに移行した経緯と、ユーザーからの反応の背景についてご紹介します。
͏
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
サーバサイドのSwiftに移行した「Things」
昨年の初め、パーソナルタスクマネージャーの「Things」は、サーバサイドのSwiftを使用してバックエンドを完全に再構築したアップデートを公開しました。その反応は、まさに共同創設者のWerner Jainek氏が望んでいたものでした。
「一部のユーザーは速くなったことに気付いたでしょう」と「Things」を開発したCultured CodeシュトゥットガルトオフィスのJainek氏は言います。「しかし、大多数のユーザーは何も感じなかったはずです」
「Things」の平均コンピューティングコストを1/3にし、平均応答速度を4倍にするというこの先駆的な取り組みでは、何も感じないことが最良の結果でした。
Things 3
対応デバイス:iPhone、iPad、Mac、Apple Watch、Apple Vision Pro
チームの規模:11人
拠点:ドイツ
受賞歴:Apple Design Awards(2009年、2017年)、App Storeエディターのおすすめ
「Things」は、2008年にApp Storeのサービスが始まった当初に公開され、Apple Design Awardsを2度受賞しています。アプリとしての歴史が長いこともあり、2020年頃、Cultured Codeのチームは同期エンジンを調整する必要があることに気付きました。
「テクノロジースタックは非効率的で高コストになっていたし、現代の標準にも達していませんでした」とCultured Codeのバックエンド開発と運用を指揮するVojtěch Rylko氏は言います。「さらに、ベースのプラットフォームが一種のブラックボックスで、常に回避策を探り続ける必要がありました」。チームは、バックエンドの老朽化が10年にわたる揺るぎないユーティリティとしての地位を脅かすのではないかと危惧していました。「私たちは評判を失う可能性がありました」とJainek氏は言います。「行動を起こすべきなのは明白で、ためらっている暇はありませんでした」
エンジン再構築プロジェクトが始まりました。Jainek氏によると、Cultured Codeはテクノロジースタック全体について常に柔軟な姿勢で臨み、プログラミング言語からインフラストラクチャまですべてを再検討しました。バックエンド部分の調査が進むにつれて、サーバサイドのSwiftが望ましい選択肢として何度も浮上していることにJainek氏は気付きました。「もちろん、Swiftにはクライアントサイドの開発からすでに慣れ親しんでいました」とJainek氏は言います。「パフォーマンス、メモリ効率、現代性など、多くの長所がありましたが、疑問も残っていました。十分に成熟しているのか?プロダクション環境で安定するのか?」
Rylko氏は、当時、サーバサイドのSwiftはそれまでにない斬新なアプローチに感じられたと言います。「カンファレンスで友人や同僚と話したのですが、彼らはサーバサイドでSwiftを活用することに少し驚いたようでした」とRylko氏は言います。「当時はとても冒険的な気分でしたね」
「不安は一切ありませんでした。やるべきことをやり切っていたからです」
Werner Jainek氏、Cultured Code CEO兼共同創設者
そのような状況の中、Rylko氏とそのチームは取り組みを開始。クラウド同期機能をSwiftに書き直し、インフラストラクチャを設定して、(特に重要なステップである)テストを完了させるまでに、合計で約3年かかりました。「当初から、スムーズなユーザー体験がクラウドを切り替える際の要件でした」とRylko氏は言います。
そしてチームは、2方向のアプローチにたどり着きました。ユーザー体験に影響を与えることなく、Swiftベースの新しいバックエンドをユーザーのライブコンテンツでテストするというものです。「新しいクラウドを構築し、既存のクラウドと並行して運用しました」とRylko氏は言います。「既存のクラウドですべてのライブトラフィックを処理しながら、同じトラフィックを新しいシステムに転送して並行して実行したことで、状況をリアルタイムで観察できました。データベースですべてのクエリを処理できたか?パフォーマンスに問題はなかったか?このように実際の負荷の下で、新しいインフラストラクチャを運用する方法を学んでいったのです」
さらに詳しく
このプロセスが終わるまでに、新しいクラウドは丸1年以上プロダクション環境で稼働していたことになります。
このアプローチには、不変データの大半を事前に移行できるなど、さらなるメリットがありました。「そのため、最終的な移行に必要な計画ダウンタイムは、4日どころかわずか3時間でした」とJainek氏は言います。
実際に運用が始まるというタイミングで、チームはシュトゥットガルトに集まり、皆でこの瞬間を祝いました。「もうこの時点では、不安は一切ありませんでした」とJainek氏は言います。「やるべきことをやり切っていたからです」
 |
デベロッパのストーリー
|
サーバサイドのSwiftに移行した「Things」
|
昨年の初め、パーソナルタスクマネージャーの「Things」は、サーバサイドのSwiftを使用してバックエンドを完全に再構築したアップデートを公開しました。その反応は、まさに共同創設者のWerner Jainek氏が望んでいたものでした。
|
静かな反応
|
「一部のユーザーは速くなったことに気付いたでしょう」と「Things」を開発したCultured CodeシュトゥットガルトオフィスのJainek氏は言います。「しかし、大多数のユーザーは何も感じなかったはずです」
|
「Things」の平均コンピューティングコストを1/3にし、平均応答速度を4倍にするというこの先駆的な取り組みでは、何も感じないことが最良の結果でした。
|
|
Things 3
|
対応デバイス:iPhone、iPad、Mac、Apple Watch、Apple Vision Pro チームの規模:11人 拠点:ドイツ 受賞歴:Apple Design Awards(2009年、2017年)、App Storeエディターのおすすめ
|
Mac版Things 3をダウンロード
|
iPhone版Things 3をダウンロード
|
|
「Things」は、2008年にApp Storeのサービスが始まった当初に公開され、Apple Design Awardsを2度受賞しています。アプリとしての歴史が長いこともあり、2020年頃、Cultured Codeのチームは同期エンジンを調整する必要があることに気付きました。
|
「テクノロジースタックは非効率的で高コストになっていたし、現代の標準にも達していませんでした」とCultured Codeのバックエンド開発と運用を指揮するVojtěch Rylko氏は言います。「さらに、ベースのプラットフォームが一種のブラックボックスで、常に回避策を探り続ける必要がありました」。チームは、バックエンドの老朽化が10年にわたる揺るぎないユーティリティとしての地位を脅かすのではないかと危惧していました。「私たちは評判を失う可能性がありました」とJainek氏は言います。「行動を起こすべきなのは明白で、ためらっている暇はありませんでした」
|
 |
エンジン再構築プロジェクトが始まりました。Jainek氏によると、Cultured Codeはテクノロジースタック全体について常に柔軟な姿勢で臨み、プログラミング言語からインフラストラクチャまですべてを再検討しました。バックエンド部分の調査が進むにつれて、サーバサイドのSwiftが望ましい選択肢として何度も浮上していることにJainek氏は気付きました。「もちろん、Swiftにはクライアントサイドの開発からすでに慣れ親しんでいました」とJainek氏は言います。「パフォーマンス、メモリ効率、現代性など、多くの長所がありましたが、疑問も残っていました。十分に成熟しているのか?プロダクション環境で安定するのか?」
|
Rylko氏は、当時、サーバサイドのSwiftはそれまでにない斬新なアプローチに感じられたと言います。「カンファレンスで友人や同僚と話したのですが、彼らはサーバサイドでSwiftを活用することに少し驚いたようでした」とRylko氏は言います。「当時はとても冒険的な気分でしたね」
|
|
「不安は一切ありませんでした。やるべきことをやり切っていたからです」
|
Werner Jainek氏、Cultured Code CEO兼共同創設者
|
|
そのような状況の中、Rylko氏とそのチームは取り組みを開始。クラウド同期機能をSwiftに書き直し、インフラストラクチャを設定して、(特に重要なステップである)テストを完了させるまでに、合計で約3年かかりました。「当初から、スムーズなユーザー体験がクラウドを切り替える際の要件でした」とRylko氏は言います。
|
そしてチームは、2方向のアプローチにたどり着きました。ユーザー体験に影響を与えることなく、Swiftベースの新しいバックエンドをユーザーのライブコンテンツでテストするというものです。「新しいクラウドを構築し、既存のクラウドと並行して運用しました」とRylko氏は言います。「既存のクラウドですべてのライブトラフィックを処理しながら、同じトラフィックを新しいシステムに転送して並行して実行したことで、状況をリアルタイムで観察できました。データベースですべてのクエリを処理できたか?パフォーマンスに問題はなかったか?このように実際の負荷の下で、新しいインフラストラクチャを運用する方法を学んでいったのです」
|
さらに詳しく
|
Swift.org:SwiftのサーバサポートによるThings Cloudの強化 |
このプロセスが終わるまでに、新しいクラウドは丸1年以上プロダクション環境で稼働していたことになります。
|
このアプローチには、不変データの大半を事前に移行できるなど、さらなるメリットがありました。「そのため、最終的な移行に必要な計画ダウンタイムは、4日どころかわずか3時間でした」とJainek氏は言います。
|
実際に運用が始まるというタイミングで、チームはシュトゥットガルトに集まり、皆でこの瞬間を祝いました。「もうこの時点では、不安は一切ありませんでした」とJainek氏は言います。「やるべきことをやり切っていたからです」
|
|
初回公開日:2025年6月9日
|
|
|
|
|
|
|
|