11 ms·
This Is What Developing For Android Looks Like
- cryptoz 15y ago> You know how all Android developers complain about fragmentation? Yeah, this is what fragmentation looks like. This is some of the most insulting garbage out there. I'm an Android developer. I don't complain about fragmentation. Ever. Don't you dare lump me into a group of people you hear complaining loudly. I'm not one of them! I know it can be hard to get apps to work across all phones. The variety of available hardware is part of what makes the ecosystem so amazing. Of course there will be difficulties that arise from the range of devices (dynamically positioning text to align with a set image background across every screen size and resolution can be difficult, I'll admit) but those problems are not something to complain about, and frankly, they're not any kind of showstopper. The variety in devices allows me to build apps like pressureNET, which uses barometers built in to some phones. I could never be building a groundbreaking, innovative weather network without different ideas and different manufacturers trying things out. As a developer, I love the variety available in Android devices. It's what makes the ecosystem thrive and it's what makes me thrive as a developer. I hate this "all Android developers complain about X" bullshit. It's wrong, insulting, and counter-productive to everyone who's trying to build the next great app. Stop it.
- robocat 15y agoThanks for making pressureNET - there wasn't a reading from Christchurch, New Zealand... now there is :-)
- follower 15y agoHey, if you're in Christchurch you should join us at our monthly tech dinner group, The Valley in Christchurch: http://groups.google.com/group/TVIC http://groups.google.com/group/TVIC Second Thursday of every month, so unfortunately you've missed May's--but sign up to the mailing list now and you'll be reminded for June... We had seventeen people turn up this month including a bunch of new people so that was encouraging. Apparently the quakes haven't done us in completely. :)
- clarky07 15y ago> but those problems are not something to complain about, and frankly, they're not any kind of showstopper. Only if you want to try to make great apps instead of just good apps. As someone who has made both (i.e. really polish vs. just get it out there), if you want to make something really good it needs to be pixel perfect. Unfortunately that is something that is infinitely harder to do on Android than iOS. It is also why in general iOS apps look better than their Android counterparts.
- yellowbkpk 15y agoI completely agree. I was on a project to develop an extremely complex Android app and we survived just fine by testing on one tablet and one phone per developer (roughly 6 or 7 different devices total). The developer tools do an excellent job helping test for and deal with errors on the different in the Android ecosystem.
- candiru 15y agoI agree too. On more data point here: we just ported our fairly complex app (a file manager) from Honeycomb back to Froyo. If we had access to that many devices, of course we would have tested it on all of them, but our experience has been that using a few devices and some emulator configurations you can do surprisingly well enough. Not a single complaint so far, although admittedly our user base only approaches about 20k. I think these articles exaggerate the effect of the fragmentation. It exists, it costs us developers some time and money, but not even close to being a "nightmare".
- gurkendoktor 15y agoWhen I heard developers complain about Android fragmentation first-hand, most of them complained about GPUs, and Animoca's home page shows games first and foremost. I wouldn't be surprised if the need for hundreds of devices differed very much across application types.
- taligent 15y agoJust so you know. You are absolutely in the minority of Android developers. Most want their apps to work on ALL phones.
- DominikR 15y agoThis approach doesn't work on any existing mobile or desktop platform (web apps included). You always target a specific audience, that meets certain minimum hardware/OS requirements. (for example a modern GPU/RAM/OS for 3D games)
- estel 15y agoSure, ideally you'd want your app to work on all phones. But just as developing for any other open platform, attempting to reach 100% compatibility with every device combination is both insane and unnecessary. A range of 5-10 devices is usually sufficient for the 99% of users that most apps will be happy to support.
- jonasmaturana 15y agoWhich criterias would you use for selecting representative 5-10 devices?
- bookwormAT 15y ago1.) one with the minimum hardware you want to support (screen res, cpu, gpu). 2.) Min API level you want to support 3.) top spec phone with latest version (pref. a recent nexus) That is for native platform apps, not Game ports. From my experience, crucial to success is that you write your Apps according to the Android documentation, and not just "until they work on my device". Most "single device issues" happen because of this mistake. Most of the issues developers have when they switch devices
- hkmurakami 15y agoEven the Animoca CEO who is cited in the article exclaims in the end that he is a fan of diversity and doesn't believe in an one size fits all approach[1]. In fact, nowhere do we find Mr. Slu complaining about the ecosystem. The only person putting forth the we are in a horrid state of affairs line is the author of the article. I suspect that the picture from Animoca was taken as a statement of the company's quality, asserting that "Our company takes the time to QA on all these devices. You the consumer can be assured that our apps will work on your phone, no matter what you use." The picture, to me, is a statement of pride, rather than a display of frustration. So it looks more like the author had an agenda, and tried to put a square piece into a round hole. [1] “We like fragmentation as users prefer choice. We are not big believers that one size fits all.”
- jonasmaturana 15y agoWhen they say "all Android developers" you can be pretty sure they mean "most Android developers". Working on several high profile apps here in Denmark I have felt the pain of not having enough real devices to test on. A bank just wont accept that you don't support one of the most common phone on the market because it has some problems with the camera. Another project ran into the BigInteger.modPow is not thread safe issue way too late in the development process because we didn't test intensively on pre 2.3 devices. After facing all these issues, my current project run automated test on 20 physical devices daily. It also helps us keep the UI looking sharp on all devices.
- estel 15y agoIsn't "not supporting one of the most common phones" a different order of magnitude from what they're discussing here? Hell yes that app should be supporting the Galaxy S2s and HTC Desires of this world, but the majority of those 400+ devices will probably be used by < 0.0001% of your users, particularly if the app is targeting a Western audience.
- jonasmaturana 15y agoI totally agree that 400+ devices is pretty crazy. By looking at device usage stats I would say that 20 devices will get you above 90% in one region but you have to use closer to 40 if you aim for 90% on the global market. (Of course it depends on your user base) However, having 400 devices on the shelf for debugging when you get some strange error report might be very valuable. I would love to have a bucket of CDMA phones available since I can't just go buy one in the store. (I live in Denmark)
- gurkendoktor 15y agoI maintain a business app for iOS and my client fully expects me to reproduce and fix bugs for obscure versions of iOS that only 0.0001% of people might still use, even if those people can (and should) just upgrade their OS. If it was my own app I wouldn't care.
- ktothemc 15y agoHey, I'm the author of the article and I don't really have an agenda in the Android/iOS platform debate. Both are necessary platforms to build on at this point. Yat also wasn't really complaining about the state of affairs on Android at all. He's happy to QA test with 400 devices and he thinks it's why his company performs well relative to other game developers who don't do as comprehensive a job. I just thought it was a hilarious photo about the lengths that one Android developer will go to make their apps work. :)
- codeka 15y agoThen why not frame the article as "this is a hilarious photo that shows the length that one Android developer is going to in order to ensure maximum compatibility", rather than "this is what it's like if you want to make an Android app"?
- ktothemc 15y agoYou are not a blogger and that is not a viral headline. :) Joke. No but seriously, I talk to a lot of the top free and top grossing developers and taking QA seriously is a big deal. It matters. Not everyone takes it seriously and it affects your user reviews. At least that is Animoca's thesis and that's why they use 400 devices.
- ktothemc 15y agoIn all honesty, there is an interesting debate here. A lot of developers are saying 5-6 devices is sufficient for compatibility testing. But Animoca argues that doing 400 is actually a competitive advantage for them.
- codeka 15y agoFirstly, it's not the headline I'm talking about. The whole tone of the article is "this is what developing for Android is like." Having to test on 400 devices is NOT what developing for Android is like, AT ALL. So you talk to many of the top developers. That's great, how about we hear from a selection of them? How many devices do most of them test on? Taking QA seriously is not the same thing as testing on hundreds of devices. So when are we going to see the other side of the "debate"? Personally, I don't see a debate at all, just some pageview-bait article that takes a single developer and makes out like this is normal.
- cncool 15y agoI don't know I you're being intellectually dishonest or are bad at reading comprehension, but the author said "many developers," not "all developers."
- codeka 15y agoThe article has been updated since that comment was posted.
- pierreten 15y agoWow.. fucking relax dude
- bookwormAT 15y agoSame with me. I'm working with cross platform technologies for 15 years now. Python,Java,Ruby,HTML and now Android. I don't complain that I have to target different systems. I use this stuff because I want to target many different systems. Take a closer look at all these devices in the article, and imagine for a moment that every single one of these would be as incompatible to one another as iOS is to Windows Phone. That is: Imagine you had to write a complete new App for every single one of these devices. Android is a defragmentation tool.
- ajross 15y agoYes, indeed. All android developers have 400 phones (neatly and photogenically arranged on a conference room table, no less). Look, fragmentation has costs. Outside the core APIs (and especially with hardware-facing interfaces) you need to expect to do some testing. Screens have different resolutions. PVR and Mali have different rendering bugs. Different cameras have different quirks. But to baldly pretend that this requires exhaustive testing on hundreds of devices is just sensationalist nonsense.
- taligent 15y agoI agree. Hundreds of devices is ridiculous. But if you are trying to build an app that must work on as many possible you are still look at 10-20 tablets+phones. It's still very expensive.
- rokhayakebe 15y agoOpportunity for a web-based emulator including all devices.
- wtracy 15y agoOr, say, a "cloud" solution that lets you remotely test on a variety of devices? Oh, look! http://www.perfectomobile.com/portal/cms/android.html http://www.perfectomobile.com/portal/cms/android.html http://testdroid.com/product/testdroid-cloud http://testdroid.com/product/testdroid-cloud The solutions are already out there! Quit whining and get back to developing cool apps. :-)
- jonasmaturana 15y agoShameless plug: Cloud service: https://www.lesspainful.com https://www.lesspainful.com Framework for testing Android apps using Cucumber: https://github.com/calabash/calabash-android/ https://github.com/calabash/calabash-android/
- yellowbkpk 15y agoWhy a web-based emulator? Just use the one that's included with the Android SDK. You can simulate any combination of memory, screen size, screen resolution, and various hardware characteristics. Sure it can be slow, but it's getting better and is actually emulating the system you're developing for.
- stesch 15y agoIs the emulator in the SDK usable now? Last time I tried Android programming it was slow as hell. Unusable even for a simple Phonegap app.
- sureshv 15y agoIt's still slow because it literally emulates the phone running on an ARM CPU rather than simulate ala the iPhone simulator which runs an x86 version of IOS.
- cageface 15y agoAs long as Android sales remain brisk this is only good news for HTML5.
- taligent 15y agoI used to work for a large multinational who had a few popular Android apps. This is what we had to do as well. It's surprisingly common place at enterprise companies who need to support a wide range of devices.
- alanh 15y agoAnd (per the article) this is what using android looks like: “Unlike iOS users who throw up their hands in frustration, write bad reviews and just leave, Android users tend to be delighted when they find apps that work even if they have a glitch or two.”
- gregable 15y agoI'm not an android developer, but I am curious. Why is it that testing on dozens/hundreds of platforms is considered essential for cell phones, but not for PCs? Is android just that much worse at abstracting hardware than traditional OS'es?
- cullenking 15y agoIf every manufacturer of a windows based laptop was allowed to fork windows and customize it to their liking, you'd be looking at the same issue.
- jonasmaturana 15y agoI think that one reason is that the handset manufacturer thinker more with Android than they do with a traditional OS. One example is the vendor specific themes. Another reason for the higher focus on QA is "user ratings". Before companies didn't have to worry much about not supporting all users. With mobile a small percentage of users can give you a bad rating. The bosses are terrified about bad public ratings! :)
- ImprovedSilence 15y agoI'm not sure either, but I think screen size/resolution/aspect ratio and different hardware "tools" (ie cameras with different resolutions, does it have one led or 2 for flash, etc) have potential to be problems. I'd like to hear more on this issue though.
- salem 15y ago400 devices is probably overkill, you can get by with far less if you want to cover 90%+ of the market. This sounds about right from my experience: http://techblog.netflix.com/2012/03/testing-netflix-on-android.html http://techblog.netflix.com/2012/03/testing-netflix-on-andro...
- pavedwalden 15y agoSome of the comments here have gotten me thinking about access to test devices. I've never worked on android, so I don't know if installation of lots of unfinished software would be logistically sane, but what about meetup groups where local devs could test out each other's beta apps on their phones and tablets?
- Mavrik 15y agoThat actally happens quite alos around here... Those "test" meetups were even sponsored by local service providers and Samsung.
- greggman 15y agoSomeone needs to take a picture of all the desktop PCs, laptop PCs, tablet PCs, netbook PCs and then say "This is what developing for Windows looks like". I'm sure it would be an order of magnitude bigger, maybe 2 or 3 depending on how far back you decide to go. Or even add up all the mac models from the last 5 years. Heck, I have friends still using power PC macs.
- sigmaxipi 15y agoWindows does a good job of abstracting the hardware away and preventing the OEMs from tweaking the APIs so this isn't an issue in most cases. The major exception is for the large game developers who have to buy tons of various configurations of GPUs and motherboards in order to test various configurations. Basic hardware accelerated graphics works well across platforms but AAA games use complex shaders and heavy optimizations which are based on the incomplete and broken implementations of GPU vendors.
- vibrunazo 15y ago> The major exception is for the large game developers who have to buy tons of various configurations of GPUs The same is also true for Android. Most (all?) of the valid complaint about how hard it is to target different Android devices comes from game developers struggling to get which version of OpenGL to use, which OpenGL API calls are bugged on which devices, how to circumvent low level GPU limitations on this or that device, etc. And afaik, those are usually based on incomplete and broken implementations by GPU vendors as well. Same as with windows. Most of the regular utility app, which use normal Android layout and API instead of OpenGL, are doing fine just testing their app in different AVDs (instances of the emulator) just to make sure they're compatible with different devices. (then of course, there's a few newbies who didn't spend 10 minutes reading the guide for running on different devices on d.android.com, then whine their app's font looks different on a friend's phone. But I'm counting those out)
- zmmmmm 15y agoAs an Android developer I have about 5 phones and an extended group of friends with another dozen or so. Along with the emulator it's more than enough. This article is ridiculous flamebait.
- Macha 15y agoTechcrunch. Android. Linkbait bullshit. What's new?
- user23409 15y agoLooks like a thriving ecosystem that fosters innovation, individuality, and competition. Seems great for consumers and developers alike.
- radley 15y agoI'm going on my 12th device this week and expect at least two more next month. My partner has 6 devices at his place. Part of the problem is Google is releasing OSes faster than devices can keep up, and in a few cases I'm buying simply because the prior's OS is stuck yet I have to satisfy new devices users too. For example, I have Galaxy Tab from IO which is stuck on 3.1, but all new tablets use 4.0 and there's unexpected differences between them. The killer reason for us is the dreaded 1-star review because we missed a particular combo (screen/OS). We have > 1M users between 2 apps w/ 4.2+ ratings each as a result. Once you're making some good $$, you really can't afford not to have a device library.
- robocat 15y ago> dreaded 1 star reviews This is very obvious when looking at app ratings - users seem to blame model even if problem is entirely unrelated. Hell, the Play Store ratings shows the user's model/device name under each user's review... that leads users to quickly blame their model type.
- eta_carinae 15y agoThis is nonsense. Yes, fragmentations make it a bit harder on developers, but that's why we get paid the big bucks. Choice is good for users, you won't hear a lot of Android users complain about fragmentation.
- sparknlaunch12 15y agoSurely this is a quality assurance exercise of diminishing returns. Why not test on the must common devices or top device in each main category? Is fragmentation a real issue? First time I have heard about it. Is this like browser compatibility for web developers?
- gazrogers 15y agoIf I develop software for a PC I don't have 1000+ PCs with every conceivable combination of CPU, graphics card, monitor, sound card, and Windows version. That would be absurd and unworkable. And yet that's what this article would have us believe you should do when developing for Android.
- dools 15y agoSo this is just the precursor to all app developing cycling back to the web right? I suppose it will take time for browser tech to catch up to what PCs have on offer and hardware apis but this is obviously what HTML exists for.
- majmun 15y agoWhy are you supposed to test on all device types? Couldn't be possible to find the one or few devices that combined have all the properties that all other devices has and test on them only.
- shareme 15y agoLink bait article.. Oh BTW, Apkudo just launched their beta free program to test apps in android devices online..I would find a way to get an invite..
- deleted 15y ago[deleted]
- bane 15y agoIt looks like a wildly successful device ecosystem.