title: Bluetooth Low Energy data transmission on iOS
body: <p>I'm recently working on a project which uses Bluetooth Low Energy. I implemented most of communication protocol, however I started having concerns, that actually I don't know how the data transmission works and if the solution that  I implemented is going to behave in the same way with all devices.  </p>
  
  <p>So my main concern is what data chunk is received when I get a notification from <code>peripheral(_:didUpdateValueFor:error:)</code>? Is it only as big as negotatiated MTU size? Or maybe iOS receives information about chunk size and waits to receive it all before triggering <code>peripheral(_:didUpdateValueFor:error:)</code>?  </p>
  
  <p>When a peripheral sends chunks let's say 100 bytes each, can I assume that I will get always in a single notification 100 bytes? Or could it be last 50 bytes from previous chunk and first 50 bytes from the next one? That would be quite tricky and hard to detect where is the beginning of my frame.  </p>
  
  <p>I tried to find more information in Apple documentation but there is nothing about it.</p>
  
  <p>My guess is that I receive always a single state of characteristic. Therefore it would mean that chunks depend on implementation on peripheral side. But what if characteristic is bigger than MTU size?</p>