Loading Applications To And Removing Them From Springboard
iPhones and iPod touches running 1.1.3 and later allow you to add applications to your Springboard home screen without restarting the entire Springboard process. A simple loader called "nikita" (which will play a big role in the upcoming SDK) allows you to notify when new apps should appear.
For now, you're still stuck adding your applications to one of two places: /Applications or /Widgets. Power users have long-since realized that you can create a symbolic link from either of these to a folder location of your choice.
Once you've added the applications, you need to issue a system notification, specifically com.apple.mobile.nikita_loaded. Use the standard bsd notification system:
#import <UIKit/UIKit.h>
#include <notify.h>
#include <stdio.h>
int main(int argc, char **argv)
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
notify_post("com.apple.mobile.nikita_loaded");
printf("All new apps and webclips loaded and displayed\n");
[pool release];
}
Unloading is a little trickier. The nikita "unloaded" message will reboot your entire iPhone. Instead, tell the system that you've changed languages. It produces the same effect as the old launchctl stop com.apple.SpringBoard approach but, unlike launchctl, can be run easily as user "mobile".
#import <UIKit/UIKit.h>
#include <notify.h>
#include <stdio.h>
int main(int argc, char **argv)
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
notify_post("com.apple.language.changed");
printf("All new apps and webclips loaded and displayed\n");
[pool release];
}
Categories
MacRead More Entries by Erica Sadun.

Thanks for this Erica however on my 1.1.4 I can't get com.apple.mobile.nikita_loaded to do anything. Basically I was trying to do something similar to the Mobile Calendar app by changing the home screen icon of my app every 30 minutes (using a daemon). I tried copying over the existing icon.png file and called nikita_loaded but nothing happens. I've also tried adding a new .app directory under Applications and called nikita to no affect.
com.apple.language.changed works but kills/restarts the springboard which is obviously not what you'd want. Any thoughts on how to change the home screen icon and refresh SpringBoard?
Is there something similar that will refresh the Wallpaper? I tried this in hopes that it would be the same, but it's not... Thanks in advance.