I don't get the first-party library cargo cult that has developed on Android. What's wrong having the community develop libraries like on any other platform? There's a huge set of very good quality 3rd party Android libraries and even a great new language (Kotlin).
As a dev I'd be rather that Google focuses on developing quality core blocks which cannot be fixed by community. Sadly it seems that Google developers simply do not know how to build good APIs, even new ones like MediaCodec, BLE APIs, updated storage APIs and permissions are an utter hard to use mess.
How would you feel if Facebook or Instagram app refused to start if you didn't give it camera permission? Maybe I don't have a working camera in my Nexus 6.
If you grant the permission only to deny it later, the app won't start again until you grant the permission again.
https://play.google.com/store/apps/details?id=com.google.sam...
You mean the ones that seem to change between Android versions, and get weird bugs between versions?
"I don't get the first-party library cargo cult that has developed on Android. What's wrong having the community develop libraries like on any other platform? There's a huge set of very good quality 3rd party Android libraries and even a great new language (Kotlin)."
Because those can't be counted on not to break between versions of Android.
Volley is just a small abstraction atop HttpUrlConnection, so I'm not sure why you consider it so hacky. It also is available on JCenter, so just compile it into your project using Gradle: "com.android.volley:volley:1.0.0". You're entirely wrong about having to copy the source into your project.