Cydia Creator Jay Freeman (Saurik) Gives Insight Into How “Reloading Data” Works In Cydia
Whenever we talk about jailbreaking an iOS device, we invariably mention the Cydia platform in the same paragraph. Whenever a jailbreak is processed using one of the main development tools, Cydia is a by-product and installed upon the device, allowing users to browse through all of the packages contained within. Even though users generally use Cydia on a daily basis, I would imagine that due to the fact that it contains a very simple to use front end, people would be unaware of the processes which take place behind the scenes.
Over the last few years, Cydia has come in for some criticism from various parts of the community, mainly due to the speed of the platform and seemingly inconsistent performance of the repositories that host content. With the last few releases, Cydia has become notably more stable but there are still parts of the process which confuse users and this has manifested itself recently with a question on the popular site Reddit, asking why the ‘Loading Packages’ message is presented at the top of Cydia every time the application is launched? Who’s better to answer the question than the creator of the platform himself, Jay Freeman, or Saurik as he is probably better known on the world wide web.
For anyone that has read articles by Saurik in the past, or met him in person will be aware that he is an extremely knowledgeable individual who loves nothing more than to share that knowledge with anyone who asks or takes interest. The answer given by Freeman is extremely insightful, noting that Cydia stores the entire package catalog locally which differs from other similar services, most notable one being the official Apple App Store. This default behavior means that Cydia is able to quickly and efficiently produce a long, tabled list of packages which users can scroll through in their own time. This is in direct contrast to the App Store which produces a top 25 list and then requires more applications to be loaded if the user selects the next 25.
However, by providing this benefit to users, Cydia also has to make small allowances from a performance point of view by keeping those packages up to date which happens from a cold start when the application is launched. Saurik remarks that the download size is approximately 3MB which accounts for the records from the default BigBoss, ModMyi and ZodTTD repositories. The file size may not seem very large but when trying to download at the same time as thousands of other people from a centralized hosting system, it does significantly hinder performance.
Another main problem which causes time delays when Cydia is refreshing packages, is the fact that users insist on adding what Saurik calls "entirely-random totally-third-party repositories" which are not set up in the same manner as the pre-installed default repos. This means that in some cases, users who have added these unofficial repositories may actually find themselves downloading the entire catalog each and every time Cydia is invoked. The issue is compounded further when you consider that the third-party repos are often run by a single person from an unreliable hosting package which will cause further delays.
The bottom line seems to be that Cydia is performing exactly as intended, with Saurik happy with performance and describing his creation as doing a "bang-up job". With each new version of the unofficial app store gaining in reliability, and the release of faster Apple hardware reducing loading times, it seems that the problems only really occur when users have a large number of additional repositories installed which increases the amount of content to be refreshed and therefore increases loading time. Pretty logical explanation really.
Head on over to the question posted at Reddit to see Saurik’s full and in depth answer, which as always makes a great reading.