So, what will you get after following this guide? You'll get your google contacts and calendars all synced to your iPhone and best of all, new mails will be pushed to your phone the second they arrive
Go to Settings on your iPhone and tap on "Mail, contacts, calendar".
(If you already sync gmail, you might want to disable mail and calendar sync) otherwise, tap on "Add account".
Select Microsoft Exchange
Enter your gmail email address and your gmail password.
Fill the form as described in the screen shot. Leave the domain field empty.
Scroll the form down and fill the username and password fields. If you don't already have IOS6, then the form might also include an SSL option, if so, set it to ON and press NEXT.
Set everything you want to sync to your iPhone, to ON. Press SAVE and you're done!
If your google calendar contain several secondary calendars and you want to control which to get on your phone, open safari on your iPhone and go to: m.google.com/sync where you can set it up.