A little over 10 years ago, I received an exciting package in the mail: a bright yellow Nokia Lumia 920 Windows Phone. Microsoft was launching their own mobile OS and I was intrigued by how different their offering was compared to iOS and Android. So excited, in fact, that I was more than willing to be an early adopter and live through the ups and downs of a new operating system.
After unboxing my phone and getting the basics setup like email and Facebook, I was hit with a cold, hard reality: Windows Phone offered very little in the way of apps. I was switching to Windows Phone from iOS, a mature operating system that had an ecosystem of thousands of developers. This translated to iOS having an app for nearly anything one could imagine. Windows Phone had none of the apps I used frequently. No Instagram. No YouTube. No banking apps. This was frustrating, but over the weeks that followed I grew accustomed to just using the browser to access YouTube or track my bank account balance.
A few months later in the winter of 2014, I decided I would do my part and try to contribute a useful app to the Windows Phone ecosystem. I had been developing software professionally for several years and was confident in my ability to make a great app, I just needed an idea. Since this would be my first time developing a mobile app, I wanted to build something on the simpler side. Something that people would find useful, but not something that would be impossible to scale and maintain as a solo developer. I settled on an app for checking drum corps scores.
I worked for the next several weeks on the initial prototype of the app. Version 1 was going to be simple: open the app, see a list of scores. Microsoft did a pretty good job with their developer tools and SDKs for Windows Phone. So much so that making a nice looking user interface was not all that difficult compared to other platforms. The simplistic nature of the UI in Windows Phone meant that for an app to look nice and fit in, no bells and whistles were needed. After a few days of developing, I could launch the app on my phone and see a list of scores. There was only one problem: these scores were hardcoded into the app. Not necessarily useful when you’re looking to get the latest scores.
So, the next step in building the app was figuring out how to fetch the latest scores. The traditional way of building this out would have been to setup up a database to store the scores. Then, put a web server in front of the database to serve the scores over HTTP. The app would send a request to the server asking for the scores, the server would read them from the database, and then respond to app with the scores. The database could be updated as new scores were released and these new scores would be reflected in the app. Easy peasy. But, unfortunately, not cheapy.
The cloud hosting landscape back in 2014 was nothing like it is today. If you search “cloud hosting services” nowadays you’ll get an endless list of providers claiming to be the cheapest, quickest, easiest hosting solution. Many of these providers have free tiers with more than enough compute power to handle the relatively small number of requests the score server would be handling. But in 2014, there were far fewer options and due to this, the costs were much higher. I really didn’t want to pay Amazon $50/mo to host my database/server when I had no idea how successful the app would be. So, I needed to find another (free) solution.
I just so happened to have several old HP desktop towers in my attic. A previous job had thrown them out a couple years earlier. I took them home thinking maybe I could find a use for them one day. I did find a use for them as one of these towers would become the “server” that would serve the scores for my app. The way it served them though was not the traditional approach mentioned previously.
I’ll admit my client/server architecture knowledge at the time was, for lack of a better word, terrible. My entire software career had been spent developing desktop apps that had no use for the Internet. So, my *brilliant* idea for the score server was this: an XML file. Yes, you read that right, an XML file. I would host an XML file on one of these desktop towers that contained all of the scores. Through some clever port forwarding on my home network router, the app could simply make a request to my home IP address on a particular port and retrieve the XML file. The app would then parse the file and display the scores. Genius.
As for updating this XML file with the latest scores, I wrote a little C# program that would scrape dci.org to find the latest scores and update the XML file with these scores. The program was set to run every so often using a CRON job. It wasn’t pretty, but it got the job done.
I spent a few more weeks testing/polishing the app and just before the start of the 2014 drum corps season I released the app to the Windows Phone store. I had done it. I had built and released my first mobile app. I had even managed to come up with a clever name: DrumScorps. Now it was time to see if anyone would use it. Spoiler alert: they didn’t.
To say that very few people used the Windows Phone app I created would be an understatement. The number of downloads per week could have been counted on one hand. By the end of the 2014 season, I think the number of users just barely eclipsed 100. The low user count was mostly attributed to one thing: I built an app for a mobile OS that nobody used. Windows Phone had a very small market share and was really nothing more than a niche OS in the public's eye. It became clear to me that if I wanted anyone to actually use my app I would need it to run on both iOS and Android.
Coincidentally, at my day job during the summer of 2014, I had spent some time learning a new framework for developing mobile apps called Xamarin. The interesting thing about Xamarin was it allowed you to write code once and have it run on both iOS and Android. The norm at the time if you wanted to support both iOS and Android was to just maintain two separate codebases. As an individual developer, the thought of this was a bit daunting. But, by using Xamarin, I could have a single codebase with a minimal amount of code that was unique to iOS or Android. This was just the recipe I needed to take DrumScorps to the next level.
So, I began working on the iOS and Android versions of the app. Things moved pretty quickly and after just a week or two I had a nice little prototype of the app running on both OSes. It was around this time that I first met the good folks over at Drum Corps Planet. They had reached out to me regarding some posts I had made on their forums promoting the DrumScorps Windows Phone app. I had perhaps been a little too overzealous with my advertising on their forums so they reached out with a gentle reminder about the forum posting rules. This initial message through the forums led to further conversations about rebranding the app to be sponsored by Drum Corps Planet. After a few meetings we had agreed to release the iOS and Android versions of the app under the Drum Corps Planet branding but keeping the DrumScorps name. And get this: Drum Corps Planet had an API for retrieving scores. Bye bye XML file.
Fast forward several months and the beginning of the 2015 drum corps season was just a couple weeks away. The winter months had been spent working closely with the Drum Corps Planet team to finish out the iOS and Android versions of the app and integrate with their API. This API brought a number of new features to the app including rankings, recaps, and push notifications. We officially announced the new, rebranded DrumScorps app just a few days before the first show of the 2015 season. The response was better than we could have ever hoped for.
Within a few days we had several thousand downloads. Several thousand. Within a few weeks we were approaching 10 thousand downloads. The response from the drum corps community was amazing. People loved the app and the convenience it brought to checking scores. No more refreshing score pages on dci.org. One could simply turn on notifications in the app and be notified immediately when new scores were available. Simply put, there was no better way to check DCI scores than what we were offering.
A week or so into the season, we were lucky enough to be able to run an advertisement banner on the jumbtron at the Rose Bowl in Pasedena, CA during the annual drum corps show at the stadium. To see all the hard work that had been put into the app displayed on the big screen at a big time drum corps event was amazing. I think we had close to a thousand downloads on that single night alone.
Over the next few years we continued to build upon and improve the app. We added new features like news feeds, show repertoires, forum integration, and more. By the time the end of the 2019 season rolled around, we were close to 40 thousand lifetime downloads of the app. After the 2019 season we were already looking forward to what we would be adding to the app for 2020. Then, of course, something changed the trajectory of everything in the world.
On March 26, 2020, DCI's voting membership voted unanimously to cancel the 2020 DCI tour. This meant that any plans we had for the app for the 2020 season were cancelled as well. It probably goes without saying that an app centered around viewing drum corps scores is really only useful to most people from late June to early August every year. Our usage numbers peaked every year during the summer and took a significant drop during the off season. It didn't really make much sense to release updates to the app for 2020.
We decided to take a pause and regroup as the 2021 season got closer. Once it was announced that the 2021 season would not be a competitive season (i.e. no scores), we again decided to delay updates to the app until the 2022 season. In those 2 years of 2020 and 2021, a lot changed in my personal life. I started a new job and my second son was born. I had become extremely busy and had less free time than in previous years.
So, in the spring of 2022, Drum Corps Planet and I decided to officially end support for the DrumScorps app. It was a tough decision to make but it was the right one. I just didn't have enough free time to devote to keeping the app up and running in a way that met the quality standards we had set for ourselves. The 6 years the app was available to the public had been very rewarding. The countless messages we received from happy users over the years served as both a reminder of how proud we were of what we had built and of how sad we were to not be able to continue offering the app to the community.
If you're reading this you are aware that DrumScorps lives again, just in a different form. A couple years have passed since the official end of the mobile app and in late September of this year (2023) we officially launched the DrumScorps website. This site aims to provide a lot of what the mobile app provided: up-to-date scores and recaps, news, and rankings. But, we also hope to provide some new and fresh things never before seen in the drum corps community. You can read about some of these things in our previous blog post.
Why a website and not a mobile app? We've received this question a few times recently and the answer is twofold. First, maintaining a website requires less time commitment than maintaining apps for both iOS and Android. Even using tools like Xamarin the amount of time spent keeping the mobile app up and running was fairly high. A website allows us to iterate more quickly with less time invested. Plus, a website is accessible from anywhere, not just an iPhone or Android phone. Second, to be candid, I just enjoy working on web apps more than mobile apps. I find the developer experience to be much better and the current innovation in tools/frameworks in the web development space excites me. While I can't say for certain the DrumScorps mobile apps will never come back, I can say there are no current short or long term plans to bring them back.
I'd like to wrap things up by saying how grateful I am to have worked on the DrumScorps app and drumscorps.com. I like to think of DrumScorps as my way of giving back to the activity that gave me so many memories years ago. To all those that used our app from 2014-2019, we can't thank you enough. And, to all those that are here today reading this blog post, we hope that you'll continue to find this site useful for years to come.