I'm creating a highly picture oriented app that might end up using a lot of ckassets. But I read that there is a 25mb limit on daily data transfer per user. My question is is this data transferrable? If one user uses 0 then some other person can use 50? I feel like 25mb limit on data transfer seems so small since one pic is 100k so one can only play w 250 pics max per day. It just seems like such a drastic limitation. Thank you.
The data transfer limits for CloudKit are monthly and are based on the number of active users. You get 50MB/month per user with a minimum of 2GB.
The 50MB/month/user is only used to calculate the free quota; it is not an actual per-user limit, so if some users transfer 150MB and some transfer 0 that is fine. You only pay if your total transfer for all users exceeds 50MB*number of users (or 2GB if you have less than 40 users)
In your question you quote 25MB/day but the limit is actually monthly, so if every user used 50MB a month that would mean they could transfer about 16 images per day.
Extra data is fairly inexpensive though. Say you had 40 users and they transferred 50 images each per day, that would be 6GB per month, which would cost you $0.40
Note that the maximum free transfer is 200TB/month so above 4,000,000 active users the 50MB/user no longer applies, the available transfer is less on a per-user basis but the 200TB is still applied as an aggregate across all users.