I’m Sticking with Native iOS Development

Lately, every time I see a job opening for iOS development it’s either React Native, Flutter, or some type of cross-platform stack.

I admit that these technologies make sense in many cases. Learning React Native has crossed my mind a few times. I’m choosing to stick with native development using Swift and SwiftUI.

Here’s why…

Swift is the Programming Language that I Know the Most

I often hear people debating what’s the best programming language. My answer is the one that you know the best when starting a new a project.

I have a lot of experience with Ruby and Ruby on Rails, but I avoid mobile apps that require backends for reasons that I’ll discuss later.

I think it’s OK to experiment with new languages, but regardless of how senior you are, your first app in any language will suck. You don’t know the best practices yet. You don’t know the standard libraries well enough. In fact, you will write your app using another language as a reference point. It will get the job done, but you’ll be ashamed of yourself in the following months.

Currently, Swift is the programming language that I know the most. I’ve been coding in Swift since it came out in 2014. In the past 10 years, I’ve used it to publish more than 10 apps on the App Store. I only trust Swift when I have to put an app in the hands of users. It’s never failed me yet!

Swift Makes Developing Fast

SwiftUI is the shining new toy for native iOS development. It’s hard to believe that’s been around for nearly 5 years now. I see many people complaining online that’s not ready for production yet. The main arguments being that’s hard to customize, or it doesn’t scale very well. I don’t disagree with those statements. But SwiftUI lets me finish a polished MVP for an app in a fraction of the time compared to UIKit.

UIKit is powerful. You can code pixel perfect UIs, but you’ll write more code. It will take a lot longer. That is not acceptable for me as a solo developer.

In fact, if SwiftUI wasn’t available, I would have probably considered React Native or Flutter for app development. SwiftUI made me change my mind.

Is the framework perfect? No.

Does it have many limitations? Yes.

SwiftUI requires a different mindset. In UIKit, you customize your app to match a design or wireframe. In SwiftUI, you should start by adjusting your design to take advantage of what’s given to you by the framework. By using vanilla controls, you can build a working MVP in a fraction of the time.

In fact, for my personal projects, I stopped using Figma or Sketch to create wireframes. In my current process, I build a few prototypes or proof of concepts in SwiftUI to get an idea of what’s possible and start from there.

Making a Living from the App Store

I’m currently aiming to become a successful indie app developer. As a solo developer, focusing on a single platform makes sense.

There are personal and technical reasons for my choice.

Here’s my personal reason…

I’m at a point where I have to make choices that will decide the second half of my life.

I’m choosing to prioritize having a simple and flexible lifestyle: work on things that are important to me, or being able to go for a 4-hour bike ride on a weekday morning.

To reach that goal, I’m learning to do more with less. I’m deciding to prioritize my quality of life over money. Without going into much detail, I don’t pay rent or have a mortgage. That means that my monthly expenses are low, and that gives me options.

Now the technical reason…

Focusing on a single platform, in this case Swift and SwiftUI, keeps things simple. I don’t need to implement a backend to persist data between multiple platforms. I can use Core Data and CloudKit for that. For my personal projects, I avoid implementing a backend like the plague.

To me, a backend is overhead! It’s extra work that I don’t enjoy as much. I’d rather spend my time working on the mobile app.

I choose to go all in with Apple’s frameworks and technologies. It keeps things simple, but more importantly, it increases the odds of getting featured on the App Store.

Is Apple’s walled garden perfect? No. But as an indie developer, it makes my life easier. I can focus on the things that are important and deliver value to my users.

Conclusion

I’m aware that by sticking with native iOS development, I may be leaving a lot of money and opportunities on the table. I’m selecting the path that I enjoy the most and prioritizing a flexible lifestyle.

Previous
Previous

The Apple Watch Rings Don’t Work for Endurance Athletes

Next
Next

Apollo Weather for Apple Watch Released