Cydia Founder Jay Freeman Explains “Reloading Data”

One of the main purposes of jailbreaking your iPhone, iPod touch, or iPad is to obtain access to Cydia, a distribution platform that allows for you to download jailbreak packages — be it apps, tweaks, or mods — to your iOS device. While Cydia allows for you to install the latest and greatest tweaks such as SBSettings, WinterBoard, and LSCameraExtender, the app itself can sometimes load quite slowly due to refreshing sources and reloading data. That has led Cydia creator Jay Freeman (@saurik) to explain exactly what this reloading data consists of. In his answer, Freeman notes that, unlike the official App Store, Cydia stores every single package locally…

However, the part where it is downloading packages from third party servers is a different story: Cydia, unlike the App Store (or almost any similar service), stores the entire package catalog locally. This is why it can (quite quickly, in fact) render an insanely long table with all packages in it that you can just fling your way through, while the App Store shows you 25 packages at a time with a slow “load more” button.

However, this means that it actually has to keep that many packages locally, and has to keep their records up to date. From a “cold start”, downloading the package catalog is something like three megabytes, compressed (totalled from BigBoss, ModMyi, and ZodTTD).

Freeman also notes that community sources such as the BigBoss and ModMyi repositories are rather speedy themselves, but many Cydia users suffer long wait times from the additional, slower sources that they add to the jailbreak store:

While BigBoss, ModMyi, etc. are setup with diff-indices, almost no other repositories in the ecosystem are. If you install another large repository, you are probably downloading that entire catalog every time it refreshes (which might be almost a megabyte of data, even compressed), from some likely sketchy/small server.

If that server is offline, it is an even more serious problem: TCP sucks over mobile protocols, and it is really difficult to just claim “ok, that server is down” rather than “that server is slow” (difficult to impossible even in the best of cases). This can make that step take nigh-unto insanely long as it is trying to painstakingly download these files.

Freeman posted his full-length response on Reddit, which is sourced below, and it is definitely worth a read.

[Reddit via Redmond Pie]

Post a response / What do you think?