It’s never been easier to develop a mobile app. There are more people developing for mobile platforms than ever.

Recently Donn Felker wrote an article about the decline of mobile development.

I know Donn1 and respect his opinion. I’ve also lived the headaches he mentions. But I disagree with the conclusions. I’m sticking with mobile development. And frequently advise anyone with the mobile skillset to also.

Let’s talk about some of the points from the article.

People are leaving mobile development.

I’m not aware of any evidence for this. The number of mobile developers and app downloads continues to increase. Competition for mobile jobs is higher than it’s ever been. This was true even before the layoff trend.

To be fair, we’re near the saturation point. Mobile isn’t growing like past years. But we’re far from the point of decline.

It’s Hard

Digging in further, most of the critiques seem to be with large scale development versus the mobile platforms themselves. Mobile development has never been easier.

SwiftUI, Jetpack Compose, Flutter and React Native all allow you to crank out functionality at a rapid pace. It has never been easier to release a mobile app.

SwiftUI is much easier compared the outlets, delegates, and selectors I had to learn to develop for iOS in the early 2010’s.

True, the things that get you out of the gate don’t continue to scale as things become more complex. But that is true is no matter if you’re developing with mobile or web technologies like Rails.

Let’s talk about large apps…

It’s Complex

True. Development for large mobile apps brings a whole new set of challenges. Many devs long to leave their massive app teams for the ability to iterate quickly with small scale development. But web has the same headaches. Most professionally developed web apps already include the following

  • CSS Frameworks
  • Front End libraries (e.g. React, Angular)
  • State Management (e.g. Flux)
  • Micro Frontends

All built on a complex pile of Javascript dependencies.

Developing a large app is hard. On both mobile or web.

Do we need all of this complexity, no.

Would it easier if we developed large apps in the same way we developed smaller apps 10 years ago, also no.

“What it comes down to is that most software engineers love to over complicate things”

Definitely true. And regrettably some of these overcomplicated things make it to standard industry practices.

The ability to see simple solutions comes after years of over complicating things. I went through the over complicating phase, like Donn and every other top dev I know.

In hindsight, could we have found a better path? Yes!

Walled garden problems

Sure. I’m not going to dispute anything here.

Is native mobile still a viable career path

Yes. I still advise people to get into native mobile development as a solid career path. Sure, mobile is not the cool kid on the block anymore. The hype has faded. But it’s still one of the hardest skillsets to hire for. Mobile developers are still in demand. And the number of companies that are building large scale mobile apps is increasing.

Native mobile development skills will translate into the future. New devices like Watches and AR/VR headsets are getting smaller. Mobile development sets you up well for this continuing trend.

Is mobile all sunshine and rainbows?

No. Many companies are reducing native mobile spend for the alleged cost savings of web or cross platform development. There are other downsides too.

Small market

Mobile is a niche in software development. This means there are less jobs available compared to web frameworks like React etc. Mobile is usually a small portion of a companies development budget and mindset.

Limited scope

While mobile development is hard, the truly hard problems in large scale software are backend. If you want to show impact in a way your bosses can see, backend development provides more opportunity. Example: we saved $2M in cloud costs by refactoring this workflow. That type of impact is harder to quantify with mobile.

Conclusion

Like I said, I respect Donn and his opinion.

We’re coming from different angles. I started my career writing embedded and Windows apps. I was never a web native developer. Similarly, he went into Android while I went in to iOS. Google tends to promote new dev patterns, while Apple lets its devs create those problems on their own.

For those who want to leave mobile development, I wish you the best. Every skill you learn makes you a better developer. I encourage everyone to try new things and cross pollination is good for everyone.

But I hope you come back. There are more large mobile apps than ever before. We need more devs who know how to keep things simple.


  1. Donn and I have hung out in multiple cities. But, oddly, not in the Twin Cities where we both lived and did .NET development in the late 2010’s.