by David Hla '20
STA Block, available on both the App Store for iOS and Google Play Store for Android, is an app that provides the long-term schedule (A-G) and the current block day along with class times. Though originally designed for St. Albans, the iOS app also supports the NCS schedule with the addition of the A and B lunch block blocks (just select “NCS” when prompted).
Henry Schmandt ‘16 and Trevor Van Vleck ‘16 wrote the original iOS STA Block app over the summer of 2015. In 2016-17, William Mullen ‘17, Ryan Friberg ‘17, Ryan Hennessey ‘17, and Zack Gardner ‘17 took over updating the app. They then handed the reins to Henry Liu ‘18 and Luca Gancie ‘18 for the 2017-18 school year. Although updated for the first semester, an understandable case of senioritis resulted in no more updates. Armed with some knowledge of Java and a passion for programming, but limited by a lack of previous experience with mobile app development and Objective C (the programming language the app is written in), I decided to give updating STA Block a go. Twenty hours of confusion later, I finished updating it for the rest of the school year, and a week and a half later, I published the app.
Over the past summer, I decided to get my feet wet in Android programming and write STA Block for Android. I spent the first three weeks learning Android and writing the app. I learned XML for laying out screen elements and although the functionality behind the app is written in Java, I had to learn a lot of functions that are never used in the Java in AP Computer Science. Over those three weeks, I spent over 200 hours learning functions, figuring out how mobile app logic works, and writing code.
Writing code was the easy part. Learning the new functions and understanding how mobile app logic works, especially without a class and a teacher or a structured learning setting, was incredibly challenging. Many times, my project would combine theory and practice. Theory is when you know everything but nothing works. Practice is when everything works but no one knows why. Sometimes in my project, nothing worked and I didn’t know why. Some issues that would have taken a couple minutes to fix with a teacher took me up to a few hours to solve alone.
A couple of days before school, I started work on updating the iOS app for the 2018-19 school year. I decided to put the entire year in to avoid any second-semester laziness. Due to the inefficiency of the code and the fact that I was putting the entire year in, the update took me twenty to thirty hours to finish. After that came the complicated process of publishing an iOS app, which is why the app wasn’t out by the first day of school. To document everything, Apple requires developers to go through a long procedure involving first creating and registering the app’s unique Bundle ID, then making a Provisioning Profile with the development team’s info and setting release version and other metadata, then uploading the project, then filling out info about the app, and finally submitting it for review. This process is interspersed with frustrated Google searches and confusion as to why it’s not working. Finally, a couple days later, an Apple employee goes through the app to search for malware or any guideline violations.
On the other hand, Google’s Android app publishing process is beautifully simple. Pay the $25 development fee. Upload project. Submit. Within a few hours, the app is up.
Although few STA students have Android devices, I don’t regret the time and effort I spent on the Android version. It was a great learning experience and a productive way to get experience in mobile app development. As for the iOS App, my work was undoubtedly worthwhile, with regards to both learning and usefulness. Last year, over 120 people downloaded my app, which only had the last few months of school. The expected downloads this year (based on previous years’ numbers) is 150–200+.
If you have any questions or are interested in mobile app development, feel free to reach out to me. Also, I will need someone to take over updating STA Block when I graduate, so if you are interested in doing that, please contact me.