This was the very first SwiftUI and 'Game' app I ever created. I followed the tutorial from Sean Allen, who created a iOS PortFolio project on YouTube where he builds this Tic Tac Toe app.
I then built on this starter project and expanded it to let the user change everything from the aesthetics to the actual game modes. The user can now select 3 different AI difficulties, choose who starts the game and even switch to a 4x4 grid.
In addition, the user can also change the actual grid shapes, player indicators and all colors form these components as well. Plus I have added a interactive slide-in menu and some custom pop-up alerts with fun animations.
During this portfolio project I learned to work with the SwiftUI declarative framework. I mainly focused on implementing the MVVM pattern in SwiftUI, by creating an @Environment Observable object.
In addition, I learned to interface UIKit frameworks within a SwiftUI project. I wanted to send emails using the MessageUI framework, but this framewrok is not yet available in SwiftUI.
So I created a UIViewControllerRepresentable object and implemented both functions: makeUIViewController and updateUIViewController to interface with UIKit within SwiftUI.