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...