I thought they might contact the provider but then they would have to contact every provider and know which on you are using.
I downloaded a free one to try it out. I am just using the wi-fi part of it because I only have an iPod. And just having the wi-fi on make the data usage go up. And when I go on youtube the data usage goes way up. Im just using local wi-fi. Could the app just be counting up as long as I have my wi-fi turned on and it doesn't actually know my data usage?
You can get per-interface statistics via a reasonably well-supported technique, namely, call get <x-man-page://3/getifaddrs> get the list of addresses on the system and then, for each AF_LINK address, cast the ifa_data field to a (const struct if_data *) and access the interface statistics from there.
There are two gotchas here:
o There's no good way to identity an interface as being the cellular data interface (or the Wi-Fi for that matter). You can hard-code BSD interface names (for example, "en0"), but that's not a great long-term plan.
o These statistics are all reset to zero on startup. While iPhone OS might track statistics across restarts, there's no public API to get that information.