Carson Greene

Programmer - iOS - Android - C++ - HTML - CSS



This was mostly undertaken as an exercise to write a 100% cross-platform SwiftUI app after Apple announced the SwiftUI lifecycle. I, being a barbershopper myself in my freetime, also didn't really enjoy the current offerings out there for browsing, mostly because they didn't feel like native experiences on either platform but also because I had some novel ideas. While I may not have created a 100% cross-platform app (currently, just iOS/iPadOS versions are available, but I did have it running on macOS for a time as well), I do think I created something that at least taught me a lot, and ideally also made some people's tag-singing life a bit better.

One of the things that sets OnlyTags is its native feel and adaptability to different screen sizes. Most of this is credited to Apple for making a great UI framework in SwiftUI, though it took a while to understand how best to properly utilize it. The result however is a performant, native-looking app that fully takes advantage of iPad and larger-screen iPhones with split screen browsing, something no other app (as of writing) currently does

Another thing I'm proud of with this app is the pitch control. Most other apps have a button that plays the "tonic" of the "key" that the tag is in, but mine also includes the ability to hear the entire scale (including flat or sharp versions of scale degress with a drag gesture) as well as change the tonic note of the key, if either you'd like to sing it higher or lower or if the original uploader classified the tag incorrectly.

Finally, as a part of this work I wrote an API to communicate with the Scales app


My music teachers always told me that the best way to practice my scales was to write them down on little pieces of paper, throw them into a hat, and pick them out in a random order. Unfortunately, I never really did this because I thought it too much work. So, I developed an app instead :)

This app does essentially what my music teachers told me to do: it generates random scales to play. However, this method adds a little bit of high-tech flair. The app allows users to set what the maximum number of sharps and flats should be allowed for the scales, what types of scales (major, minor, etc.) should show up, and even disable individual scales. This was the first Android app I wrote, and the iOS version has since been entirely rewritten with SwiftUI.

Warde Schedule app


Back in high school, my schedule was very confusing. Every day, periods went in a different order and sometimes had different durations. We were given paper fill-in schedules to help us keep track, but they were easily lost. I felt like I was being asked every day what the schedule was. So, I decided to do something about it, to get people off my back ;)

The app does exactly what I set out for it to do and more: it displays the schedule for the current day with the correct period rotation and duration times, but also notifies users after classes about what class is next, but also allows users to keep track of the homwork for those classes. The project took me a year, and released to great success. Unfortunately, the schedule changed for the 2015 school year, and with my new college workload, I couldn't find time to maintain the project. It's been removed from the App Store, and is on my Gitlab server for people to study (or pick up and maintain, if someone feels nice).

On The Page app


This was the first "real" app I developed. Prior to this, I had written very small sample apps, but this app represented a huge shift in the scale of apps I developed.

My mom was in to screenwriting, and to aid her screenwriting she bought some books by Pilar Alessandra, most known for her "On the Page" series of content. My mom thought an app for this content would be beneficial so, knowing I was an app developer, she pitched the idea to her at one of Pilar's classes with the hope that I would develop it.

I had completed most of the app. It allowed for users to create a project, and fill in "worksheets" that would be modelled after some On the Page material and also included some writing tips. Unfortunately, as time went on, communications became more sparse, and eventually Pilar resigned her efforts towards the app, declaring it dead. I have uploaded the source to my Gitlab server, available for anyone to study or fork as a good example of the Apple CoreData framework.