title: How whatsapp get updated contacts from addressbook faster in iOS?
body: <p><strong>My findings</strong></p>
  
  <p>I am designing a logic to sync contact with my Backend. I gone through some apps that doing same thing in IOS. I will take the example of WhatsApp, I found that When I update any contact in Native Addressbook, it reflect that change into Whatsapp withing a fraction. </p>
  
  <p><strong>My Concern</strong></p>
  
  <p>I just want to know that how it is syncing in a very faster way. Even a new contact gets synced with its Remote server and get displayed on contact, and with the ability to initiate Whatsapp chat if that number is registered one.</p>
  
  <p><strong>Summary of Queries</strong></p>
  
  <p>So, in nutshell my queries are,</p>
  
  <ol>
  <li>How Whatsapp is syncing the contact?</li>
  <li>How whatsapp is getting just updated contact list from Native Addressbook (if it's doing so) ?</li>
  <li>How whatsapp is just getting just new Contact added in addressbook, is there anything that manages like timestamp or anything else?</li>
  </ol>
  
  <p>I know the following things are there like,</p>
  
  <pre><code>ABAddressBookGetPersonCount
  ABAddressBookGetPersonWithRecordID
  ABAddressBookCopyArrayOfAllPeople
  </code></pre>
  
  <p>Using the <code>ABAddressBookGetPersonCount</code> i can know if any new contacts are there but still how i will be able to know its Record ID without iterating each contact using <code>ABAddressBookCopyArrayOfAllPeople</code></p>
  
  <p>So i am just asking for the way to get <strong>just updated list.</strong></p>