How to keep mac, iphone, icloud and gmail contacts in sync? I used to keep mac, iphone and Gmail in sync via Exchange till iCloud was released. Once I started using both Gmail contacts and iCloud for air syncing I started having duplicates on the address book, whatsapp and other apps.

After doing some research I found there are conflicts between Gmail and iCloud when syncing. For instance, Exchange protocol does not allow things like birthday dates, contact groups or custom fields (something I noticed before). I was tempted of using iCloud for that reason but then Gmail contacts would be out of sync and I'm not sure I would be able of syncing my Mac's address book either (not sure).

Anyway, is there any easy way (via software or not) of keeping mac, iphone, icloud and gmail in sync? Including custom fields, groups, birthdays...
Mail
use the Gmail template on iOS to have the best Gmail experience on iPhone, use Sparrow to have the best experience on Mac. It will use your Gmail contacts and the one you have on Address Book.
Contacts
Use iCloud for contact syncing on the Mac and the iPhone. You won't have the contacts on the Gmail webapp, but you can still find them on icloud.com.