Тестовое задание
Тестовое задание – это небольшое приложение на пару экранов. Его задача – проверить твои навыки проектирования и кодирования, а также способность самостоятельно работать над проектом. Полезно иметь на гитхабе хотя бы один сделанный проект, чтобы отмахиваться им от рекрутеров, когда просят показать код.
Залететь на новую работу выполнив тестовое – один из самых непыльных путей. Ты делом показываешь что могёшь условную мурку и часто пропускаешь другие этапы собеседования. Я делал так дважды, просили клон инстаграма и todo-лист. Сейчас у меня валяется пет-проект где я обмазался всеми технологиями с ног до головы, и в принципе этого достаточно если кто-то хочет посмотреть код.
Идея для приложения?
Самое время для творчества. Подойдет все, что решает конкретную проблему:
🐗заметки
🐗прогноз погоды
🐗конвертер криптовалют
🐗репозитории компании на github
🐗список премьер в кино
Существует огромный список публичных API, на основе которых можно собрать свою интересную поделку.
Идеи для дизайна можно посмотреть на Uplabs и Dribbble. Или просто использовать Material Design от Google.
Какие технологии использовать при разработке?
Бывает, что компания явно указывает рекомендуемый стек. За использование чего-то экзотического попросят пояснительную бригаду. Если ничего не указано, используем следующие технологии:
🐗язык: kotlin
🐗версия android: 6.0 (API Level 23) и выше
🐗архитектура: clean, MVVM или MVI, Data-Domain-UI, гайд и рекомендации
🐗бизнес-логика: ViewModel, LiveData, Flow
🐗UI: адаптивный Material 3, XML или Jetpack Compose, ViewBinding, Lifecycle
🐗DI: Hilt, Koin
🐗навигация: Single Activity, Navigation Component
🐗многопоточность/async: Kotlin Coroutines
🐗работа с сетью: Retrofit, Okhttp
🐗сериализация: Kotlin Serialization, Gson
🐗загрузка картинок: Coil, Glide
🐗хранение данных: DataStore, Room
🐗фоновая обработка: WorkManager
🐗линтеры: Lint, Ktlint, Detekt, Spotless
На что обратить внимание при оформлении / что будет оцениваться?
🐗полнота реализованного функционала, соответствие требованиям и пожеланиям ТЗ
🐗качество, плавность и стабильность работы
🐗проект собирается и запускается, работает без крашей и багов, не жрет оперативку как голодный родственник, корректное функционирование вплоть до закрытия. Не допускается потеря работоспособности во время использования. Устойчиво к сворачиванию/разворачиванию
🐗использование архитектурных подходов, логическое разделение на модули, организация классов в пакеты
🐗опрятность кода: никаких кривых отступов, закомменченных участков, лишних пустых строк, стилистическое оформление по гайдлайнам
🐗обработка ошибок и пустых состояний, индикаторы загрузки
🐗избегать многоуровневой структуры в xml-файлах
🐗не копипастить 100% кодовой базы из других проектов на гитхабе, это легко проверяется
🐗минимум внешних зависимостей типа moxy и epoxy
🐗работа с Git – оформление коммитов и пулл-реквестов
Готовый проект публикуем на гитхаб. Обязательно заполняем readme:
🐗какие задачи выполняет приложение (скопировать ТЗ)
🐗используемые зависимости, их версии
🐗инструкция по запуску
Отправляем ссылку на проект потенциальному работодателю. Пингуем, чтобы дали фидбек.
В заключение примеры тестовых заданий от разных компаний: Wildberries, VK, Avito, Kode, KazanExpress, Tutu, Tinkoff, Shift.
И примеры посложнее: VK, Avito.
Post #10
521
