Screen iOS developer skills

2月 7, 2019
iOS:ソフトウェアエンジニアの面接の質問

モバイルアプリ開発者は、特にiOS用のアプリを構築しようとしている場合は、手に入れるのが難しいです。それは、外出して、あなたのモバイルアプリを構築するために最高のiOS開発者を見つけるためにあなた次第です。しかし、それは困難な作業になることがあります。モバイル開発者が必要とするiOS開発者のスキルは、あなたが知っている一般的なJava開発者と同じではありません。

This causes a problem for most technical recruiters. Most of them just don’t have the experience to really be able to tell if the iOS developer they’re recruiting has the right iOS developer skills or not. I mean you don’t want to end up with a large group of candidates you need to interview. That would lead to hours and hours of technical interviews that your IT team just simply don’t have time for right now.

What do I need to know to screen iOS developer skills?

Luckily for you, we’ve prepared all the information you need to effectively screen iOS developer skills. By the end of the guide, you should be able to walk the walk and talk the talk when it comes to interviewing and screening iOS developers. You’ll be able to ask the right questions, understand the lingo, and decipher the CV of a great iOS Developer. Most importantly, you’ll find out what kinds of tests you can use to screen your iOS candidates so that you only invite the best ones to interviews. But before all that, it is important to learn the basics.

1. What is iOS?

iOS is the operating system that Apple developed to power its ubiquitous iPhone. Not content to only dominate the phone market, Apple has used its operating system to power a number of other devices including the iPad, Apple watch, and Apple TV. So if you hire an iOS developer, will they be coding in iOS? Well not exactly.

When you talk about an iOS Developer, you’re actually talking about a developer who uses one or both of the languages which are proprietary to iOS. Starting in 2008, Apple released its own proprietary programming language, Objective-C to be used for the iOS. That was joined four years ago by Swift. While these are the only two languages available for iOS, you can also use these languages to develop software for macOS as well. But even if they can be used for both operating systems, they are a bit different in some key ways.

  • Objective-C is reflective, class-based, and object-oriented
  • Swift is multi-paradigm, protocol-oriented, object-oriented, functional, imperative, and block structured

Swift borrowed its general language ideas heavily from Objective-C along with JavaScript, Ruby, and Python. It is also much more convenient than Objective-C, mostly because it’s type safe. This has meant that it’s become easier to start learning iOS programming and improve the safety and stability of applications.

What you’ll find is that while there are a number of legacy systems which use Objective-C, Swift has mostly taken over as the programming language of choice for iOS. The learning curve for writing safe, bug-free code is a bit steeper with Swift that it was for Objective-C. That said, once developers master Swift, the practice of writing safe, bug-free code is actually easier than it was with Objective-C. Swift uses the same runtime environment and SDK as Objective-C. This means that it is fully backward compatible with the entire iOS tech stack as well as new Swift only tools.

2. What is important for a recruiter to know about iOS

You’ll find that the iOS environment changes on regular basis. There’s usually a major update once a year which informs the languages that are used as well as the direction of development. They are usually announced at WWDC or the World Wide Developers Conference. This is the biggest event in the worlds for iOS developers with all new iOS technologies announced in the keynote. Any recruiter who is looking for iOS developers should take note of what is announced here to stay atop of the latest iOS technologies.

The two most important libraries that all iOS developers must know are UIKit and Foundation. An iOS developer simply can’t build any apps without these so it is mandatory that the developer can use these tools. In addition, to the Apple-supported tools, there are a huge number of open source libraries and frameworks that iOS developers can draw on to build their software.

3. How to verify iOS developer skills in the screening phase

3.1. Technical screening of iOS developer skills based on a CV

Probably the most valuable thing an iOS developer’s CV can tell you about is the types of projects that the candidate engages in. These can include essential functions like Bluetooth, local databases, and working with location services. Obviously, a huge plus would be if they’ve developed an app. Any app can be checked by going to the iOS app store.

Building apps isn’t the only useful experience to look for on your candidate’s CV. Experience with other languages, especially C++ is great to see. It is also good to see that the candidate has worked with a specific platform such as Apple Watch or Apple TV. Because of the nature of the platform, you want to see knowledge of unit testing and the App Store submission process. Finally, you want to see experience with the continuous-integration setup.

While it’s pretty straightforward to screen a CV, sometimes the vocabulary a recruiter needs to understand what’s on an iOS developer’s CV can be confusing. To help you out, we’ve come up with a glossary that you can use to understand the most important iOS developer skills.

3.2 iOS developer skills glossary for technical recruiters

言語 Swift、Objective-C
一般的な GCD, Operational Queue, Push Notifications, Awareness in code signing,
データベース Sqlite, CoreData, Realm
ユーアイ UIKit, Core Animation, Autolayout, Size Classes, SnapKit
Specific frameworks (all work in both Objective-C and Swift) Core Location, MapKit, AVFoundation, StoreKit, Extensions, AddressBook, EventKit, CAllKit, SiriKit, Core Bluetooth

3.3 More information about iOS that would be useful for a recruiter to know

New features have been added to each new version of iOS. And as features are added, new frameworks are developed to interact with them (SiriKit, CallKit, WatchKit, and MapKit).

Beyond that, the different versions of the operating system are basically the same with only the addition of new extensions.

The most common iOS technology names that are used interchangeably

CoreData and SQLite can be used interchangeably

How close respective versions of iOS technologies are to each other:

All of the versions of Swift that are available are similar to each other. Of course, the language has gone through multiple iterations from 1.0 to 4.2. And each of these has introduced their own specific changes. However, if someone has experience with three they should have no problems using the latest version.

4. iOS developer skills: interview questions

The interview is an important time to get to know the kinds of problems your candidate has faced and their approach to solving problems. It can’t replace a tech screen but it can inform your decision.

4.1 Platform experience questions for an iOS developer

Q1: Pick some technologies from the candidate’s CV and ask the candidate to explain what they are and how they are used.

Q1を聞くべき理由 Just to check their awareness of the technologies they mentioned.

Q2: Ask the candidate to describe the most interesting project they have taken part in and what their role in the project was.

Q2を聞くべき理由 To check how complex and varied the projects have been that the developer has experienced and what their role was (developer, lead developer, architect).

4.2 An iOS developer’s skills: knowledge and opinions

Q3: Ask the candidate to compare Swift and Objective-C.

Q3を聞くべき理由 It gives an understanding of how experienced the developer is, and whether they have worked with Objective-C or not. In most cases, knowing Swift isn’t enough. Even at the junior level, an iOS candidate needs to be able to understand and use both Objective-C and Swift.

Q4: Which iOS technologies are in wide use now, and which may become popular in the future?

Q4を聞くべき理由。 It tells you if the candidate has the ability to analyze and predict trends the IT market and industry, based on iOS developer skills.

Q5: How can you avoid memory leaks?

Q5を聞くべき理由 You will see if the candidate is conscious of potential problems while using strong/weak references. Keep in mind that blocks and closures can keep a strong link to an object.

4.3 Behavioral questions for an iOS developer

Q6: Have you had experience tutoring and mentoring someone in Swift?

Q6を聞くべき理由 Check if the developer is able to do be a good mentor for newcomers.

Q7: Ask which of the candidate’s solutions and projects they are most proud of?

Q7を聞くべき理由。 This will help you check the complexity level of tasks in previous projects

5. Technical screening of iOS skills with an online coding test

CV screens and interviews can be helpful to hire iOS developer but they can’t actually tell you whether your candidate has the right iOS skills. What you really need them to do is some actual software development. This can be a problem if done the wrong way because candidates have a limited amount of time and patience to do a coding project. An online coding test can be a good solution. But how do you know which one to choose? The right one should have a few key features.

  1. It involves the types of tasks that the candidate will actually be doing once they are hired (and real iOS developer skills they’ll need to do so)
  2. It should cover both the technology and tech stack they’ll be working in
  3. It should be as close to the natural development process as possible –  This means:
    1. The candidate should have access to their own IDE
    2. They should be able to use all of the resources that they normally would at work including libraries, frameworks, Stack Overflow, and even Google
  4. It should test coding skills but also business logic
  5. It should illuminate the kind of coding decisions that the candidate makes
  6. It should be easy to take from anywhere to avoid unnecessarily hassling the candidate

Unfortunately, most online coding tests fall short of these requirements. Algorithm tests can tell you if the candidate can code but they can’t tell you how well the candidate knows the environment, the decisions they make, and the business logic they use. In essence, they don’t do iOS developer skills justice. They are also a pretty unnatural way of writing code. The result is they turn off a lot of developers who don’t feel that they can accurately represent their skills this way. These developers risk dropping out of your recruitment pipeline.

The work sample tests on DevSkiller solve these problems. On DevSkiller, your iOS developers will be asked to build a real feature or small application for iOS. The tests can be taken from anywhere in the world and represent a natural programming environment. You can check out the various iOS tests in both Objective-C and Swift from our コーディングテストカタログ.

6. DevSkiller ready-to-use online iOS developer skills assessment

スウィフト
ミドル
テストされたスキル
持続時間
38 分以内
評価
自動
テストの概要

選択問題

知識評価 スウィフト, アイオーエス

プログラミングタスク - レベル。中程度

iOS|Swift|メモ帳アプリ - 提供されているNotesServiceを使ってメモを保存したり読んだりするシンプルなメモアプリです。

スウィフト
シニア
テストされたスキル
持続時間
77 分以内
評価
自動
テストの概要

選択問題

知識評価 スウィフト, アイオーエス

プログラミングタスク - レベル: ハード

iOS|Swift|NSA Cipher Tool - 3つの暗号パズルを解いてNSAのプログラマーとしての夢のポジションを取る。

スウィフト
ジュニア
テストされたスキル
持続時間
45 分以内
評価
自動
テストの概要

選択問題

知識評価 スウィフト, アイオーエス

プログラミングタスク - レベル。簡単

iOS|Swift|エニグマアプリ - テキストを暗号化して解読するアプリを作ろう。

スウィフト
ミドル
テストされたスキル
持続時間
48 分以内
評価
マニュアル
テストの概要

選択問題

知識評価 スウィフト, アイオーエス

コードギャップ

知識評価 スウィフト, ユニコード, アイオーエス

コードレビュータスク - レベル。中程度

iOS|Swift|BookDataAnalyst - このコードのコードレビューを行ってください。品質とベストプラクティスへの準拠に注意を払ってください。

スウィフト
ミドル
テストされたスキル
持続時間
62 分以内
評価
自動
テストの概要

選択問題

知識評価 スウィフト, アイオーエス

プログラミングタスク - レベル。中程度

iOS|Swift|エニグマアプリ - テキストを暗号化して復号化するアプリを作ろう。

スウィフト
ミドル
テストされたスキル
持続時間
126 分以内
評価
自動
テストの概要

選択問題

知識評価 アイオーエス, スウィフト

プログラミングタスク - レベル。中程度

iOS|Swift|ブックキーパーアプリ - 保存や汎用アイテムの取得などのコアデータスタックを初期化し、足りないメソッドを埋めてUI機能を修正することで追加機能を実装します。

スウィフト
シニア
テストされたスキル
持続時間
165 分以内
評価
自動
テストの概要

選択問題

知識評価 スウィフト, アイオーエス

プログラミングタスク - レベル: ハード

iOS|Swift|ブックキーパーアプリ - バックグラウンドスレッドでの保存とメインスレッドでの一般的なアイテムの取得を含む、並行して動作するようにコアデータスタックを初期化します。最後に、テストに合格するためには、textFieldの入力を適切に制限する必要があります。

スウィフト
ジュニア
テストされたスキル
持続時間
55 分以内
評価
自動
テストの概要

選択問題

知識評価 アイオーエス, スウィフト

プログラミングタスク - レベル。簡単

IOS|Swift|Weather App - ウェザーサービスのバックエンドから受信した気象データを解析するアプリを構築します。候補者は、提供されたJSONファイルを読み込んでデータモデルを作成し、それを解析して不足している関数を埋めて、モデルから必要な気象条件を取得する必要があります。

目的別C
ジュニア
テストされたスキル
持続時間
54 分以内
評価
自動
テストの概要

選択問題

知識評価 アイオーエス

プログラミングタスク - レベル。簡単

iOS | Objective-C | Weather App - ウェザーサービスのバックエンドから受信した天気データを分析するアプリを構築します。

スウィフト
ミドル
テストされたスキル
持続時間
80 分以内
評価
自動
テストの概要

選択問題

知識評価 アイオーエス, スウィフト

プログラミングタスク - レベル。中程度

iOS|Swift|CoffeHouse Analyst App - 不足している機能を埋めて、管理のために与えられたデータを分析する機能を実装します。

シェアポスト

メルマガよりも

インボックスにある有益な情報を受信して、技術者採用の詳細を確認してください。

シームレスにコーディングスキルを検証&開発

DevSkillerの製品をご覧ください。

セキュリティ認証とコンプライアンス。お客様のデータの安全性を確認します。