Декомпозиция тестового задания для KODE.
- Определить архитектуру и подключить необходимые зависимости в проект(ретрофит, hilt, gson, compose, coil и т.д.) 2 часа - 2 часа
- Протестировть работу api через postman (рабоспособнсоть) + разобраться в устройстве, параметрах 1,5 часа - 2 часа часа
- Создать каркас архитектуры MVVM (голые классы, мапперы) 1 час - 1 часа
- Создать базовые общие инстансы(ретрофит, интерсептор, репозитории и т.д.) + Подключить hilt. Протянуть базовые зависимости по всей архитектуре 3 часа - 2.5 часа
- Реализовать методы ретрофита + dto-ошки 1 час - 1 час
- протянуть данные до репозитория + маппер + domain model 1 час - 1 час
- Базовые стейты для ивентов и состояния
*Поскольку проект будет написан с помощью jetpack compose (!очень высокие риски : ранее использовал) , включая ui, навигацию, отсутствие fragments, оценка завышена(прим. учитывая обозначенный риск) *
Экран "Список сотрудников". UI :
-
кастомный appBar - 6 часов
-
bottom sheet - 6 часов
-
Tab. Поключение + стиллизация - 5 часов
-
Список + элемент списка - 4 часа
-
экран ошибки загрузки - 2 часа
-
Загрузка данных (анимация, кастомный шиммер) - 6 часов
-
Refresh - 2 часа
-
Пустой список в соответствие с параметрами: 1.5 часа Логика: 8_1) Фильтрация: 2 часа - 2 часа
9_1) Выбор активного параметра: 2 часа - 2 часа 10_1) Фильтрация по табу: 2 часа - 2 часа 11_1) Соединение всех фильтраций: 1.5 часа - 2 часа 12_1) Отображение в случае ошибки: 40 минут - 1 час 14_1) Логика по рефрешу данных: 1.5 часа - 1.5 часа Экран "Карточка сотрудника" UI : -
Верстка: 2 часа - 2 часа Логика:
-
Переод на экран с помощью навигации : 2 часа - 6 часов (Причины существенного выхода за эстимацию:не получилось нормально передать parcelable объект с помощью навигации + Классическая сериализация крашилась на передаче * ссылки картинки + LocalDate тоже не сериаизуется) *а может дело сразу в ссылке и было, а я начал искать иные способы передать объект. Выясню это позже
-
Открыть приложение телефона при нажатии на номер телефона: 1 час - 1 час
Дополнительные задачи, не учтенные заранее(фактически затраченное время):
- Логика по регулированию графа навигации : 6 часов
Примечание: Задачи блока UI экрана "Список сотрудников" без фактической оценки - в целом затрачено на UI, переделки, поиск оптимальных решений вышло около 35-ти часов, что на 4 часа больше запланированного (даже с учетом риска) времени.