Filed under: iOS
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.
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:
wgetfor sending HTTP requests from the command line
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:
For security reasons, brew won’t put its version in
This is also a good hedge for if something like React Native takes off.
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.
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.
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.