- Status: Accepted.
- Technologies Used: AVFoundation, CoreGraphics, SwiftUI, UIKit, UniformTypeIdentifiers.
- Demo Video: https://youtu.be/t4NQSHLIbaw
I used two figures depicting the Mandelbrot set and the Multibrot set. They both illustrate an advanced mathematical concept related to modular multiplication, the main subject of my project.
The used images are the following:
- Cuddlyable3, "z ↦ z² + c" via Wikimedia Commons, released into the public domain.
- Cuddlyable3, "z ↦ z³ + c" via Wikimedia Commons, released into the public domain.
In addition, I used a beautiful short audio file as background music for the app. It helps lighten up the mood and make the experience more delightful.
The used audio is the following:
- Seth_Makes_Sounds, "chill.wav" via Freesound, licensed under CC0 1.0.
As my self-imposed tradition wants it, I used a new and different framework to build this year's project. After UIKit in 2020 and SpriteKit in 2021, it's now SwiftUI's turn to feel the wrath of my mighty and limitless imagination!
The Swift Student Challenge is the best opportunity to challenge myself to make something I hadn't done before, something I didn't know how to do. It's also a substantial occasion to grasp new concepts within and beyond the Swift programming realm. I learned and relearned trigonometry and modularity. I also came across the incredibly complex but fascinating Mandelbrot set. Juggling between arithmetic and geometry was something I had never done before in programming, especially not with SwiftUI. Yet, the latter framework helped me effortlessly build complex shapes accompanied by beautiful animations and smooth transitions.
Moreover, I always enjoy mixing the analytical world of math with the creative world of art. Working with SwiftUI is especially compelling for creating customizable interfaces and layouts. Its lightweight syntax and its ability to manage the rendering of views are fundamental features in making the development process quicker and more exciting. These advantages also pushed me to be more creative in the layout and fiddle with color tinting, shading, mixing, luminance, and contrast ratio (significant for visually impaired users).
In addition, I used the CoreGraphics and UniformTypeIdentifiers frameworks. Rarely put under the spotlight, both were instrumental in exporting and sharing the app's contents with the outside world. Sharing and interacting are essential to our society. Therefore, I have used these frameworks to generate still images and moving GIFs of the user's creations within the app.
Finally, I used UIKit for minor yet critical functionality. Where SwiftUI felt short on some tasks, UIKit was always ready to help compensate in actions such as copying the generated file to the clipboard. I also used AVFoundation to bring in pleasant background music next to the enchanting visuals.
At last, this year's Swift Student Challenge was yet another incredible year of learning, building, and sharing!
Communication is part of day-to-day interactions. It also is part of a programmer's job. Someone who codes independently shares instructions to his machines. Someone who codes in a team shares insights and experience with his peers. However, sharing doesn't stop there.
Both individuals and teams can branch out and reach more people through different mediums and channels. In my case, I actively engage in word-of-mouth communication with friends and classmates. Having had experience with distinct programming languages for more than five years, they come to me for advice and a better understanding of the work and environment in computer science and engineering. I'm no expert in the field and can't help in all matters, but I enjoy having these conversations before we all graduate from high school at the end of the school year.
Furthermore, sharing doesn't stop at the boundaries of our physical world. Several social platforms help me give and take knowledge to the programming community, especially the Swift one. On Twitter, I regularly try to share discoveries while coding, improvements to projects, and overall entertainment to cheer up someone on the other side of the globe. Besides, the WWDCScholars' Discord channel is another sub-community where we collectively share advice, relevant resources, and, most importantly, code-related memes!
Last but not least, I also enjoy sharing long articles and small code snippets on my website. I may not always have the time to write. Yet, I continuously find joy and some form of accomplishment in trying to explain programming concepts while helping others who face the same issues I once did. For instance, I remember someone emailing me about an article I had written because he had not grasped the information. I was delighted to further explain and edit the page with the necessary changes.
To conclude, I've undoubtedly shared my knowledge and enthusiasm with others. I hope to continue sharing more and better content with more and more people!
I currently have two apps that I imagined, designed, built, published, and marketed on the App Store. There are a lot of action verbs for only one person, but the reality is that creating sustainable apps is no easy job. However, the challenges that I can face are nothing compared to the great joy of seeing my creations used by thousands.
I built and published my first app, Huh?, in 2018 at 14 years old. It was my first shot at making an iOS app with Swift and sharing it with the world. Coding the app from scratch was a real challenge. Nonetheless, after many major and minor updates, I am now very proud of my creation. Huh? is a reasonable option for users who want to access their dictionary of choice in seven distinct languages. Besides, I am very grateful to have had my app chart in the reference category in Lebanon. I am always keen on enhancing the user experience, and I look forward to being featured in the store one day!
I built and published my second app, Christmas Guide, formerly "Who Am I? - Christmas Edition", in December 2020. I had challenged myself to swiftly produce a functional and nice-looking app made with SwiftUI for Christmas. I had never extensively used SwiftUI before, so I had to overcome a new hurdle. In addition, I had also decided to use Machine Learning for the first time to train a model that classifies an image as one of multiple Christmas characters. Christmas Guide is now an app to keep track of important dates during the holidays, listen to classical songs, and have fun with friends and family.
The apps I have on the App Store are not solely proof of what I did but also what I will be able to do. I still have so much more to learn in the iOS development field. I don't want to stop creating and solving problems.
Perhaps, this project that I have submitted for the Swift Student Challenge will be my next app on the App Store!
First and foremost, an immense thank you for making the Swift Student Challenge possible for thousands of excited students, like me, throughout the world!
The project I built is a way to show that math is not opposed to art but that both fields are rather complementary. The analytical and logical world of math can be associated with the creative and aesthetic world of art to create incredible things.
The app's visual circle and its paths are a fun way of learning the concept of modular arithmetics entertainingly and playfully. This project doesn't pretend to be the ultimate introduction to modularity. However, it certainly is another doorway, especially for more visual people or ones less enthusiastic about numbers and letters.
Moreover, I didn't want to make this app just a fun learning tool. I also wanted it to be a creative tool powered by math. Like an artist's studio, I want Modulart Studio to feel like a space for imagination, unbounded by limits.
Before running the app, you may please set the destination as "My Mac (Designed for iPad)" and run the app on fullscreen for the best possible immersive experience.
I hope you enjoy it and until next year!