AKA "Splash screen", if you place a file named Default.png in the root of your application with
Build action: Content then the iPhone will automatically display this while the application loads (rather than the "black screen").
There's a few approaches you can take: the awesome Flight Control app uses a simple 'Please wait' banner (which conveniently prompts you to turn the phone sideways); my other sample uses a 'greyed out' copy of its UI with a 'loading...' message.
Alternatively you could take a screenshot before shut-down and save it as /Name.app/Default.png, so the next time it starts up it looks like you are continuing where you left off - even before the app is finished loading. UPDATE: here's some sample screenshot code to add to your
Whether you realise it or not, your MonoTouch app already contains an Info.plist file - right-click on your project →
iPhone Application →
Application Bundle - these fields all end up in a MonoTouch-generated Info.plist.
If you navigate with Finder to
/Projects/<your project>/bin/iPhone/debug/ and remove the
.app extension you can open your 'app' (it's just a folder!) then you can view the generated Info.plist that is sent to your device.
That doesn't mean you are restricted from adding more details though! Remember that plist files are basically just a special 'Apple' form of XML. Simply add a text file to the root of your project and rename it Info.plist - MonoTouch will merge it with the
Options before copying to the simulator/device. Here is a sample Info.plist (described below). DON'T FORGET to set the
Build action:Content in the file's properties.
SBUsesNetwork & UIRequiresPersistentWiFi
Indicates to the operating system that your app uses connectivity. The Persistent setting keeps the WiFi running (so beware of running down the battery).
true it tells the operating system that your icon is already pretty, and not to mess with it! When
false the icon is made shiny with curved corners for you.
You probably want to leave it as the default: false!
If true, totally HIDES the status bar (eg. for games such as Flight Control).
Use this to turn the status bar from grey to black! The
UIPrerenderedIcon example above also shows the
UIStatusBarStyleOpaqueBlack status bar style.
If you change this from the default setting (eg. to
UIInterfaceOrientationLandscapeRight) you should ensure you have provided landscape views in your application. You really don't want this effect:
If you read about initiating a call or other actions in MonoTouch you'll know about the use of
OpenURL schemes to open other applications.
CFBundleURLTypes in Info.plist informs the operating system of what schemes your application will respond to. If you use the sample Info.plist and view this blogpost on your iPhone, clicking initdial://123456789 will open your app! You probably also want to parse the parameters... but that's another post :)
Custom schemes are really useful for social apps (eg. twitter clients, map stuff, etc). To learn more about what schemes are already available/used check out handleopenurl.com.
There are many more options you can set in Info.plist, and also other ways to control some of the things above (such as showing/hiding and changing the appearance of the status bar). Check out some of the Objective-C resources and try them for yourself!