Habitat is my first published app on the iOS App Store. This page serves as background information on the creation of Habitat and what it took to get it published. For information about the app itself, I recommend checking the showcase site or the App Store page.

Why mobile app development?

I love hacking away at code and problem solving really. For my MSc I’ve been doing Cyber Security, and while I find it interesting and enjoyable, I get the most satisfaction out of building a product.

Learning SwiftUI

Learning SwiftUI was tricky, because this all happened during my MSc course; balancing my time was difficult. I started learning in October and it took up most of my free time. The resource that helped the most with learning SwiftUI was Paul Hudson’s 100 Days of SwiftUI. I ended up completing the course in 30 days and started on writing Habitat shortly after reaching the SwiftData section.

Getting through App Review

Sisyphus

Typical App Review process

It’s no small feat getting your app past the iron gates of App Review. For anyone unaware of Apple’s App Store publishing process, you have to upload builds of your app to be reviewed by a moderation team called App Review. They are notorious for rejecting builds with vague reasoning, and it can be luck of the draw whether your app gets through or not.

All in all, I didn’t have it too bad for publishing my version 1. I had 6 rejections in total between March 16th and March 25th 2024. The last of the rejections was the strangest of all, because they couldn’t tell me why my app got rejected, and it was only after reuploading the exact same build that my app got through.

What’s next?

As much as I love SwiftUI – I really do, it’s an elegant language and it lets me code at thinking speed – I want to branch out and learn something cross-platform. One major problem with SwiftUI that I’ve never quite gotten along with is the requirement for legacy Objective-C/UIKit code for anything remotely complex.

The framework that fits my needs best is probably Flutter. In my opinion, Flutter isn’t as elegant as SwiftUI wrt. state management and rapid UI prototyping. But it’s cross-platform and free of tech-debt. I’ve started Maximilian Schwarzmüller’s Flutter & Dart Udemy course and so far it’s going great.