Zachary Morden

Hey, I'm Zach. I'm a developer from Canada 🇨🇦 highly interested in app development and the future of technology.


June 27, 2022

Development Process

I developed RacketBot as a fun hobby project to see how far I could push my programming and development skills. Through the process, I vastly expanded my knowledge of iOS and apple platform development. I learned much, much more about SwiftUI, a UI framework I thought I had grasped well. I also learned much more about UIKit through the SwiftUI coordinator pattern designed to allow the two frameworks to interoperate. RacketBot itself is written in pure Swift and totals greater than 7500 source lines of code.

Swift Language Logo
Swift Logo from Wikimedia originally from Apple. Under Apache License 2.0.

Along the way, I was also able to learn many fundamentals and some advanced techniques when it comes to interacting with different system APIs. As of this writing, the app currently interacts with frameworks including CoreData (an SQL database layer synced through CloudKit), WidgetKit (home-screen widgets), SiriKit (working with Siri Shortcuts and intents), MapKit, Contacts, Combine, StoreKit, PhotoKit—I think you get the point...

I also spent time creating this website, initially because it was necessary to have a webpage for an app. Yet, now the website has grown into its own independent project I only hope to continue to iterate and expand on. This website runs on an NGINX instance running on a Linux (Ubuntu) server I personally administrate and maintain. The website is built using the static site generation framework, Publish, by John Sundell. Prior to this project, I was already familiar with Linux admin having temporarily even installed it (Arch style) on a PC and many times in virtual machines. This made setting up the server much more easy, as I was already quite familiar with package management, the command line, and communication protocols such as SSL, HTTP, SSH, and more.