Checking for root access is actually really useful from a developer standpoint. I've seen countless bugs on Crashlytics that are 100% on rooted devices which often is because the user has xposed or some other system level hacks that break my apps. This allows us developers to spend more time focusing on real bugs instead of chasing down these rooted device problems.
>> Not entirely sure how this made front page, but it is a super handy lib.
Sad that nowadays a statement like that isn't even considered ironic :). A cross-platform library handling an ugly necessity of development has to fight for its life in a sea of "growth hacking 101" links and the like.
I would speculate that the reason why is so that Google doesn't have to maintain several versions of the library within the Android platform.
If Google is the only consumer, then Google only has to test internally that they didn't break something with an update. If tons of apps are consumers then they need to either test with many more apps, or worse just simulate buggy old behaviour for apps to keep things consistent (see Windows/Win32/etc).
If apps house their own copy of the library, then that version is static for that app's context, which likely means it won't break randomly in the future. That's good for the app developer (better back and forward compatibility), better for Google (less testing, less maintaining compatibility), and less headaches for consumers (as apps won't break as often when updating Android).
This reminds me of one of my favourite quotes: "If something in software doesn't make sense, then assume it is there for compatibility reasons." Which I think is a Raymond Chen quote that I've mangled.
I posted it after one of our engineers discovered that this is a hard problem!
We were trying to use Twilio and Authy on an application but they handle phone numbers in a different way. Say you accept a phone number from Argentina, to call mobile phones from outside the country you need to add a 9. Twilio accepts that 9 and correctly sends SMS or calls to that number but Authy only accepts the local number format without the 9 and have a big IF to add the 9 internally. So, if for some reason the application must use a phone number in Twilio AND Authy you will need to accept two phone numbers from the user (that are the same in different formats), which is... annoying.
The reason it's internal is because system code takes priority over third party libraries given the same package name. If there were any changes to the library, you could never use the newest version because it would be dominated by the system version. This is what happened to the Apache HttpClient and why there is a fully repackaged version for people who want to use a newer client than the one in the Android System.
Yeah but it's already namespaced differently so package name shouldn't conflict. But now that I think about it more, consistent versioning for the 3rd party dev across multiple OS versions is pretty important.
This is the first time they're offering a peek into a pre-release of their OS, ever. Apple has done multiple times with a track record of auto-updates, so yes, that can be expected of Apple, and Apple only.
Google never promised updates, never promised stability, it's not a beta, it's not a GM, it's not even alpha. It's simply a preview. You get what they say you get. Don't set iOS's standards on Android, they're completely different products, with completely different cultures, release cycles, everything.
There are a lot of products, Google and otherwise, that go straight to release without any prereleases. If anything Android has has a very strict record of that, so I think your expectations of much more from them on such a large release like L is simply unfounded.
So, because it's first time, but in contrast with their other teams and with other companies, I should be satisfied? You guys are a bunch of low-standards fanboys, especially those who take pleasure in downvoting every single comment I made here as a punitive action against daring to state the obvious. Android prerelease process should improve, I'm not satisfied and I don't care that some people are okay with everything and don't bother to demand more! Even Play Store now has the concept of prelease software that autoupdates! And they have a completely separate static build for Android Fit. Just ridiculous!
"Reasonabe" according to a low-standards crowd. I'm a different breed. I demand high-standards from myself and others. There's a fierce competition today, if you haven't noticed. And Google lags behind.
And C# can't (directly) run on anything not built by Microsoft. For those of us focused on shipping products to cross platform users, there are handfuls of languages better than C# in that regard. There are things every language does poorly and well, but you also don't see us making whycsharpsucks websites because we're probably too busy building things.
I just don't see the need for this kind of negativity. If a language wasn't designed for a certain way of using annotations (or any feature), maybe another method should be tried to get similar results. It may not be ideal and may not fit the paradigms of what you're used to, but it's a completely different language for heaven's sake.
It's like asking why a Honda Accord isn't faster than a Lamborghini... But at least the Accord holds 4 people and has useable trunk space. They're built for different needs, nobody expects an accord to race well, and nobody expects a lambo to be good for soccer moms and off-roading. So why the hate?