The Three Web Development Technologies Every iOS Developer Should Know to be Successful

by Lou Franco

I’ve been a programmer for so long that I started my career before web development was a thing. Then I went through a decade of web development before moving onto mobile development.

Right now, I am 100% an iOS developer, but I still find that I need to dip into my web knowledge to even get that done some days.

If you are just starting your career and started with iOS and never learned anything about the web, it doesn’t hurt to know something about other platforms.

These are the top three web technologies you should have some familiarity with, even if you are in Xcode 100% of the time making a native app.

1. HTTP Protocol

Even very simple apps talk to backends and the most common ways use HTTP, whether it’s REST, Command-Query, GraphQL, etc. Even if you use a Swift client library to abstract the HTTP code, it’s pretty common that you’ll need to debug HTTP.

Make sure you know:

  1. curl or wget for sending HTTP requests from the command line
  2. Charles Proxy or something similar for HTTP debugging

And don’t forget HTTPS. You should know how to use tools like openssl to diagnose issues. For example, to make sure a web service supports TLS 1.2 (required by App Transport Security), you can do this:

openssl s_client -connect example.com:443 -tls1_2

NOTE: The macOS built-in openssl doesn’t support this option, so use brew to install the latest openssl and call it from brew’s folders with:

/usr/local//Cellar/openssl/1.0.2l/bin/openssl

For security reasons, brew won’t put its version in /usr/local/bin.

2. JavaScript

I spend nearly all of my time in Xcode writing Objective-C and Swift, but I still need to read and write JavaScript sometimes. Here are a few tasks I did within the last year:

  1. To simulate specific HTTP errors, I wrote a hijacking proxy in NodeJS that altered the traffic back from my real backend to force edge-case errors to happen more frequently.
  2. To make the markdown in our iOS client match our web client exactly, I ported their JavaScript to Swift.

Also, when I was consulting, a common project for me was to add native features to hybrid apps. Even though most of the code was native, I needed some JavaScript to communicate with the web view layer.

This is also a good hedge for if something like React Native takes off.

3. Ruby (but not Rails)

Maybe it’s a stretch to call ruby a web technology, but I think it would not be used at all if not for rails and its popularity in making web apps.

And, since a lot of iOS developers may have learned it in that context, and iOS has no good scripting story, they used it to create some significant iOS tooling (e.g. fastlane and CocoaPods).

Even if you never read the code in these tools, you need to know ruby even to use them because their config files are often ruby DSLs.

And what you don’t need to know

If you want to make native iOS apps, it’s ok to not know how to make modern web-apps (beyond the basics). Frankly, it would be better to just learn more iOS.

But, the list above is a good place to start if you are web-curious as those skills are also useful in iOS development.

If you do want to be more full-stack, then these three technologies are also the main things you would need to know for backend development anyway.

Never miss a post

Get more tips like this in your inbox