Developing software has some clear and well known steps, that have designated tools for each of them. We develop with our favorite IDE, manage the source code in one of a few leading revision control tools, then build our masterpiece and distribute using….how do we distribute software?
In some cases, the answer is obvious - mobile apps are distributed mostly through GooglePlay or the AppStore, desktop games can be distributed using Steam, and some other platforms have similar stores as well.
But what do we do with other binaries, lacking such clear ecosystem? Things like drivers, Java packages, desktop apps?
Of course, your application is simply a binary file, and if you wanted people to download it, you could just give them a link leading to a hosting service of your choice.
Well, it’s actually a bit less trivial than you might expect.
First, naive solutions like the aforementioned will rarely be trusted, and the brave-enough-to-try might face other issues such as poor download speed. Second, managing software releases as a bunch of files on a server is just too inconvenient and error prone.
Second, whether for commercial purposes or just for fun, whether by individuals or companies, when distributing binaries, we always to know where do our products go. We need analytics.
So, what is it that people do to with their binaries?
Some source control services allow managing binary files as well, but are lacking important functionality, Finally being just one of them. To overcome this, large companies often develop their own download servers, thus deviating from their core mission.
Bintray is a free distribution platform for binaries. It allows you to manage structured binary repositories and gather analytics - download time, location, and everything else that can be inferred from detailed download logs.
One of the unique things about Bintray is that it’s a social platform, that allows you to interact with your users, as well as to get recognition for your work.
Furthermore, as the adoption of Agile and of short development cycles grows, and automation seems to be everywhere, it’s good to have tools that facilitate such methodologies. Bintray can be easily integrated with GitHub, as well as with binary repositories such as Maven, Gradle, Yum and Apt.
As a potential package-user, I was also pleasantly surprised to find ready configuration for build tools, notifications about new releases and other small-but-time-saving details.
Bintray still requires some fixes and enhancements, both in terms of functionality and user experience. After getting used to pixel-perfect, beautiful websites and apps, anything less than that feels a bit clunky. Also, as a Python developer, I did not find integration with PyPI, which, I guess, will be added at a later stage.
Whether Bintray its a true revolution or yet another social-something remains to be seen, but it definitely looks promising, and was already adopted by leading open source projects such as Vagrant, Groovy and Gradle plugins.