2:

One of the things I wish I knew at the very beginning was how to download data in a non-blocking way, specifically using NSURLConnection.

The first versions of my apps suffered somewhat because I was using things like dataWithContentsOfURL:, which isn't a great idea on the iPhone, since you're never really sure what the network environment will be like for your users.

To make it worse, I was testing over a fiber connection at home with an iPod touch, when a large number of my users were using Edge on their iPhones..

3:

If you want to use SQLite, go with either Core Data (available in 3.0) or FMDatabase (Flying Meat).

My first two apps, I wrote a customer wrapper and bound directly to SQLite.

I am currently using FMDatabase with a new application and have found the experience much nicer..

4:

In the case of a lot of developers, including Google, I'm sure they wish they knew their app would be rejected once complete..