This post is about developing a custom application, V-Coach. This custom mobile app encompasses the development of meaningful digital feedback mechanisms, field testing among college music majors and their mentors, and progress assessment. V-Coach is a unique collaboration between Shockoe and a VCU Music Department researcher that advances technology-assisted arts training and injury prevention for musicians.
Let’s Dive In
I recently took on the development of a custom mobile application for Virginia Commonwealth University (VCU). VCU Music department was interested in building the V-Coach App, an iPad app that puts specific tools of deliberate practice and reflection into the hands of practicing violinists and violists. V-Coach is a pioneering digital arts technology designed to bring a healthier, more mindful, and more deliberate approach to musicians’ personal practice by allowing the musicians to self-regulate their practice habits.
VCU came to us with an idea to use mobile to assist in the training and improvement of student musicians. The app would encompass most of the latest tools and technology that mobile has to offer: AR, Video, Annotation, Motion Tracking, Data collection, and Audio. The goal of the application was to find a way to allow student musicians to track their violin learning goals, use interactive tools to improve practice and get statistical insight into practice behaviors. Many ideas were passed around, that in theory would work to meet these requirements. We put together the best strategy in place that would help VCU students and professors reach musical goals and now it was time to dive into the development.
As a mobile developer, more often than not you are developing applications that you have had the experience on a subject about and that the average person would understand how to use. Many of the features and UI elements may be decided prior by a project manager or a UX/UI designer, but the success of the application comes down to how well it is developed. Developing application well means understanding the subject and user needs so the app provides utility in moments of need and empowers the user. In the case of this app, I was in uncharted territory as a developer since practices and behaviors that musicians follow and expect were not second nature to me. As a developer, when you find yourself in this position remember to always go back to the basics of development.
Approaching the development of an application of any kind can be broken down with a few simple steps: research the subject, get to know your audience and test with expertise.
1. Research the subject:
Research, research, research, and more research. This step goes a long way in helping you more easily implement a solution that meets requirements. First, take a step back from your subject and narrow it down to the areas that present the most questions. For example, for the V-Coach app, we started with developing a tuner for our users. Instead of researching various tools musicians utilize to practice, we wanted to focus specifically on how a tuner works. How does it operate? What makes it useful? What separates one tuner from another? Compile questions during your research and set out to answer them. Use all the tools at your disposal (books, articles, interviews) to collect sources. Document your source to use as a reference during development. Research done upfront will help tremendously in these next few steps.
2. Get to know your audience:
Try to put yourself in their shoes. Using the research you compiled, start to form assumptions about how a typical user will interact with the application. Distinguish behaviors that beginners use, and compare those to how a professional would behave in the same scenario. Determine which group your app will tailor to by default, and allow room for tools you develop to be easily expanded and configured for future releases. For example, when developing the tuner, we noticed there was a distinct connection between the user and the visual representation of sharp and flat audio responses. The behavior of the in-tune descriptor or needle was very important. It needs to move consistently across the screen and remain steady as the user got more in-tune. Due to the quality of audio intake on some devices through the microphone, it became difficult to filter out background and instrument noise and provide an accurate experience. In this case, we developed our tuner to allow each and every value to be configurable. Therefore, during implementation testing, we could adjust and tweak these value to get it just right. Within these configurations, we applied a smoothing function to normalize our audio input and make the experience more consistent for the end user.
3. Test with expertise:
Now that we have researched our subject, and know our audience, we can develop this app with a better understanding of our users and product. We can use what we learned to start testing with expertise. As a developer, you will often be left to your own devices during the implementation phase. It is impossible to develop a great feature without testing at the same time. Thorough testing by the developer before passing a feature to QA will benefit you by having fewer tickets passed back due to a fail. For example, when testing our tuner, I had to learn how to tune and play a guitar. Not to the level of an expert exactly, but enough to produce results for testing. I needed to know each note, as well as how to audibly tell if I was in tune or out of tune. This way, I could translate expected behavior into actual results produced by the application. Working directly with the client can be beneficial to meet their requirements as well. Use them as a testing resource because they typically have the most background on the subject and audience you are developing the application for.
Following these simple steps can lead you down an easier path to tackling your next big mobile application project. These steps will help make the unknowns, known. For now, and true to the generative spirit of research, our team and I look forward to experimenting, breaking ground in a new field, and sharing lessons learned among colleagues and audiences in the tech sector. So go on, use what you have learned from this blog to make your next big idea a reality.
Notes from the editor
Our UX/UI team who closely worked with the development team on the V-Coach app has recently given a talk on designing this custom application. If you’re interested in how we approached the digital app design portion for this app, you can find the detailed event recap here.
Developing a tailored app that is better suited for musicians, draws attention to and provides solutions for remedying injury prevalence in the music industry, and has the potential to advance the hybridization of arts and technology. We at Shockoe, the mobile technology company engaged in this research, are equally excited about the potential, especially as it pertains to developing more applications to help the academic industry. Ready to have our team help you develop your custom app? Don’t be shy, reach out to us to find out what it takes to make your app happen.
Mobile Software Engineer
Justin is a Mobile Software Engineer with a specialization in iOS native development, but he enjoys creating frontend and backend solutions across a wide variety of platforms. When he is not spending his days getting Swifty, he enjoys hanging out with friends, playing soccer, and getting wins in online competitive games. He is a Computer Science graduate from Virginia Commonwealth University and was born and raised in the Richmond area.