The point of the original post (the concrete question) was beyond just rant and rave - the question asked is "How to deal with it". To put in other words - "What do you suggest as a practical solution to the problem, beyond just dumping Android and developing for iOS". To filter out some possible answers:
1. Buying 50+ devices and doing QA on each one of them is NOT an option. It shouldn't ever be. 2. Paying constantly to remote testing services just to know what bugs we have (without even the ability to debug and resolve them) is NOT an option. 3. Chasing after devices (borrowing from friends, getting debug logs from users, etc.) and writing ugly code for workarounds time after time is what I've been doing for some time, but that is NOT an option. 3. Filtering many devices on Google Play console is our current solution, which is far from ideal as you can imagine. Currently, I don't have an effective way to deal with it, to the point that I've decided to move to another platform - the current state is impossible to cope with. I'm an independent developer, working in cooperation with some people, and we fail to address the fragmentation issue. All our efforts invested in creating a quality product are in vain when it's being run on countless broken devices that we can't keep track of. Just to back myself up - I've been developing for Android for more than 3 years, and have been constantly chasing after devices since the beginning. I experienced that in multiple types of projects (apps and games), as a hired or freelance developer and as an entrepreneur. It applies to every aspect of developing for Android, so this issue can't be evaded. To me, this is far more important than answering the questions on API usage, etc. On Friday, July 26, 2013 2:03:28 PM UTC+3, Kristopher Micinski wrote: > > I guess I'm trying to ascertain: is there a concrete question you > have, or just a bunch of bad points about how the Android ecosystem > sucks right now? > > If it's the second, everyone agrees it sucks, there's not a good solution. > > I suppose one thing that Android could have done better from the start > was to offer UI modes that would be guaranteed to homogenous across > all certified devices. > > I don't think that I said statistics were a solution to the issue > (though apologies if I gave that impression): I meant to merely give > the idea that because of Android's fragmentation a good way to get a > handle on what you're facing would be to use device install > statistics. I never meant to imply that it was in any way a solution. > > But everyone agrees that fragmentation sucks. Everyone has agreed it > sucks since the beginning (even Android 2.0), and people knew it would > get *worse*. You have to worry about API levels, screen > configurations, hardware configurations, etc... > > I know of a few groups developing open source test services, that > could presumably end up making a "co op" or something: that would > definitely give more leeway than traditional expensive test services. > (If people would be interested, this would be possible to do in the > community right now: just buy a server, write some code to distribute > the APKs with a feedback / review system, etc..) > > Kris > > On Thu, Jul 25, 2013 at 10:01 PM, Omer Gilad > <omer....@gmail.com<javascript:>> > wrote: > > I agree that it's better than nothing. But, since it's a paid service > that > > has nothing to do with the official SDK, it doesn't come in the SDK's > favor > > at all. > > > > The problem appears in much more obvious parts of the SDK than the one I > > presented. I can give countless examples on demand and I'm sure others > can > > too. > > > > Also, I never even bothered to fix custom ROMs and such - this is really > > beyond my scope. > > I'm having constant issues with stock, popular devices from Samsung, > HTC, > > etc. - the ones that get shipped in the millions and dominate the Google > > Play statistics. > > > > As you said, statistics are also a temporary "solution" to the issue - > just > > focus on workarounds for the most popular buggy devices - mainly the > Samsung > > Galaxy series and its endless variations. > > > > On Friday, July 26, 2013 4:33:52 AM UTC+3, Kristopher Micinski wrote: > >> > >> Your last paragraph is *exactly* what the CTS is all about, but > >> obviously if you don't work for google you can't mandate what goes in > >> and what does not :-). > >> > >> I'm not recommending that these services are the solution to > >> everyone's problems: but I do contend they get you farther than you > >> would be otherwise. Games are particularly hard to test, since GPUs > >> vary more widely across devices and aren't part of the most common > >> pieces of the SDK. > >> > >> The fact of the matter is, there are always going to be hacked up ROMs > >> running on the market: that's the design decision made by Android. > >> The CTS helps get you farther to a holistic / cohesive platform, but > >> in the end it's a numbers game: knowing which devices, API levels, > >> user bases, countries, etc.. to care about is something the > >> experienced developer has to have a handle on. > >> > >> Kris > >> > >> On Thu, Jul 25, 2013 at 9:05 PM, Omer Gilad <omer....@gmail.com> > wrote: > >> > Yes, I've encountered those services. > >> > > >> > This is still not a solution. > >> > It requires substantial money investment, and in a lot of cases it > >> > doesn't > >> > give you the ability to debug on those devices. > >> > > >> > Personal example - I'm developing a game, and we've found (after a > >> > friend > >> > checked it) that it has major display artifacts on Samsung Galaxy S4. > >> > No logs or attempts to remotely resolve the issue helped - so we had > to > >> > get > >> > our hands on the device for a day. > >> > It turned out that the device's GPU is buggy, and miscalculates some > >> > common > >> > shader operations (like matrix multiplication). > >> > There's no remote testing platform in the world that can assist you > in > >> > resolving issues like that. > >> > > >> > The issue is at the core, and must be solved at a design and attitude > >> > level > >> > - devices like that SHOULD NOT be allowed to run Google Play apps > (and > >> > of > >> > course, they should be deprived of their certification), until the > >> > vendor > >> > fixes those issues. > >> > > >> > > >> > On Friday, July 26, 2013 3:27:49 AM UTC+3, Kristopher Micinski wrote: > >> >> > >> >> There are potential solutions, but in practice it's a constant > battle. > >> >> Certainly there are people that provide internet based test > services > >> >> that test your app on huge numbers of devices for a subscription > based > >> >> fee. > >> >> > >> >> Kris > >> >> > >> >> > >> >> On Thu, Jul 25, 2013 at 8:12 PM, Omer Gilad <omer....@gmail.com> > wrote: > >> >> > I've found that even the biggest app developers like Skype, > Gameloft, > >> >> > etc. > >> >> > have device issues, and they don't look in such a good shape. > >> >> > Just scan the reviews of any super-popular Android app, and you > can > >> >> > see > >> >> > the > >> >> > same disease... "This app doesn't even work, it sucks, and I PAID > FOR > >> >> > IT!" > >> >> > (from some crappy device). > >> >> > > >> >> > Obviously, those bigger developers have the budget and capacity to > >> >> > own > >> >> > 100's > >> >> > or Android devices and run a big QA department. > >> >> > What is an independent developer, or even a small startup supposed > to > >> >> > do? > >> >> > > >> >> > The "solution" that me and my partners decided on is to > aggressively > >> >> > filter > >> >> > down any device that gives us bad ratings in Google Play (from the > >> >> > developer > >> >> > console). > >> >> > That feels like taking painkillers when you have a broken leg. > >> >> > > >> >> > On Friday, July 26, 2013 2:47:49 AM UTC+3, Kristopher Micinski > wrote: > >> >> >> > >> >> >> This is basically what the CTS enforcement is attempting to > rectify: > >> >> >> but it's obviously not a perfect solution. > >> >> >> > >> >> >> Many small developers just accept this as fact, and handle only > the > >> >> >> API. Bigger developers are forced to deal with the real > problems, > >> >> >> and > >> >> >> then it's a matter of extensive knowledge, testing, > metaprogramming, > >> >> >> etc... > >> >> >> > >> >> >> Kris > >> >> >> > >> >> >> On Thu, Jul 25, 2013 at 6:39 PM, Omer Gilad <omer....@gmail.com> > >> >> >> wrote: > >> >> >> > .I am wondering how developers here are dealing with the fact > that > >> >> >> > there > >> >> >> > are > >> >> >> > 1000's of devices out there, some of them running your > >> >> >> > applications > >> >> >> > in > >> >> >> > very > >> >> >> > broken ways > >> >> >> > .I keep running into these kind of issues again and again for > the > >> >> >> > past 3 > >> >> >> > years, and to be honest, I'm fed up with it > >> >> >> > .I've decided to move to iOS development, and the only way to > >> >> >> > convince > >> >> >> > me > >> >> >> > otherwise is to give me a decent, reliable way of dealing with > >> >> >> > fragmentation > >> >> >> > > >> >> >> > So what do you do when you develop a game, for example, and try > to > >> >> >> > create a > >> >> >> > high-quality user experience on Google Play? > >> >> >> > Do you do your QA on 50 different devices? 100? 1000? > >> >> >> > Or do you just shoot blindly and hope that it works, or wait > for > >> >> >> > users > >> >> >> > to > >> >> >> > send you bug reports? > >> >> >> > > >> >> >> > To make it clear, I'm not talking about "official" > fragmentation. > >> >> >> > I don't talk about different screen sizes, densities, features, > OS > >> >> >> > versions > >> >> >> > and so on. > >> >> >> > I talk about the "unofficial" fragmentation. The fact that most > >> >> >> > devices, > >> >> >> > even the popular ones from the big companies like Samsung, HTC, > >> >> >> > Motorola, LG > >> >> >> > and so on, contain tons of implementation bugs that prevent > apps > >> >> >> > from > >> >> >> > working correctly. > >> >> >> > I'm talking about the fact that you can call a certain simple > API, > >> >> >> > test > >> >> >> > it > >> >> >> > on a stock Android ROM (like on Nexus 4), and then have your > >> >> >> > application > >> >> >> > crash on some Samsung, that decided to break the implementation > >> >> >> > because > >> >> >> > of > >> >> >> > some customization. > >> >> >> > > >> >> >> > How can people stand that? > >> >> >> > How is it possible to write code, when the machine that > executes > >> >> >> > it > >> >> >> > is > >> >> >> > completely broken in unexpected ways? > >> >> >> > > >> >> >> > I'm really fed up with it. > >> >> >> > About 50% of my Android development time is wasted on > babysitting > >> >> >> > broken > >> >> >> > devices. > >> >> >> > I'm waiting for an official Google response about this, and > what > >> >> >> > have > >> >> >> > you > >> >> >> > been doing in all those years to fix that. > >> >> >> > I've heard about things like "conformance tests" for devices > and > >> >> >> > so > >> >> >> > on, > >> >> >> > but > >> >> >> > the reality is far from acceptable in this area. > >> >> >> > > >> >> >> > ,Looking forward for helpful responses > >> >> >> > Omer > >> >> >> > > >> >> >> > -- > >> >> >> > -- > >> >> >> > You received this message because you are subscribed to the > Google > >> >> >> > Groups "Android Developers" group. > >> >> >> > To post to this group, send email to > android-d...@googlegroups.com > >> >> >> > To unsubscribe from this group, send email to > >> >> >> > android-developers+unsubscr...@googlegroups.com <javascript:> > >> >> >> > For more options, visit this group at > >> >> >> > http://groups.google.com/group/android-developers?hl=en > >> >> >> > --- > >> >> >> > You received this message because you are subscribed to the > Google > >> >> >> > Groups > >> >> >> > "Android Developers" group. > >> >> >> > To unsubscribe from this group and stop receiving emails from > it, > >> >> >> > send > >> >> >> > an > >> >> >> > email to > >> >> >> > android-developers+unsubscr...@googlegroups.com<javascript:>. > > >> >> >> > For more options, visit > https://groups.google.com/groups/opt_out. > >> >> >> > > >> >> >> > > >> >> > > >> >> > -- > >> >> > -- > >> >> > You received this message because you are subscribed to the Google > >> >> > Groups "Android Developers" group. > >> >> > To post to this group, send email to android-d...@googlegroups.com > >> >> > To unsubscribe from this group, send email to > >> >> > android-developers+unsubscr...@googlegroups.com <javascript:> > >> >> > For more options, visit this group at > >> >> > http://groups.google.com/group/android-developers?hl=en > >> >> > --- > >> >> > You received this message because you are subscribed to the Google > >> >> > Groups > >> >> > "Android Developers" group. > >> >> > To unsubscribe from this group and stop receiving emails from it, > >> >> > send > >> >> > an > >> >> > email to > >> >> > android-developers+unsubscr...@googlegroups.com<javascript:>. > > >> >> > For more options, visit https://groups.google.com/groups/opt_out. > >> >> > > >> >> > > >> > > >> > -- > >> > -- > >> > You received this message because you are subscribed to the Google > >> > Groups "Android Developers" group. > >> > To post to this group, send email to android-d...@googlegroups.com > >> > To unsubscribe from this group, send email to > >> > android-developers+unsubscr...@googlegroups.com <javascript:> > >> > For more options, visit this group at > >> > http://groups.google.com/group/android-developers?hl=en > >> > --- > >> > You received this message because you are subscribed to the Google > >> > Groups > >> > "Android Developers" group. > >> > To unsubscribe from this group and stop receiving emails from it, > send > >> > an > >> > email to android-developers+unsubscr...@googlegroups.com<javascript:>. > > >> > For more options, visit https://groups.google.com/groups/opt_out. > >> > > >> > > > > > -- > > -- > > You received this message because you are subscribed to the Google > > Groups "Android Developers" group. > > To post to this group, send email to > > android-d...@googlegroups.com<javascript:> > > To unsubscribe from this group, send email to > > android-developers+unsubscr...@googlegroups.com <javascript:> > > For more options, visit this group at > > http://groups.google.com/group/android-developers?hl=en > > --- > > You received this message because you are subscribed to the Google > Groups > > "Android Developers" group. > > To unsubscribe from this group and stop receiving emails from it, send > an > > email to android-developers+unsubscr...@googlegroups.com <javascript:>. > > For more options, visit https://groups.google.com/groups/opt_out. > > > > > -- -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en --- You received this message because you are subscribed to the Google Groups "Android Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to android-developers+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.