By Werner Ruotsalainen on Tue, 10/27/2009
The iPhone operating system has never allowed for listing more than 9 (SpringBoard) pages of 16 applications each, which has severely restricted the number of applications you can install on a phone. (Actually, the number of third-party apps you can display is even less as the built-in applications take up one tab – around 14-16 icons.)
The problem was slightly cured by the introduction of OS 3 this June. It allowed for both slightly more (11) SpringBoard pages so that you could see a bit more applications. However, additional programs you synchronized did not show up – even when they are there on your phone.
Fortunately, there are several solutions for the problem.
1. SpotLight for OS3+ users
SpotLight, the new built-in search in OS version 3, allows for quickly finding installed applications not fitting in the available SpringBoard pages and, otherwise, invisible. It also has the big advantage of not requiring the phone to be jailbroken to run – you can install hundreds of apps to a non-jailbroken phone if you only want to use SpotLight to access them.
The next screenshot shows the characters “Sa” entered in SpotLight. As you can see, several applications have been found containing the “Sa” characters in their name – even ones that, otherwise, didn’t fit in the available SpringBoard pages.
(A video showing the same is HERE; fast forward to 1:06 to see my pressing the Home button twice (with some pause in between to avoid the Phone app coming up instead) to quickly access SpotLight and entering “card” on the on-screen keyboard.)
Of course, relying on remembering the name of your programs that aren’t, otherwise, visible, may be a little too complicated. In this case, you’ll make great use of the Cydia application “Categories” and its even more advanced, just-released add-on, “CategoriesSB”.
Let’s start with the former, “Categories”. Before that, however, let me explain another problem with SpotLight.
1.1 Caveat: memory usage
(Note: there’s another reason NOT to use SpotLight. Upon my tests, on a 3.1.2 iPhone 3G with about 300 programs installed, it has turned out to take about 9-10 Mbytes (!) of RAM memory after the first start. It seems it’s a system process; that is, if you ever bring up SpotLight, it’ll stay resident until the next phone reboot, taking away these huge amounts of memory. Being a system process also means tools like System Activity Monitor by Recession Apps won’t be able to free up the RAM reserved by this tool. NOTE: with fewer apps installed, the memory usage of SpotLight will only be slightly lower – with 3 or 4 apps installed, it’ll be around 6-7 Mbytes.)
Categories is a well-known Cydia application to allow for putting your applications in subfolders. Using it is very simple: after installing it from Cydia, you tap its icon, tap Add to add a new category, enter its name in the “Add / Enter category title” dialog), tap “Add”. Then, select an icon for it. (This all is demoed in my demo videos; see below.)
After this, tap the newly-created category title and, when Categories switches to displaying it (later, when it becomes populated, this can take a while, even on a fast phone like the 3G S), tap “Add” again – still in the top right corner, as was the case with adding a category itself. Then, just scroll up/down and tap all apps that you’d like to add to this category. When ready, tap “Done”.
Iterate over the above for all your categories you would like to create; then, press the Home button. SpringBoard will restart; now, there will be some new icons on it – the categories you’ve just created. Just tap them to load them; keep in mind this can take quite a lot of time. For example, on an iPhone 3G with a category having 262 title, loading takes slightly more than six seconds (video showing all this HERE). You can try to cache individual categories in memory by tapping the “Info” icon in them (bottom right corner) and enable “Keep resident” as you can also see at 0:32 in the above video. Nevertheless, it’ll result in HUGE RAM usage, which you can’t free up with, say, System Activity Monitor by Recession Apps. You can see an example in the above-linked video – at 0:18, I show you the free RAM (48.80 Mbytes; see the uppermost, green value) of the 3G before making the category with the 262 titles resident. After this, I close the given category (by pressing Home) and invoke System Activity Monitor again to see the amount of the current, free RAM. As you can see at 0:42, it’s decreased to 38.71 Mbytes and tapping “Free memory” doesn’t help either. That is, 262 icons take up a whopping 10 Mbytes of RAM!
Unfortunately, if you don’t enable the memory-hungry caching, Categories’ approach is very cumbersome (slow) sometime, as is also explained for example HERE. I, myself, don’t really use Categories’ folders at all (I find my favourite apps much faster with SpotLight – but, again, it’s OS3+ only), unless I forget the name or just want to see what I have on my iPhone.
2.1 Quick ordering of the list elements
It’s pretty easy to quickly change the order of the list elements. Say, you want to order them in alphabetical order. For it to work, you need to modify the file at \private\var\stash\ Applications\categoryname.app\list.txt. This is the file where each category is listed (note that \private\var\mobile\ Library\Categories\list.txt only lists the category names; you won’t want to change this in any way). It’s a textual file just listing the app names belonging to this category and is also manually editable.
To quickly reorder the files (without having to do it manually on the iPhone itself), just transfer this file to your desktop and issue the command
sort list.txt > list2.txt
Then, just transfer the newly-created list2.txt back to your iPhone. Make sure you rename it to list.txt and, therefore, overwrite the entire contents.
The YouTube video HERE shows this all with a real-life example. The left pane of Total Commander (with the T-Pot plug-in as is explained in my earlier articles) shows \private\var\stash\Applications\MP games.app. At first, I’ve pressed F3 (View) on list.txt there just to show you the original contents of the file. (It’s visible between 0:06 and 0:08.) Then, at 0:09, I’ve copied it to the desktop. At 0:22, after traversing the focus to the desktop (right) pane, I’ve issued the sort list.txt > list2.txt command there. (Note that I’ve, temporarily, lost the focus and tried to issue the command above while still standing in the left pane. This is why, at first, it didn’t work. It took me a while to realize I was still in the wrong pane.) As you can see in the video, a this created a brand new file, list2.txt. At 0:30, I’ve selected it and pressed F3 (View) again. The results (now in alphabetical order) can be seen at 0:34. After this, at 0:37, still standing over list2.txt, I’ve pressed F5 to upload it to the iPhone. In the upload filename, I’ve deleted the ‘2’ from list2.txt (0:39) and, then, at 0:40, I’ve just pressed Enter to let Total Commander overwrite the original file. After restarting the phone, Categories shows the new files in alphabetical order (actually, the screenshot above is taken with CategoriesSB installed; with the plain Categories, the ordering would be vertical.)
Two screenshots of this (with exactly the same application list) in action:
3.1 iPhone 3G (and, possibly, iPhone 2G / iPod Touch 1G and 2G) users, attention!
Before moving on, a quick warning: as of version 1.0.2, there seems to be major problems with CategoriesSB running on the 3G (or at least on the test device: 3.1.2 with AppSync. The same configuration, with AppSync, worked OK on the 3G S). For the time being, do NOT install it on the 3G (or, it seems, any, memory size-wise, comparable iDevice: the iPhone 2G or the iPod Touch models of the first two generations).
I’ve run two major tests to find out whether CategoriesSB renders the iPhone 3G useless. The results of my tests are, unfortunately, positive.
At first, I’ve installed about 220 apps on the iPhone, totaling about 6.7 Gbytes; that is, leaving around 300-400 Mbytes of free storage (of the 7 GByte /var partition of the 8 GB model). Immediately after installing CategoriesSB on the top of the, previously, working Categories, I got into the infinite reboot loop making the entire phone useless and necessitating a complete firmware re-flash.
After reinstalling OS version 3.1.2, I’ve repeated the test; now, with smaller (but more, carefully leaving out the bigger ones from synchronizing; about 300) programs “only” taking up some 5GB (leaving exactly 2G free; way more than in the first case). I’ve distributed the (about 300) apps in five folders, each having apps between 40 and 120 (that is, way lower than in the first case). In the first test above, I only had a huge category having all the apps.) The amount of free RAM didn’t change after this; however, SpringBoard has become much more sluggish (until it caches everything; after that, it operated snappily) and the boot-in time increased from 35 seconds average to 01:35 min:seconds average. Note that, sometimes (say, twice from ten cases) it won’t boot in at all. I’ve even waited once about 12 minutes for it to boot in, just watching the white apple logo. In these cases, just reset the device by pressing Power + Home at the same time until the screen went dark; then, release both buttons and quickly press Power again; after this, it boots again.
Putting all the third-party apps in Categories folders didn’t result in any problem (except for having to reset the device when it didn’t boot in in under two minutes) in my very extensive tests (a LOT of restarts and resets just to find out whether it does boot in).
After just installing CategoriesSB on top of the already-existing Categories (and its already-defined and populated categories), it wasn’t even able to boot in. That is, for the time being, if you do install CategoriesSB on a 3G (and models with similar RAM memory configurations), be extra cautious and backup / save everything before doing so.
Again, I don’t know whether this is caused by AppSync or just the large number of applications. Probably the latter, which is just too much for the “little” 3G. I didn’t have the time to test the same without installing AppSync – synchronizing some 5 Gbytes of software to the 3G takes about 4 hours (over USB2, of course).
Note that having to restore (not taking into account the time and effort needed) isn’t a problem if you don’t want to unlock your phone ever and/or you have a 2G or 3G (as opposed to the 3G S, these two models can safely be “downgraded” to 3.0.x even from the current firmware version, 3.1.2; this can’t be done with the 3G S). Fortunately, it seems it’s the pre-3G S models that suffer from this cycle problem – I’ve loaded even more apps on my 3G S and have never had any problems with it. While, again, the 3G completely crashed because of loading considerably fewer applications on it.
CategoriesSB is a just-released, commercial addition to Categories. It requires the latter. This means you can directly install it on the already-existing Categories on your iPhone – or, if you still doesn’t have it, the Cydia installer will also download and install Categories in the background.
In THIS demo video, it’s installed on top of an existing Categories installation – this is why it only downloads some 11.2 kbytes (as opposed to the much larger download when installing on a device without a preinstalled Categories). As you can see (at 4:47), right after having installed CategoriesSB, I demoed stepping into the same category as with Categories. Doing this was instantenous – unlike with Categories. What is more, it doesn’t seem to take any memory.
CategoriesSB doesn’t add any new icon to the SpringBoard and doesn’t change the way of adding new folders and, in them, apps in Categories either. The “only” change is how the folder icons themselves work: they come up in an instant (as you can see in THIS already-linked demo video) as opposed to the 6-second-long loading of the same applications under Categories (demo video showing the latter HERE).
Note that, unlike Categories, the individual folder icons don’t have an info / settings icon in them. Currently, there isn’t anything to set with CategoriesSB.
3.3 Other advantages over Categories
CategoriesSB allows for displaying badges too. An example of IM+ showing an incoming (Push) message:
Two caveats here: 1. Unfortunately (as of the current, 1.0.2 version), this doesn’t apply to the “Running in background” badges applied by Backgrounder. (You can see this badge in the lower left corner of the iPod icon in the lower right corner of the screen in the above screenshot.)
2. these badges don’t transfer to the folder (parent) icons themselves, as can also be seen in the following screenshot:
Note that the I’M icon (second row, second column) doesn’t have a badge, even with a sub-icon inside it does.
The lowermost part of the screen (the dock) is that of SpringBoard (as opposed to not having anything as is the case with Categories) – this is also a plus, compared to Categories.
3.3.3 “Up one nested category”
Also note that, as was the case with the original Categories, CategoriesSB also supports nested categories. Now, unlike with Categories, if you press the Home button in any of the subcategories, you’re only taken back one level up in the tree and not to SpringBoard again (that is, the root of the tree, where you would need to traverse the category tree again to find your previous position; this could be a time-consuming process with deeply nested category trees like Games -> Color Matching -> Tetris clones). Unfortunately, as is the case with Categories, if you start an application from inside CategoriesSB, when you press Home, you’re taken back into the root; that is, SpringBoard itself.
3.3.4 History (“Recent”)
Finally, it supports “Recent” categories. It’s like the “History” icons (in Portrait mode, also the names of the programs, in addition) in the start menu of Windows Mobile. To do this, just add a category named “Recent”:
Make sure you don’t put anything in it! When you tap it, you’re shown the last 16 programs you’ve started – not only from CategoriesSB, but also from SprinBoard itself. An example:
4. Another demo video
Another demo video is HERE. It shows installing the entire package from scratch; adding a new category (at 3:50; actually, two categories, one of them being Recent to be able to quickly access recently run / accessed apps), populating (at 4:40) and using (6:30; note that I searched for the category from SpotLight; you will want to put its icon in some of the first pages or even the dock at the bottom for even quicker access) it.
5. Another remark
Note that, when installing from the built-in AppStore, the icons are brought back to the regular SpringBoard level with both Categories and CategoriesSB. After the update is finished, they’re all automatically taken back to their original category. This is shown in the following screenshot:
UPDATE (later, the dame day): frontpage at iPhoneMVP: http://www.iphonemvp.com/2009/10/put-several-hundred-applications-on-your-iphone