What is it like developing for iOS?
If you’re a web developer thinking about making the jump into mobile app development, you might be wondering: What is it actually like to develop for iOS?
I developed for iOS for a couple of years after starting my career as a web developer. At first, I thought, “iOS can’t be that difficult.” I watched some tutorials, saw people dragging and dropping elements inside Xcode (the IDE used to build Apple apps), and figured my background in jQuery would carry me through.
I was wrong. I knew it would be a challenge, but I was not prepared for the learning curve. Building an iOS app requires a completely different mindset than building for the web.
If you are considering the transition, here are the realities of iOS development, the challenges you’ll face, and the resources that can help you get there.
The Steep Learning Curve (Embrace Feeling Like a “Noob”)
When you switch from web to mobile development, you are bombarded with new concepts. It’s a lot to hold in your head at once.
Almost everything in iOS is an object, so you need to be a solid Object-Oriented Programmer (OOP) to really feel at home. If you’re transitioning from web development, be prepared to feel like a “noob” all over again.
Nobody likes feeling that way. When you’ve become accomplished in one stack, going back to feeling like a baby developer is uncomfortable. The key is to persevere. Know that it is going to be frustrating at first, but it will eventually click.
iOS Consistency vs. Web Development Chaos
With web development, you need a broad breadth of knowledge across many different frameworks. iOS development, however, is highly focused.
To illustrate this, I love a point made in a blog post by Lighthouse Labs. The web development world is highly fragmented—Ember, Node, Angular, Rails, React, and Vue are all constantly vying for developer adoption. This can cause friction when companies have to choose sides.
iOS, on the other hand, is much more consistent. iOS development is just iOS development. Even the massive shift from Objective-C to Swift was really just the latter building upon the principles of the former.
Because of this consistency, I felt very “looked after” in the iOS ecosystem. You don’t have to worry about the entire industry suddenly moving in a completely different direction overnight.
The Challenge of Swift Tutorials
While the Apple ecosystem is consistent, the Swift programming language is still evolving. (For example, we recently saw the jump to Swift 4).
What does this mean for beginners? It means it can be incredibly challenging to find up-to-date tutorials. If an app has complex functionality, older tutorials might contain breaking changes. You’ll often find that code from a tutorial created just a year ago won’t compile on the newest version of Swift.
Compare this to Android development. Java has been around for a very long time. The cream has risen to the top, making it much easier to find stable, high-quality learning materials.
Do You Need a Degree? (And How is the Pay?)
No, you do not need a degree to develop for iOS.
There are plenty of self-taught and bootcamp-graduated iOS developers out there. While many computer science graduates do move into mobile development, traditional education isn’t a gatekeeper. Stanford University even offers their iOS development course for free online!
As for the job market, iOS developers currently tend to get paid a little bit more than web developers. This comes down to simple supply and demand: there is currently a short supply of highly talented, native iOS developers, making it a very lucrative field to enter.
The Rise of React Native and Hybrid Development
Even though native iOS development is exciting (especially with the Apple Watch and Apple TV ecosystems), many companies are shifting toward hybrid approaches.
Frameworks like React Native allow you to write code in JavaScript and React, which then compiles down into native iOS and Android code. I recently listened to a podcast discussing Wix—a billion-dollar company—and they chose to use React Native rather than building completely separate native iOS and Android apps.
If you talk to purist iOS developers, they often don’t consider hybrid apps to be “truly native” and might look at them as second-class citizens. However, the industry is undeniably adopting this technology.
Personally, while I enjoyed the challenge of native iOS, I realized I had a massive toolkit of web development skills that I simply wasn’t leveraging. Because of that, I’ve pivoted to learning React. My goal now is to release a React Native app. I feel much more at home utilizing my web background to build mobile applications.
Top 3 Resources for Learning iOS Development
If you are ready to tackle native iOS development, here are the three resources I heavily relied on when building my first app:
- Devslopes (by Mark Price)
Mark is a great entrepreneur and iOS developer who creates incredible, engaging content. He now has a whole team of developers working with him. It’s an excellent, modern place to start. - RayWenderlich.com
This is arguably the gold standard for iOS tutorials. They have a large team contributing high-quality text tutorials, video courses, and PDFs. If you need to learn a specific, complex iOS concept, Ray Wenderlich probably has a tutorial for it. - Team Treehouse (Techdegrees)
Treehouse was instrumental in helping me understand basic Swift syntax. They have a massive user base and offer affordable monthly tracks for beginner and intermediate iOS development. They also offer a more intense “Techdegree” program that guides you through 12 real-world projects (like using a NASA API to build an app) to help you build a professional portfolio.