Ever wondered if the person next to you is responsible for an app that nearly everybody uses? Or how much actually goes into making an app that’s well-liked and useful? Is it possible for Singaporeans to create an app that’d rock the world?
With Apple’s WWDC 2022 just around the corner, we spoke to two app developers who started coding and making practical apps in their youth to learn about their passion, expectations, and desires for app development to see further traction in Singapore.
Vincent Neo is a Republic Polytechnic student and a two-time Apple Swift Student Challenge Winner (2020 and 2021) who’s only just 21 years old.
Vincent has five published apps on Apple’s App Store. His repertoire includes “Atmosphere”, an AI-powered, live cloud spotting tool for enthusiasts; “Environment”, a rain map specifically for Singapore weather powered by Government-sourced data; and “Sunlight”, which informs users of sun and moon alignment relative to Earth (highly useful for photographers, casual fishermen, and devout pilgrims with celestial-based routines).
In the other corner, we have Richard Qi, also 21, who’s pursuing a Bachelor’s degree in Computer Science at NUS, while also interning with Open Government Products.
Richard created the “Log” app, which helps job seekers keep track of their job-hunting journeys. He’s also behind the once-viral ARKit image tracking demonstration for AR in retail (using an iPhone’s box). Richard also contributes regularly to GitHub and has embarked on developing basic encryption introductory courses for Swift Playground users.
What inspired you to learn how to code and develop apps?
Vincent: It was the apps and games that I could download from the App Store when I first got my iPod touch back in the day, as well as the device itself, that inspired me.
When I eventually switched to a newer iPod that had a camera, a new dimension was unlocked. It was a device that really wowed me. It was so many things all together, but exists as a single, slim and sleek device, and the apps enabled it to be so awesome.
When I learnt that basically anyone could make apps for this platform, I knew I had to try it. That was also the start of my first failed encounter with coding, which was with the Objective C language.
Richard: I started coding during Circuit Breaker, and wanted to develop iOS/web apps since they are tools that can help me bring my ideas to life. I dabbled with it while doing National Service concurrently, and grew to like it a lot since it provided me with an avenue to express my creativity and problem-solving skills.
Do you think Singapore places enough emphasis on developing coding talent?
Vincent: I personally think that more can be done for those who want to start early.
Back in my time, our options were either specialised schools like SST, or, the computing subject that is available in some schools. I was a Normal (Academic) student in Secondary school, which, back then, also meant that the computing subject wasn’t available to me (as it was only for Express stream students). I would much appreciate having that option, if I was given the choice.
In my opinion, learning coding was challenging until after I completed my Secondary school education. It was only possible via a self-learning route like mine, or, probably, some external program that teaches coding. It would be much better to let those that have an interest to start early.
After all, I learned (how to code with) Swift during my secondary school days, and I believe it is very optimal to start learning coding at around that age.
Richard: From what I have seen, the annual hackathons like Hack&Roll (organised by NUS Hackers) and Hack for Public Good (by OpenGovProducts) are doing a very good job at inspiring the younger generation to participate and get into coding. But more resources can definitely be allocated to these hackathons, and perhaps a greater emphasis on having a creative/builder mindset in school.
Both of you have built iOS apps. What do you enjoy most about coding in Swift?
Vincent: For the most part, I find code written in Swift to be very readable – you could understand what the code does rather easily than some other languages. This is very helpful when embarking on large projects and working with others. I also like the fact that in Swift, the compiler ensures that you do necessary checks to ensure that values that can be optional, do really exist, before you use that value. This is helpful as the app can crash when the code written expects the value to be always there.
Richard: Swift has very powerful and easy to learn frameworks. Some of which I used were RealityKit, CryptoKit, and SwiftUI. There’re a lot of resources online to help with learning Swift, so in my opinion, is quite easy to pick up. That way I can focus more on my ideas, instead of the process of coding
What do you enjoy most about other coding languages that Swift should incorporate?
Richard: Web frameworks like VueJS and NestJS have excellent official documentation, with well-formatted guides and in-depth explanations for most of the available functions – although SwiftUI documentation is already pretty good, older frameworks like Core Data have huge amounts of capability with not so much written about them on the website. I would love to see better documentation on Swift to take advantage of!
In the same vein, what do you want to see at Apple's WWDC 2022?
Vincent: WidgetKit improvements – currently widgets can only refresh at fixed intervals. I hope to see changes that allow us to make widgets less static, and more interactable. I also wish to have more SwiftUI controls, and some modernisation of older APIs like Core Audio.
Hopefully, there’ll be new hardware and new features for the next major OS release as well!
Richard: More SwiftUI features to bridge the gaps with Core Data, and more frameworks relating to Augmented Reality, so I have more tools to play with!
What do you hope to achieve with your coding skillset 10 - 20 years from now?
Vincent: I hope to achieve a career in the area of making quality apps – apps that people can enjoy, apps that inspires others like how they inspired me, apps that change people’s lives for the better, basically. By then, I guess apps won’t run on devices the same way it does right now, but as long as there’s hardware, there will be software, no matter how different it would work.
Richard: I hope to make impactful products with the skills I have. I hope to also help mentor the younger generation of coders to put their skills to good use and make meaningful products.
What would you like to tell Singaporeans (both juniors and adults) who are just getting interested in learning how to code?
Vincent: Don’t be afraid to try. A lot of resources are available out there today on the Internet, and even for free. Don’t be afraid of failure as well – I didn’t succeed in learning coding on my first try. In fact, I gave up on it for a few years, until I eventually decided one day, that I should try again.
Also, trust me. Seeing something being created with the code you wrote, would give you a sense of accomplishment that would be worth all the effort. So press on!
Richard: There’s a lot to take in, the learning curve can be quite daunting. But I see it as a tool to help me express my ideas, so I think it helps to learn coding with a goal in mind — perhaps making your own applications or simply to better understand technical jargon like “end-to-end encryption”.
This article was first published in Hardware Zone.