The Other Things An iOS Developer Should Know (Besides Swift & iOS)

The Other Things An iOS Developer Should Know (Besides Swift & iOS)

Introduction

The world of iOS is ever-changing. Each year Apple introduces new devices with new or improved capabilities, along with new or improved frameworks, APIs, and tools to enable developers to utilize these features. And in recent years, Apple even introduced a brand new programming language: Swift. It's safe to say, you'll never stop learning as an iOS developer.

However, there are many more aspects to iOS app development than iOS app development. Inspired by this tweet by @EltonAOrtiz, I thought it would be helpful to categorize the complementary skills an iOS developer should become knowledgeable about or gain proficiency with, in addition to Swift and the iOS SDK.

Being a Master of None is OK

You should not regard the skills listed in this article as a must-have before you go looking for a job as an iOS developer. If that was the case, there would be no "competent" iOS developers, myself included. Rather, you could look at this as a guide for continuing education as you progress in your career.

Disclaimers

This article represents my best efforts to list the complementary skills I have identified are important over the last ten years as an iOS developer, and group them into meaningful categories. Some categories overlap others. And undoubtedly, I have forgotten something in version 1 of this article. So, stay tuned for updates!

I have also included a few skills that could be considered part of an iOS developer's core skillset. However, it is quite possible and all too common that these skills may be lacking in otherwise highly-competent iOS developers, so I have erred on the side of comprehensiveness.

The List

This list comprises skills you may consider learning about or gaining proficiency with, in addition to Swift and the iOS SDK.

Sections are presented in alphabetical order. Within each section, I've listed items in the order I would personally approach learning them.

Additional Languages

  • JSON
  • C
  • Objective-C
  • Unix shell scripting
  • Python
  • C++
  • JavaScript
  • HTML
  • CSS
  • YAML
  • XML
  • Markdown
  • Swift Intermediate Language (SIL)
  • LLVM IR
  • Assembly

Accessibility

AI & Machine Learning

Augmented / Virtual Reality

Beta Testing

  • TestFlight

Collaboration & Mentoring

  • Code reviews
  • Slack
  • Web API design and development
  • Kotlin
  • Android SDK

Databases & Query Languages

  • SQL: SQLite
  • NoSQL: Firebase, MongoDB, Realm, Azure, GraphQL

Dependency Management

  • CocoaPods
  • Swift Package Manager
  • Carthage
  • Git submodules

Design Patterns

  • Gang of Four

DevOps

  • Source control: Git, GitHub
  • Continuous Integration and Deployment

Environments

  • Unix and CLI
  • REPL
  • macOS

Graphic Design & User Experience (UX) Design

  • Apple Human Interface Guidelines - Make this an annual read.
  • Mobile user interaction
  • Sketch
  • Figma
  • PaintCode
  • PDF
  • Bitmap (raster) and vector images
  • Color theory

Knowledge Sharing

  • Giving lightning talks
  • Presenting at conferences and meetups

Marketing & Business

  • App Store
  • User acquisition and retention
  • Analytics
  • SEO

Mathematics

  • Algebra
  • Calculus
  • Big-O notation

Networking

  • TCP/IP and UDP

Physical Fitness & Mental Health

  • A healthy body and mind will do wonders for your success trajectory as an iOS developer, or in any other profession.

Project Management

  • Agile
  • Scrum
  • Kanban

Quality Assurance (QA)

  • Integration testing
  • Build acceptance testing, aka smoke testing
  • Regression testing

Security

  • Encryption
  • Penetration testing

Web Services

  • REST
  • (SOAP)

Writing & Diagramming

  • API documentation
  • Tutorials
  • UML diagrams
Glenn Cole

Software Developer at Moebius Solutions, Inc.

4 年

I’m intrigued by ML — and I started on an MS in AI decades ago before moving and dropping the pursuit — but thus far I think the only applications I’ve seen for ML are in image recognition. How do you see ML being applied in iOS or macOS apps?

Marlon R.

Passionate iOS Developer, Productivity Nerd, and Music Lover

4 年

Thanks for the great article! I will use this as a guide to further myself an iOS engineer. Much appreciated! ????

Wow! This is very very helpful. I will save this article and start researching more about these fields. I sincerely think that everyone should learn something every day, even though it is something small or not so significant, but, at the end of the day you are getting more and more knowledge and that can help you in the future. Thank you!

Avi Gray

Software Engineer at Starling Bank

4 年

I’m working on the algorithm and big o part just now but you’re right there are a lot of other areas it’s really helpful to be proficient in, even if we don’t particularly master them like continuous integration and yaml etc. ??

要查看或添加评论,请登录

Scott Gardner的更多文章

社区洞察

其他会员也浏览了