I live and die by my Google calendar and have always hated the fact that I could not wirelessly sync it with my iPhone. I’ve tried every method in the book, and finally have found two methods to wirelessly sync your Google calendar to your iPhone.
The first method is free and uses a service called NuevaSync. NuevaSync allows over the air synchronization to the built in iPhone calendar. It seems like a great service, but I could never get it to work because it requires the iPhone Exchange account to work (you are only allowed to have one Exchange account per phone and mine is used for work email). My roomate has successfully set it up on his phone and he reports that it works well. NuevaSync does not require the user to install any third party software, but does require the user to create an account on the NuevaSync website (security risks?). Instructions for configuring NuevaSync can be found here.
The second method, SaiSuke, can be purchased from the iTunes App store for $10 and installs a separate calendaring application on the iPhone. After downloading and installing, it literally took me five minutes to set up (set up your Gmail username and password inside the iPhone menu Settings > SaiSuke). The program allows you to toggle which Google calendars are visible, and whether you want to sync 1 way Google-to-iPhone only, 1 way iPhone-to-Google only, or 2 ways. The color coding of the calendars stays intact, making reading a whole lot easier. There are a myriad of views including: list, day, week, month, and year, but I tend to stay in the default month view with the summary of the day below.
If you can get away with using NuevaSync, and do not mind giving your Gmail username and password to a new kid on the block, then try out NuevaSync. If you want a more robust, secure method, I highly recommend SaiSuke.