ストーリー

Tidyが帰ってきた:6年ぶりの完全リビルドの裏側

12分で読める
Tidy Team
Tidy App Icon
v2.0 NEW RELEASE

この記事を読んでいるあなたは、もしかしたらTidyを覚えているかもしれません。2018年や2019年に使っていたかもしれません。親指のフリックで何百枚もの写真をスワイプしてギャラリーを整理したかもしれません。レビューを残してくれたかもしれません。もしそうなら、ありがとうございます。すべてのレビューを読みました。

関連記事: Tidy 2.1 & 2.2の新機能:アルバム振り分け、ウィークリーチャレンジなど

そして、私たちは姿を消しました。

6年間、TidyはApp Storeに放置されていました。アップデートなし。新機能なし。コミュニケーションなし。アプリはほぼ動いていましたが、周りの世界は動き続けていました。iOSは進化し、スマホのカメラは高性能になり(写真ライブラリも巨大化し)、新しいアプリが生まれては消えていきました。そしてTidyはただ...そこにありました。

関連記事: iPhoneの写真を整理する方法:完全ガイド(2026年)

今日、それが変わります。Tidy v2.0はゼロからの完全リビルドです。アップデートではありません。リフレッシュでもありません。最新技術、新機能、そして初回リリースから学んだすべてを詰め込んだ、まったく新しいアプリです。

関連記事: AIが重複・類似写真を見つける仕組み(手動検索より優れている理由)

ここに至るまでのストーリーをお話しします。

オリジナルTidy:星4.8、レビュー723件

Tidyは2018年にシンプルなコンセプトでリリースされました。写真ライブラリの整理はゲームのように楽しくあるべきだ、と。右スワイプで写真を残す。左スワイプで削除。複雑なメニューも、フォルダシステムも、整理フレームワークもなし。ただ素早く直感的に判断して、不要なものを片付けるだけ。

反応は私たちを驚かせました。数ヶ月のうちに、Tidyは平均評価星5つ中4.8の何百ものレビューを集めました。723件のレビューに達した頃には、パターンは明確でした。みんなスワイプ操作を気に入っていました。そのスピード感が好きでした。退屈な作業を楽しくしてくれることが好きでした。

数字で見るTidy

  • 4.8 星評価
  • 723 レビュー
  • 31 対応言語
  • 2018 リリース年

ユーザーからは「必要だと知らなかったアプリ」「午後だけで3,000枚の写真を整理した」という声が寄せられました。アプリは31言語に翻訳され、複数の国でApp Storeのおすすめに掲載されました。目的を絞った小さなインディーアプリとしては、驚くべき成果でした。

オリジナルのTidyはSwift 4で開発され、当時のiOS開発で標準だったMVCアーキテクチャパターンを採用していました。その時代としては堅実なアプリでした。しかし技術の進歩は速く、2019年にはほころびが見え始めていました。

6年間沈黙していた理由

正直に答えると、人生の事情です。

Tidyは少人数のチームで作られており、優先順位が変わると(インディー開発者にはよくあることですが)、アプリはリストの一番下に落ちてしまいました。ドラマチックなストーリーはなく、買収もなく、終了の決定もありませんでした。サイドプロジェクトに注意が向かなくなった時に起こる、ゆっくりとした漂流です。

その間、Tidyの現状と本来あるべき姿とのギャップは広がり続けていました。

  • SwiftUIが登場し、2019年に急速に成熟。UIKitベースのインターフェースは古く感じるようになりました
  • 写真ライブラリが爆発的に増加。平均的なiPhoneユーザーの写真は2,000〜5,000枚から10,000〜50,000枚に
  • AIと機械学習は実験的なものから当たり前のものへ。ユーザーはアプリに賢さを求めるようになりました
  • iOSウィジェットとライブアクティビティが新しい表示面を生み出し、アプリに対応が期待されるように
  • プライバシーへの期待が劇的に高まり、ユーザーはオンデバイス処理と透明性を要求するように
  • Swift自体がバージョン5.0から6.0へと進化し、厳格な並行処理や新しい言語機能が追加

本格的にTidyを見直した時には、元のコードベースはまるで考古学的遺物でした。モダンなツールチェーンではコンパイルすらできないSwift 4のコード。2世代前のUIKitパターン。ユーザーが今期待している機能をまったくサポートできないアーキテクチャ。

選択肢は2つ。古いコードベースをパッチして更新するか、ゼロから始めるか。

ゼロからリビルドする決断

私たちはリビルドを選びました。その理由を説明します。

古いTidyを更新するということは、Swift 4のコードをSwift 6に移植し、UIKitからSwiftUIへUI全体を書き直し、MVCアーキテクチャをモダンなものに置き換え、新しいAppleフレームワーク(Vision、Core ML、StoreKit 2、WidgetKit)を追加し、これらすべてを既存アプリを壊さずに動作させることを意味していました。

ソフトウェア開発の世界には、Joel Spolskyの「絶対にやってはいけないこと パートI」という有名なエッセイがあり、ゼロからの書き直しはほとんどの場合間違いだと主張しています。そしてほとんどのプロジェクトでは彼は正しいです。しかしTidyは例外でした。

  • 共有コードゼロ - 古いコードベースを評価した結果、元のコードの5%未満しか再利用できないと推定しました。言語が変わりすぎ、フレームワークはまったく異なり、アーキテクチャは互換性がありませんでした
  • 異なるプラットフォーム - オリジナルのTidyはiOS 11をターゲットにしていました。新しいTidyはiOS 18をターゲットにしています。事実上、異なるケイパビリティ、デザイン言語、ユーザー期待を持つ別のプラットフォームです
  • 拡大したスコープ - オリジナルのTidyがやっていたのは一つだけ:スワイプして整理。新しいTidyにはAIフィルター、フォトエディター、比較モード、ゲーミフィケーション、ウィジェット、ライブアクティビティなどが必要でした。これらすべてを古いアーキテクチャにボルト留めするのは、平屋の屋根の上に階を積み重ねるようなものです
  • 未来のためのクリーンな基盤 - ゼロから始めることで、初日からSwift 6の厳格な並行処理を採用し、Core DataではなくSwiftDataを使い、適切なClean Architectureを実装し、今後何年もの開発を支える基盤を構築できました

リビルドは即断ではありませんでした。数週間かけて古いコードを評価し、両方向(更新vs.書き直し)でプロトタイプを作り、最終的にゼロからのリビルドの方が、速く、クリーンで、元のコードをモダン化するどんな試みよりも良いアプリになるという結論に至りました。

Tidy App Icon

ギャラリーを整理しませんか?

Tidyをダウンロードしてスワイプを始めましょう。AI搭載の重複検出、スマートフィルター、フォトエディター内蔵。

Tidy v2.0の全新機能

では、何を作ったのか?新しいTidyのすべての主要機能と改善点をご紹介します。

モダンiOSのためのSwiftUI書き直し

アプリ全体がSwiftUI(Appleの最新宣言型UIフレームワーク)で構築されています。これにより、滑らかなアニメーション、Dynamic Type(アクセシビリティ用テキストサイズ)のネイティブサポート、ダークモードの自動対応、そしてすべての画面で一貫した洗練された外観を実現しています。UIがiOS 18に自然に馴染むのは、まさにそのために作られたからです。

AI搭載スマートフィルター

これはTidyのコア体験における最大の追加機能です。写真ライブラリ全体を手動でスクロールする代わりに、AI搭載フィルターで整理候補になりそうな特定のタイプの写真を表示できるようになりました。

  • ブレ写真 - モーションブラー、手ブレ、ピンボケのある写真をAIが識別
  • 低画質 - 露出不良、過度に圧縮された画像、その他の低品質画像を検出
  • 類似写真 - 知覚ハッシュを使ってほぼ同一の写真をグループ化。ベストを選んで残りを削除できます
  • 重複 - メタデータと視覚的類似性に基づいて完全な重複と準重複を検出
  • ベストショット - 類似写真グループの中で、AIが最もシャープで構図の良い1枚を提案
  • ユーティリティ - スクリーンショット、レシート、書類、その他永久に保存する必要のない「ユーティリティ」写真を識別

すべてのAI処理はAppleのCore MLとVisionフレームワークを使ってデバイス上で行われます。写真がサーバーにアップロードされることは一切ありません。夜間充電中にバックグラウンドで分析が実行されるので、あなたの準備ができた時にはすべて完了しています。

29種類のフィルター搭載フルフォトエディター

Tidy v2.0には本格的な写真編集スイートが含まれています。明るさ/コントラストだけの基本的なエディターではなく、5つのカテゴリからなるプロフェッショナル編集システムです。

  • 調整 - 露出、ハイライト、シャドウ、コントラスト、彩度、暖色、シャープネス、粒子、背景ぼかしを含む10種類の調整スライダー
  • ビューティー - ボディポジティブなメッセージ付きの6つのナチュラルビューティーツール(スキンスムーズ、ポートレートライト、アイブライトン、フェイススリム、アイエンラージ、リッププランプ)
  • レタッチ - ピンポイント補正のためのヒーリングブラシとホワイトニングツール
  • FX - 繊細なフィルムエミュレーションから大胆なアーティスティック効果まで29種類のクリエイティブフィルター
  • AI - 超解像アップスケーリングとAI搭載のスタイル転送エフェクト

エディターには取り消し/やり直し、ビフォーアフター比較スライダー、キャンバスのピンチ操作によるズームが含まれます。すべての編集は非破壊的で、新しいコピーとして保存するか、オリジナルを置き換えることができます。

比較モード

オリジナルTidyで最もリクエストが多かった機能の一つが、類似写真を並べて比較する機能でした。Tidy v2.0は専用の比較モードでこれを実現。サムネイルストリップでの素早い閲覧、ピンチズームでのディテール確認、編集を評価するためのビフォーアフタースライダーが搭載されています。

ゲーミフィケーション

オリジナルのTidyはスワイプ操作で整理を楽しくしました。Tidy v2.0は本格的なゲーミフィケーションシステムでさらに進化します。

  • セッション統計 - 各セッションでレビュー、残した、削除した写真の枚数と時間
  • クリーニング連続記録 - 日次・週次の連続記録トラッキングでモチベーションを維持
  • マイルストーン - 紙吹雪アニメーションと触覚フィードバック付きの実績システム
  • シェア可能なクリーンアップカード - SNSですぐにシェアできる美しいサマリーグラフィック

RTLを含む20言語対応

Tidy v2.0は20言語に対応してリリースされます:英語、ヘブライ語、アラビア語、ペルシア語、ロシア語、フランス語、ヒンディー語、ルーマニア語、スペイン語、ポルトガル語、ドイツ語、イタリア語、日本語、韓国語、オランダ語、ポーランド語、タイ語、トルコ語、中国語簡体字、中国語繁体字。

このうち3言語(ヘブライ語、アラビア語、ペルシア語)は右から左(RTL)です。スワイプゲーム、エディター、ビフォーアフタースライダー、すべてのナビゲーション要素を含め、Tidyのすべての画面はRTLユーザーのために正しく反転するよう設計されています。RTL対応は後付けではなく、基盤に組み込まれています。

インタラクティブウィジェットとライブアクティビティ

インタラクティブウィジェットで、ホーム画面からワンタップでクリーニングセッションを開始できます。ライブアクティビティは、ロック画面とDynamic Islandにクリーンアップの進捗をリアルタイムで表示します。これらを組み合わせることで、「写真を整理しなきゃ」という思いから実際に行動するまでの摩擦を軽減します。

Goldサブスクリプション

Tidy v2.0は無料でダウンロード・利用可能です。コアのスワイプゲーム、基本フィルター、写真比較はすべて無料で使えます。より多くの機能を求めるユーザーには、Tidy Goldで以下が解放されます。

  • すべてのAI搭載スマートフィルター(ブレ検出、類似写真、ベストショット、ユーティリティ)
  • 29種類のフィルターとビューティーツール搭載のフルフォトエディター
  • 高度なゲーミフィケーション機能
  • 広告なし

Goldは1ヶ月、3ヶ月、6ヶ月のサブスクリプションで利用可能です。このモデルを選んだのは、私たちのインセンティブをあなたと一致させるためです。Tidyが使い続ける価値があると感じてもらえて初めて、私たちは成功するのです。

リビルドの技術的課題

アプリをゼロから作り直すのは解放的に聞こえますし、最初はその通りです。しかし独自の課題も伴います。私たちが直面した最も重要な技術的ハードルをいくつかご紹介します。

Swift 6の厳格な並行処理

Swift 6は厳格な並行処理チェックを導入し、コンパイラがビルド時にスレッドセーフティを強制するようになりました。バグ防止には最高ですが、開発中は非常に厳しいものです。共有可変状態のすべてがアクターで保護されるか、Sendableとしてマークされるか、メインスレッドに隔離される必要があります。

写真アプリにとっては、写真処理が本質的に並行的であるため特に困難です。サムネイルの読み込み、AI分析の実行、フィルターの適用、編集の保存 - これらすべてがバックグラウンドスレッドで実行される一方、UIはメインスレッドで更新されます。並行処理モデルを正しく構築するには多大な労力を要しましたが、結果としてスレッディングの問題によるクラッシュが事実上ないアプリが完成しました。

類似写真検出のための知覚ハッシュ

類似写真の検出は簡単に聞こえますが、大規模に実装しようとすると話は別です。Tidyは知覚ハッシュ(pHash)と呼ばれる技術を使って、写真を視覚的に比較しています。各写真はその視覚的な内容を表す64ビットのハッシュに縮約され、類似したハッシュを持つ写真がグループ化されます。

課題は類似度の閾値の調整でした。厳しすぎると関連する写真がグループ化されません。緩すぎると無関係な写真が同じグループに入ってしまいます。最終的に、標準比較ではハミング距離の閾値を10、バースト写真(10秒以内に撮影されたもの)では14とし、クラスターが大きくなりすぎるのを防ぐためにグループの最大直径を14に設定しました。

適切なクラスタリングアルゴリズムの選択も必要でした。シンプルな貪欲法では関連写真が別々のグループに分割されることがありました。代わりにUnion-Findクラスタリングを実装しました。これは連結成分を正しく識別し、サイズ超過グループにのみ直径制約を適用します。結果として、自然で直感的な写真のグループ分けが実現しました。

オンデバイスAI処理

デバイス上でAIモデルを実行するには、精度とパフォーマンスの間で常にトレードオフがあります。1枚あたり2秒かかるモデルは、3万枚の写真を分析する場合には使い物になりません。1枚10ミリ秒で処理できるモデルは、精度が不十分かもしれません。

これをバックグラウンド処理で解決しました。TidyはiOSのBGProcessingTasksを使い、スマートフォンが充電中かつWiFi接続中の夜間にフルAI分析を実行します。分析にはブレ検出、品質スコアリング、類似性ハッシュ、顔検出が含まれ、時間的プレッシャーがないため高精度で処理されます。朝までには結果が準備完了です。

リアルタイム機能(ビューティーエディターなど)では、速度のために品質を若干犠牲にした最適化パイプラインを使用しています。ビューティーツールがインタラクティブなフレームレートで動作するのは、すべてのモダンiPhoneでハードウェアアクセラレートされるAppleのMetal GPUシェーダーとCore Imageフィルターを使用しているからです。

顔のワーピングのためのMetalシェーダー

顔の形を変えるビューティーツール(フェイススリム、アイエンラージ、リッププランプ)は、リアルタイムメッシュワーピングのためにMetal CIWarpKernelシェーダーを使用しています。これらのシェーダーの記述には、Core Imageのパイプラインと互換性のあるMetal Shading Languageの制約されたサブセットで作業する必要がありました。

特に厄介なバグとして、顎のワーピングの問題がありました。初期実装ではワープアンカーを間違った垂直座標(顎ではなく額)に配置してしまい、フェイススリムが顔の間違った部分を変形させていました。Visionフレームワークの顔ランドマーク座標系を注意深く研究して、正しい位置に修正する必要がありました。

RTLレイアウト対応

右から左への言語のサポートは、テキストの配置を反転させるだけではありません。すべてのインタラクティブ要素が両方向で正しく動作する必要があります。スワイプゲーム(「右スワイプで残す、左スワイプで削除」)はRTLでもセマンティクスを維持します。ジェスチャーは左右の方向ではなく、残す/削除のセマンティクスに基づいているため変わりません。フォトエディターのビフォーアフタースライダーは正しく向きを反転します。ナビゲーションフローも逆になります。そして、すべてのレイアウト制約がLTRとRTLの両モードでテストされました。

次に来るもの

Tidy v2.0は基盤であり、ゴールではありません。今後のリリースに向けて取り組んでいることの一部をご紹介します。

  • トリミングと回転ツール - v2.1で登場予定。水平ガイドとアスペクト比プリセット付き
  • SiriとApp Intentsの統合 - 「Hey Siri、写真のクリーンアップセッションを始めて」が直接使えるように
  • 動画圧縮 - 品質を維持しながら大きな動画ファイルのサイズを削減
  • クリーンアップチャレンジ - テーマ別の目標を持つ週間・月間チャレンジ(例:「スクショ一掃ウィーク」)
  • ストレージ予測 - 写真撮影パターンに基づいて、いつストレージが一杯になるかをAIが予測
  • さらなるAIフィルター - ミーム検出フィルターや改良されたカテゴリ分けなど

AppleのFoundation Models APIを使ったオンデバイス自然言語検索(例:「ビーチでの犬の写真を見せて」)の統合も検討していますが、これはAppleのAPIロールアウトスケジュール次第です。

目標は4〜6週間ごとに意味のあるアップデートをリリースすることです。もう二度と沈黙しません。

コミュニティへの感謝

最後に、オリジナルのTidyを使っていて、この記事を読んでくれているかもしれない皆さんに直接お伝えしたいことがあります。

レビューをありがとうございます。機能リクエストをありがとうございます。バグ報告をありがとうございます。ツイートやメッセージや友人への推薦をありがとうございます。シンプルなアプリの周りに特別なものを築いてくださったこと、心から感謝しています。

6年間の沈黙は長い時間だと分かっています。一度失った信頼を取り戻すには努力が必要だと分かっています。約束ではなく、継続的なアップデート、透明なコミュニケーション、そして進化し続けるアプリで信頼を取り戻すことに全力を尽くします。

オリジナルのTidyを使っていた方、ぜひ戻ってきてください。v2.0をダウンロードして試してみて、感想を聞かせてください。最初のバージョンのTidyを形作ったのは皆さんのフィードバックであり、今後のすべてのバージョンもそうなるでしょう。

そしてTidyが初めての方、ようこそ。私たちが本当に誇りに思うものの始まりに参加していただきました。気に入っていただけると嬉しいです。

写真ライブラリを整理するベストタイミングは6年前でした。次にベストなタイミングは今です。

新しいTidyで何ができるか探ってみませんか?ナチュラルビューティーフィルター写真の並べて比較ゲーミフィケーションで整理習慣を作るウィジェットとライブアクティビティでのクイックアクセスクリーンアップのガイドから始めてみてください。

Tidy App Icon

ギャラリーを整理しませんか?

Tidyをダウンロードしてスワイプを始めましょう。AI搭載の重複検出、スマートフィルター、フォトエディター内蔵。