My First iOS App: Why, How and What's Next
At the end of last year I decided to start learning about Swift and Xcode, and finally finished my first iOS app, which was recently approved ๐
Why I decided to learn iOS development
As a kid I always liked technology and I dedicated myself for a long time to the design and development of websites. Those were some very good years, where I just coincided with the boom of websites monetization with AdSense and allowed me at 14-15 years old to start having an interesting source of income.
A few years later that wave passed, and I gradually moved away from that world. At the university I decided to study Economics and in the middle I ended up working as a data analyst in several companies.
Time passed and life gave me a new opportunity to work in the world of technology as an Associate Product Manager. My great interest in digital products and my early experience in the field really helped me to love this job. Within a few months I had been promoted to APM II and a couple of years later to Product Manager.
Working so close to development teams reawakened my curiosity about the subject. That led me to investigate what was needed to develop an app, where to start, and to compare the different alternatives.
I finally decided to focus on native development and opted for Swift since I had a MacBook and an iPhone and I felt more attracted.
How I started learning to develop iOS apps
The first thing I did was to watch a Swift course on YouTube of about 50 hours (I won't share the link as in retrospect the course is quite outdated). That gave me a good overview of the options available in Xcode, the basics of Swift and Storyboards, among other interesting things.
As I got more into the subject, I realized that the Storyboards interface was pretty outdated and that there are far more productive and robust tools available today.
That said, I started watching some videos about SwiftUI and I found it much easier and faster to work with.
However, the moment where I learned the most was by doing. After watching some videos and understanding more or less how everything worked, I decided to start developing some basic apps to put my little knowledge into practice.
That's where I really started to research on how to solve every problem that came my way. The web is absolutely full of sites with valuable resources about Swift, and with some simple Google searches I find all the answers to my questions.
Some sites (in addition to Stack Overflow and Chat-GPT) that have helped me the most so far are:
My first app: MemoPlay
MemoPlay is a pretty basic game I made for my niece to play. It is a simple memory game where the player has to find two same figures. I incorporated several designs so that besides being fun, it serves as a learning tool: jungle, ocean and farm animals, shapes, colors, letters, and numbers.
It has three levels of difficulty that affect the number of cards available on the screen, and in the settings section you can enable or disable sounds and vibrations.
Surely over time I will publish some of the things I learned while making this app, but among them, I highlight the navigation between screens, saving information in UserDefaults, working with sound playback, haptic feedback, localization of content to support multiple languages, things that perhaps are not so easily noticed when using an app.
Maybe in a couple of years I will look back and think about how many things I could have done better in this app. For now, I am very happy with the result, and I learned a lot of working on this app.
App Store Submission
The process was honestly not complicated for me. The only thing that surprised me a bit is the high annual cost of the Apple Developer membership. Even if you only upload free apps, you must have a paid membership, but I understand that it is the cost to pay for having a review process that ensures a certain level of quality in the App Store.
The app is available for iPhone and iPad, so prior to submission, I designed the corresponding images according to Apple's guideline. For the rest of the content associated with the app (subtitle, description, keywords, etc.) I asked my friend Chat-GPT for help.
After creating the app profile in App Store Connect, the compilation from Xcode was very easy, and finally the submission for review. I'll probably share more later on how to successfully upload an app to the App Store.
The first attempt resulted in rejection. The reason was that prior to being called MemoPlay, the app was called Memory for Kids, and apparently the word "memory" is a registered trademark in Germany and cannot be used.
On the second attempt, the app was also rejected. The problem was that I chose the "Made for Kids" option and the app had some options like "Rate in App Store" or access to go to the developer's site, which is not allowed in those cases. To solve this, I added a Parental Gate with questions that a young child cannot solve by himself.
Finally, the app was approved and since then it has had several organic downloads, which makes me very happy.
And now? What's next?
Now I'm working in my free time on a new app, which is much more complex and the target audience is wider. I'm not going to reveal many more details, but surely after it's finished I'll share it here.
I don't think in the short term I'll try to create any paid or revenue earning apps, but maybe in a few months I'll reconsider, at least to break even on the annual cost of the Apple Developer membership.
Far from considering myself as a dev, I'm happy to have made the decision to start learning Swift as a hobby and everything that involves the development of iOS apps. I say "start" because I know this is a very long road and I just took a few steps. For now, I'm a Product Manager that in his little free time plays at being a developer.
Thanks for reading me!