In sophomore year, fueled by a mix of my desire to learn Swift and an annoyance with the mobile version of my school's website, I set my sights on creating an iOS application for my high school.
First, I reverse-engineered the school's web API with the help of Postman. Then I designed the app's interface in Sketch. In parallel with the app's development, I learned more about developing applications in Swift over the course of several online tutorials and a cursory glance at the Swift documentation. Finally, it was time to build the app in Swift.
Employing a test-driven development methodology, I slowly constructed the app over the course of two years during free time when I wasn't occupied with schoolwork.
The latest, completed, version of the app is actually the second major version, because halfway through development, Apple released their groundbreaking solution to user interface construction on iOS: SwiftUI. Porting the code to SwiftUI from storyboards meant rewriting the entire user interface of the application.
The final version of the application, as it stands, features continuous integration tests, code linting, Sentry error reports, a custom swiping interface for schedules and assignments, and much more.
At the moment, progress is halted as I wait for the school to give me a pair of test credentials to test the app, as mine have expired since graduating. Unfortunately, the project's code must remain private until the project is approved by the school.