Saurik が Cydia の起動時にパッケージを再ロードする必要がある理由を説明

Saurik が Cydia の起動時にパッケージを再ロードする必要がある理由を説明

  • Lamiyi
  • 0
  • rhahw
Saurik が Cydia の起動時にパッケージを再ロードする必要がある理由を説明

Saurik 氏は、Cydia が起動時にパッケージを繰り返しリロードしなければならない理由についての質問に Reddit で回答しました。

更新プロセスは、最後に Cydia を開いてから 15 分以上経過した場合に発生します。その理由は次のとおりです。

---
CydiaはApp Store(あるいはほぼすべての類似サービス)とは異なり、パッケージカタログ全体をローカルに保存します。そのため、Cydiaでは(実際にはかなり高速に)すべてのパッケージを含む非常に長いテーブルをレンダリングし、そこから好きなパッケージを一気に選択できます。一方、App Storeでは一度に25個のパッケージしか表示されず、「さらに読み込む」ボタンも遅いのです。

しかし、これは実際には、それだけの数のパッケージをローカルに保存し、その記録を最新の状態に維持する必要があることを意味します。「コールドスタート」からパッケージカタログをダウンロードすると、圧縮された状態で約3MB(BigBoss、ModMyi、ZodTTDの合計)になります。

集中管理された、あまり整理されていないホスティングサービスから、他の人がダウンロードしているのとほぼ同時に、大きなファイルをダウンロードするのは本当に面倒です。さらに、私の「差分インデックス」に関する推奨事項が守られていないことが多く(そのため、カタログ全体をランダムに再ダウンロードしなければならなくなる)、状況はさらに悪化します。

しかし、正直なところ、脱獄などにより全員がダウンロードを調整しているのでなければ、それも深刻な問題ではありません。重要な問題は、この分散パッケージ カタログ インフラストラクチャが存在する理由は、人々が完全にランダムな完全にサードパーティのリポジトリを使用できるからであり、実際にそうしているからです。

BigBoss、ModMyiなどは差分インデックスが設定されていますが、エコシステム内の他のリポジトリではほとんど設定されていません。別の大規模なリポジトリをインストールすると、更新のたびにカタログ全体(圧縮されていても1MB近くのデータになる場合があります)を、おそらく信頼性の低い小規模なサーバーからダウンロードすることになります。

サーバーがオフラインの場合、問題はさらに深刻になります。TCPはモバイルプロトコルでは性能が悪く、「サーバーがダウンしている」と簡単に判断するのは難しいため、「サーバーが遅い」と判断するよりも、「サーバーがダウンしている」と判断する方がはるかに困難です(最良の場合でも困難、あるいは不可能です)。そのため、これらのファイルを苦労してダウンロードしようとするため、このステップに非常に長い時間がかかる可能性があります。

この問題の解決策として考えられるのは、オフラインでのインデックス更新ですが、過去には深刻な反発もありました (海外の多くのユーザー、そして現在でも米国では、データ プランが制限されており、過度に高額なため、「安全」でないと判断した場合はデータを使用しないことが重要です)。

しかし、これにより、Cydia のほぼすべてのユーザーがそれがオフライン アプリであることを単純に認識しないという別の問題が発生します。実際に、人々が比較するサービスはどれもそのようには動作しません (最も近いものとしては、WebOS 用の Cydia に似た、はるかに珍しい PreWare があります)。

つまり、ユーザーはオンラインで「現在利用可能」なものについて読むと、Cydia を開き、それが利用できない場合はツイート、電子メール、電話、コメントなど、「なぜ私の Cydia にないのか」と似たフレーズを使ってできることを何でもします。

正直に言うと、ユーザーは、奇妙なオフライン データベースを更新する必要があると考えるよりも、適切なソースがインストールされていないと考える傾向があります (ソースが多すぎて、すべてを携帯電話にインストールしておかなければならないと考えているため... 50 を超えるソースがインストールされているユーザーもいます... 更新時間がどれほどかかるか想像もつきません)。

残念ながら、「完全にオンライン」に移行することは選択肢ではありません (この場合、アプリとの各インタラクションには 2 秒のネットワーク時間がかかり、一度に 25 個のパッケージしか表示できません。つまり、App Store とまったく同じで、このため、ロードされた Cydia のコピーと比較すると、イライラするほど遅く、非常に苦痛に感じるのです)。 :(

数日前に統計をとってみたところ、デフォルトのリポジトリだけを使い続けている人は実際にはごく少数派でした。Cydiaの楽しみは、単に興味深いリポジトリをインストールして見つけることにあるようです。中にはガレージで2人組が運営しているものもあれば、大企業が運営しているもの(多くの場合、パッケージは1つだけです)もあります。

そのため、私たちは常にハイブリッドモデルの開発方法、あるいは少なくとも推奨リポジトリのサブセットを利用するユーザーのパフォーマンスを向上させる方法を模索している状況にあります。デフォルトのリポジトリが一時的にオフラインになるのは大変なので、ホスティングの改善(あるいは完全に代替)に向けて協力しています。

しかし、その間、Cydia は数万件のエントリを含むオフライン データベースであり、ユーザーがカタログ全体のすべてのパッケージをカテゴリ別にフィルタリングしたり、Unicode ロケール別に並べ替えたりしながら、すばやくスムーズにスクロールできるほど十分に「リアルタイム」で検索および操作できることがユーザーの要件となっています。

こうした一連の制約を考慮すると、Cydia は「素晴らしい仕事をしている」と言えるでしょう。なぜなら、最も遅いステップ (そして間違いなく、2 年未満のデバイスでユーザーが不満を言う主なステップ) は、実際には「インターネット上のランダムなユーザーが運営する、分散した互いに全く関係のない一連のソースからカタログをダウンロードすることであり、そのユーザーのほとんどはホスティングや操作の経験がない」からです。;P
---

以下にリンクされているスレッド全体で、Saurik や他のユーザーからのコメントをさらに読むことができます...

続きを読む [chpwn経由]

Saurik が Cydia の起動時にパッケージを再ロードする必要がある理由を説明