Archive
An app that allows users to keep a record of their past achievements while aiming for their next ambitious goal. This was a self-initiated project I undertook to learn coding, and develop an understanding of code to build my own apps in the future.
Duration
4 months
Team
Individual
Skills
Xcode + Swift
Leveraging my skills as a designer to create the concept
Setting the narrative of the product.
Your achievements, your story. Track your progress, fuel your motivation, and celebrate your growth.
Determining the main features to focus building first.
Establishing the visual identity: Cyberpunk
Then learned coding, specifically, Swift
Worked through all of Apple's Swift tutorials first to learn coding.
I had no prior knowledge of code, nor have I done any coding before, so it was daunting to start. As I worked through the tutorials, the once unapproachable coding world became familiar.
Constructing the UI in code. Not functional...yet
Built the UI first to see if it was possible to my design in appearance.
This process helped me understand how Swift worked and coding in general, especially how precise and specific I had to be when adding elements onto the screen.
The teaching component
Restarting the project to keep it simple, so I can focus on making it functional.
Initially, after I sorted out the visuals in code, I tried to make it functional. Unfortunately, due to the sea of lines of code, I had to start fresh in order to not be lost and confused as I worked out the functions.
Working on laying out the Achievement View.
It took a very long time to determine how to identify the code that would categorize the achievements into boxes chronologically.
Ensuring how to close the sheet after the two views.
Similarly, I encountered great difficulties figuring out how to close the sheet view back to root view after adding a new objective.
Utilizing A.I for guidance & assistance
Looking online for methods and understanding what it means.
I relied on the StackOverflow community and online tutorials to be able to code the features I needed. When I needed to understand their code or modify it to suit my project, I would rely on A.I. In my experience, A.I is best used for understanding how code works, less for code generation.
After persisting and sorting out the code, I combined it all
Adding a new objective to accomplish.
Completing an objective and adding to achievements.
Next steps
Optimizing code, user testing, and submitting.
I plan to optimize the code once more as there are a couple of irregularities that occurred. Afterwards, I plan to run through five usability testing sessions to ensure my app is understandable to others. When I have developed the app as best as I can, I intend to submit it for the Swift Student Challenge in February 2025.
Reflection
As this project was my first exposure to code, I learned a lot about the process of app development and gained the experience of coding. I strongly believe this experience will allow me to communicate well with software developers in the future.
1. Features that I believed looked simple to implement turned out to be very difficult to code. It was especially harder when I did not have a clear-cut vision of how I wanted it to work.
2. A.I had expedited the entire process, from learning and understanding code, to generating code for features I was not able to figure out. However, I think it is best used for simple features, and not relying on it to generate complex functions.