It’s hard to talk about Android, without talking about open-source software. Since the Android source code itself is open-source, it makes sense that developers wishing to extend their app look for open-source libraries. Many development shops of all shapes and sizes embrace open source and all the benefits that it can bring. But with all the benefits, there lies a cost that most development shops don’t see until it is too late. Sometimes choosing a commercial library makes better business sense in the long run. Let’s take a quick look at the Android platform as it is today.
Android has an active community of developers and enthusiast that have developed and distributed their own modified versions of the OS. While these distributions are home-grown, they are missing the extensive testing and quality assurance that ships with Google’s official build. Other developers begin building on top of these modified Android distributions and create components such as Charts, PDF Viewers, Barcode readers and more. If you don’t carefully check what version of the OS that the components was built for, you may find yourself supporting a custom build that has a very limited install base.
Even when a developer decides to stick with Google’s official Android distribution, then there can be conflicts with the “maxSdkVersion” the component supports. Doing a quick web search, you will find many components that may appear to do exactly what you are looking for. But after further investigation, you may find out that they only support a lower (or higher) level API, then the one you are using in your app. This can either mean that they are using some deprecated API call or method, etc. not available in your app.
The last thing to keep in mind while using open-source libraries is the vast variety of devices that Android has. While the component may work just fine on newer Nexus 5 devices, it won’t run at all on lower-end devices.
I’ve decided to focus on just a couple of points that I’ve found personally frustrating when dealing with open-source libraries, but many other reasons exist. I’d encourage you to take a step back and read this blog post that goes into further details on the open-source vs. commercial library debate.