MVVM + Coordinator, skeleton, Alerts, NVActivityIndicatorView - custom spinner, search, filter, sort, details screen
Реализовал согласно макету: https://www.figma.com/design/GRRKONipVClULsfdCAuVs1/KODE-Trainee-DEV-Весна%6024?node-id=30-20141&node-type=symbol&t=erS9nBON07OPLYUy-0
Ниже изложено решение задачи: "Оценить время на выполнени каждой задачи, а в скобках (реальное кол-во времени, которое ушло)"
- написать план - 2ч (2ч 10мин)
- создать РЕПО, создать gitignore, ветки, залить README.md - 0.5 (0.5)
- сделать основу MVVM + C - 2 (2)
- Написать Mapper - 2 (1)
- Написать NetworkService - 2 (0.5)
- Создать модель - 2 (0.7)
- Расширение к Date - 0.5 (0.5)
- сверстать экран ЛЮДИ:
- изучить как делать segment control (как переключать его, чтобы была полоска внизу) или иной элемент интерфейса - 2 (2.5)
- сверстать экран ЛЮДИ с таблицей, полем поиска, вставить иконки: лупу и фильтр, segment control - 2 (2)
- Создать ячейку ПЕРСОНА - 2 (2))
- Создать ячейку СКЕЛЕТОН - 2 (2)
- изучить как сделать пулл-то-рефреш и добавить на экран ЛЮДИ активити индикатор - 2 (1)
- Создать вью КРИТИЧЕСКАЯ ОШИБКА и добавить ее на экран ЛЮДИ - 1 (1)
- Написать код для показа скелетона - 2 (1)
- Код для первой загрузки данных(посредством UD), чтобы показать скелетон - 2 (1)
- создать enum States и наполнить его возможными состояниями - 2 (1)
- Разобраться в API - 1 (0.5)
- Написать Storage, используя FM - 2 (1)
- Написать Endpoint file - 1 (0.5)
- pull-to-refresh перезагружает список людей. Если в процессе обновления произошла ошибка, необходимо ее игнорировать. Если данные загрузились успешно, необходимо обновить список на главном экране. - 2 (0.5)
- При этом параметры поиска и сортировки, если они были выставлены ранее, должны учитываться и не должны быть сброшены - продумать и запоминать состояние состояние поиска, состояние сортировки - 2 (2)
- Имплементировать запомненные состояния - 2 (1)
- Изучить как сделать фильтрацию - 2 (2)
- Связать нажатие на bookMarkBtn, открывать bottom sheet 2.0.1 - Фильтр - 2 (3)
- Реализовать сортировку по алфавиту (выбрал, скрывается, скелетон, показываем) - 2 (1))
- Изучить как делают разбиение по блокам (год) в таблице (хедеры?) и сделать для фильтрации по ДР - 2 (3.5)
- Реализовать появление даты рождения в определенном формате, если выбрали сортировку по ДР - 2 (2)
- Изучить как делают ПОИСК - 2 (2)
- Когда пользователь вводит текст в поле поиска, необходимо локально фильтровать список и отображать только работников, соответствующих параметрам поиска. Поиск может осуществляться по имени, фамилии или никнейму, состоящему из двух символов - 2 (2)
- "...вместо статичных заглушек тоже сделать скелетоны, а заглушку показывать только если загрузить изображение не удалось" - 2 (1)
- В случае отсутствия результатов поиска необходимо отобразить информацию о том, что ничего не было найдено – состояние 2.0.2Г. - вью с лейблом - 1 (1)
- Экран ДЕТАЛИ
- основу MVVM + C для экрана ДЕТАЛИ - 2 (1)
- При тапе на сотрудника нужно открыть экран информации о нём - сверстать экран (вью(фото+ФИ+никнейм+название департамента) + таблица(2ячейки(ДР и сколько лет)+ (номер телефона+иконкаКнопка) - 2 (2)
- при нажатии на ячейку с номером показать Action Sheet с подтверждением звонка - 2 (0.5)
- При нажатии на кнопку с номером телефона должен начаться звонок, а сам Action Sheet закрывается - 2 (0.2)
- Custom alert after pull to refresh 2 (2)
- Custom activity indicator 1 (1)
- App icon 0.2 (0.2)