I noticed that for some apps in Google Play, their "CURRENT VERSION" says "Varies with device". Does anybody know what it means exactly? Does it mean that the developer needs to manually make different versions for the same app? If so, is it because of API backward compatibility or vendor specific things?
It seems that Android suggests to use reflection or wrapper classes to deal with API backward compatibility - http://developer.android.com/resources/articles/backward-compatibility.html. So maybe it's the latter case?
Thanks!
This is a feature of Google Play (formerly Android Market). You can publish different .apk files (including different versions of the app) for different configurations. This includes not only API levels, but other device characteristics. You can have one version for tablet-size devices and another for smaller screens; or one for devices with a keyboard and one for devices without; etc.
If the developer were using reflection, there would only be one .apk file and Google Play would show a definite app version.