2. There are 2 modes: strict and server managed. Strict mode will always verify license every time you start an app. This is useless when no network connection is available - e.g. on airplane, and gives maximum tracking to Google. Server managed can cache the server response and use the cached response when there's no network connection available. This has 2 problems: (1) from users' perspective: you'll have to pre-open such apps that you'd want to use on a plane before taking off
Actually the developer has more choices than that... You can allow a user to use your app and delay check until an Internet connection is available (and many apps already require an Internet connection to be useful). Yes, that would mean taking a chance that some people might get to use your app for a while without paying, but it's still a reasonable compromise. This is absolutely not a piracy-proof idea (is there really any piracy-proof software?) and, as you said, there are better ways to do it. This is just so it becomes a bit harder to pirate apps. As a developer, I think investment in DRM or any other anti-piracy measures should only be enough so that the average user can't get around it easily. I also believe that, when in doubt, the app should act as if the user is a paying customer. There is really no point in implementing a very elaborate licensing/DRM system because it will only bother genuine paying customers. Those who are very tech-savvy and motivated enough to save a few bucks on an app will always find a way around it, and share it with others. Today I doubt that there is actually any popular and non-free software in any platform that also doesn't have a pirated no-drm/no-restrictions/cracked version going around in a torrent.
Perhaps Apple (and others) need to shift emphasis back towards the actual calling features of their phones.
Aw, come on! Phones that make calls are so 2009...
Today is a good day for information-gathering. Read someone else's mail file.