📜 ⬆️ ⬇️

Sample test items for iOS developers

I perceive the test items as a good and adequate method of selecting people ( for opponents of this opinion there is a vote at the end of the post ), because the employer can evaluate specifically what the employee will do at his workplace. And therefore, I am often enthusiastically accepted for their implementation, despite the fact that they have to be done at night. In addition, the tasks are usually small and can be regarded as writing prototypes - and I also love to write prototypes. In general, the experience is positive, and a positive attitude is a great thing.



Here I would like to share examples of test tasks from different employers: small and large, foreign and domestic. Company names will not be listed. Each sample task will be followed by a link to the repository where my solution lies. With this code, you can do anything: use in projects, correct, send a pool of requests.

Maybe someone will be just wondering, someone is aware of what he needs to prepare for and what he needs to be able to do, and someone will understand that there is nothing terrible here and will decide to send a resume.
')

Task 1. Search GIF.


Attention: there is no API key in the code for giphy.com - you need to insert it yourself
github.com/PavelKatunin/GifSearcher
Create an application that knocks on request to the giphy.com API and pulls out gifs on request from
UITextField. Displays animated gifs in a UICollectionView.

No restrictions on the reuse of the code were announced, so RestKit was safely connected through cocoa pods, categories were taken for initializing the UIImage with Gif, and simple logic was written.

Screenshots


Task 2. Search for pictures.


github.com/PavelKatunin/GoogleImagesSearcher
It is noteworthy that the writing of the code needed to be demonstrated via Skype for about an hour, but you could finish it later. It was also forbidden to use third-party libraries - only NSURLConnection - only hardcore. It was necessary to use Api Google to retrieve the images on request and display them in the UITableView. So a base class was created for requests implementing NSOperation and a couple of specific query implementations.

Screenshots


Task 3. Search for the most common character in the ASCII sequence.


github.com/PavelKatunin/AsciiSymbolsCounter
We need to find the most frequent character in the ASCII string, and we are not limited in any way by memory.
All this needed to be parallelized into 2 threads.

Task 4. Small browser.


github.com/PavelKatunin/TinyBrowser
Write the simplest browser with the address bar, displaying the progress bar when loading and the ability to walk back and forth through the history, it is not forbidden to use WKWebView. In addition to this case, a search from the address bar and several tests were implemented.

Screenshots



There are some more test tasks in the work, which I am also going to put in open source if it is interesting to someone.

What on average.


It also happened that they asked to just write a controller with UITableView with dummy data, but at the same time show your screen. But usually the employer wants to make sure that you are able to interact with the server API, load something in the background and display on the UI (Often these are ubiquitous UITableView or UICollectionView, by the way, employers could think of something more cunning). Also important is the readability of the code and the architecture of the solution. Much broader, but more superficially other things are discussed in the interview itself. Everything in general is far from Rocket science, but be careful and try to leave at least one day to fix bugs, memory leaks and debug application performance - this is also very important, they want to see a small, but complete application. Negligence has let me down a couple of times - and this is also a good detector of what a person doesn’t really want in this company .

By the way, some tasks are laid out in public, it is also interesting to see goo.gl/PCqa0i
Would you like to show examples of tasks + solutions (?) - can be shared in the comments.

Thanks for attention.

Poll:

Source: https://habr.com/ru/post/254933/


All Articles