Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×

Rocket

200...800 спеціалістів
Київ, Харків, Львів, Дніпро, Одеса, Амстердам (Нідерланди)

28 лютого 2021 21:00

Henrikh Koreniuzhenko, iOS Developer

Судите сами )):

Выполнил ТЗ, по мере свободного времени, в течении недели, предупредил сразу, одобрили, но попросили на гит заливать каждый шаг, ну ок думаю...

ТЗ:)))
Test Assignment
We would like to have you complete the following code test so we can evaluate your iOS skills. Please place your code in a public Github repository and commit each step of your process so we can review it.
Your assignment is to create a simple Reddit client that shows the top entries from www.reddit.com/top
To do this please follow these guidelines:
— Assume the latest platform and use Swift
— Please refrain from using AFNetworking, instead use NSURLSession
— Support landscape
— Use storyboards
The app should be able to show data from each entry such as:
— Title (at its full length, so take this into account when sizing your cells)
— Author — Entry date, following a format like "X hours ago"​
— A thumbnail for those who have a picture
— Number of comments
In addition, for those having a picture (besides the thumbnail), please allow the user to tap on the thumbnail to be sent to the full sized picture. You don’t have to implement the IMGUR API, so just opening the URL would be OK.
Also include:
— Pagination and support for refresh
— App state-preservation/restoration
— Saving pictures in the picture gallery
Note:
Please refrain from using external libraries (by way of using CocoaPods and similar), as we want to see your coding skills as much as possible :)
Some resources:
— Reddit top feed: www.reddit.com/top.json
— Reddit API (accessible via Chrome): www.reddit.com/dev/api

Реализация:
github.com/...​enrikh91/RaketaSampleCode

Первый ответ рекрута:
Здравствуйте, Генрих) Вас компания Ракета пригласит на следующий этап -техническое интервью. Слоты будут завтра)
Как вышлют, я вам отправлю варианты)

Второй ответ рекрута, спустя пару дней:
Здравствуйте, Генрих) Расстроилась вообщем((
Касаемо тестового есть фидбек:

+ Хорошо названы сущности/переменные/методы
+ Использование инструмента Decodable
+ Отсутствуют race conditions
+ Self Sizing ячейки

Но к сожалению есть и:
— Отсутствие отмены запросов в сетевом слое
— Отсутствие полноценного кеширования изображений.
— UIKit элементы в протоколе View слоя, что нарушает инкапсуляцию и в целом концепцию паттерна VIPER.
— VIPER для данной задачи выглядит как усложнение. Особенно для модуля ImageViewer
— App state restoration не реализовано.

К сожалению, не смогут пригласить на следующий этап. Но давайте оставаться на связи, как появятся ещё варианты — я вам сообщу. Согласны?)

Ваше мнение, справедливо?

— Отсутствие отмены запросов в сетевом слое
>>> ну для ТЗ думаю это не важно, так как берем только положительные кейсы 😂🤪😱

— Отсутствие полноценного кеширования изображений.
>>> в условии вообще не было слова за кеширование 😂😂, так от себя добавил кеш полис))

— UIKit элементы в протоколе View слоя, что нарушает инкапсуляцию и в целом концепцию паттерна VIPER.
>>> да, но... только гет, и только для екстеншена этого протокола

— VIPER для данной задачи выглядит как усложнение. Особенно для модуля ImageViewer
>>> хотел на свифтЮА написать, но увы в условиях свифт был))))

— App state restoration не реализовано.
>>> ну забыл ))) виноват)))
Нужно было сохранить ИД пагинации последнего ответа и индексРаз последней просмотренной ячейки)))

Підтримали:  Al Mo

LinkedIn

2 коментарі

Підписатись на коментаріВідписатись від коментарів

Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.

Генрих, спасибо за Вашу обратную связь!

Тестовое задание составлено таким образом, чтобы кандидат смог показать свой подход, свои навыки.

Мы ценим время свое и специалистов, которых приглашаем на собеседование, и когда получили оценку выполненного тестового задания приняли решение не тратить Ваше и наше время. Считаем это справедливым подходом.

Желаем найти интересный проект!

А как же пункты не указанные в ТЗ?
К примеру этот:
...
— A thumbnail for those who have a picture
In addition, for those having a picture (besides the thumbnail), please allow the user to tap on the thumbnail to be sent to the full sized picture. You don’t have to implement the IMGUR API, so just opening the URL would be OK.
Also include:
...
— Saving pictures in the picture gallery

— Отсутствие полноценного кеширования изображений.
>>> в условии вообще не было слова за кеширование 😂😂

— Полноэкранное открытие: реализовано;
— сохранение в галерею: реализовано.