Привет, я проверяю твоё дз в рамках 3 домашнего задания.
Первое впечатление от приложения хорошее, работает все довольно плавно. Отдельный плюс за то, что ты валидацию для заданий прописала (разве что можно ещё добавить проверку на то, не содержится ли в описании только пробелы, потому что с их помощью пустую таску создать всё же можно). По UI вообще придраться почти не к чему, единственное что у тебя только один восклицательный знак для важной таски, а не два, как по макету и над сплэш эффектом кнопки глаза надо поработать, а то он в развёрнутом appbar очень большой и обрезается снизу, а в свёрнутом сплэш залезает на верхнюю шторку андройда.
Но сейчас задание всё же не про UI, поэтому давай по критериям.
README 1/1,
Линты настроены, но у тебя есть несколько игноров правил, которых лучше всё же не допускать. А именно, у тебя в некоторых виджетах не все поля final, а их важно делать все именно такими, потому что у тебя виджет иммутабелен, а если тебе нужно хранить какие-то изменяющиеся данные, то это надо делать в state. Это всё важно, но не критично, поэтому балл занижать не буду 1/1
Форматирование есть 1/1
Код разбит по layer-first 2/2
Обработка серверных ошибок реализована не в полной мере. Во первых от самого запроса лучше разные типы исключений ловить. Там как минимум SocketException, если интернета нет, HttpException если по адресу ничего не найдено вроде и FormatException, если с сервера пришли данные, которые не парсятся нормально. Также хорошо было бы читать статус коды твоего response, который с сервера приходит. Там ещё могут быть некоторые исключения, нам для этого в описании бэка и расписывали все статус коды, чтобы мы их нормально в приложении обработали, если прилетят (в большей степени это касается 400 и 500 кодов). Поэтому за обработку серверных ошибок 1/2
Приложение действительно адекватно работает без интернета 2/2
Проблема в том, что приложение интернетом как будто бы и не пользуется в полной мере. Таски для отрисовки у тебя берутся только из локальной базы данных, как я понял. Вот и получается, что я с телефона задач накидал, потом зашёл с эмулятора и на другом устройстве у меня их нет, хотя по идее должны были прилететь с сервера. Если без интернета задач накидать, то такое ощущение, что они у тебя тоже никогда на сервер отправлены и не будут. Вот и получается, что приложение не совсем Offline-First, а скорее просто Offline с дублированием на сервер по возможности. В общем, если я что-то не правильно понял, свяжись, пожалуйста, со мной, всё обсудим. А пока этот критерий я считаю не выполненным, к сожалению 0/2
Как я понял, репозитория у тебя как такового нет. Его функции по сути у тебя исполняет provider, но он же у тебя одной ногой в UI. Тем самым работа с данными не инкапсулирована в отдельной сущности - критерий не выполнен. Но я всё-равно поставлю половину баллов, потому что по сути нужная логика то у тебя есть 1,5/3
Я на riverpod никогда не писал, но вроде со state management у тебя всё в порядке 2/2
Не уверен, что именно так надо DI в riverpod-е делать. Но может и правда так. Пока поставлю максимум, если захочешь какие-то пункты подробнее рассмотреть, то я этот критерий уже уточню 2/2
Папки с тестами я у тебя на github не обнаружил, поэтому 0/5 (скажи, если я где-то недоглядел)
Диплинк поддержан, открывается даже из убитого состояния 1/1 + 1/1
Навигация на Navigator 2.0 не переписана 0/1 (советую попробовать сделать как по лекции, там достаточно хорошо объясняется как на Navigator 2.0 перейти)
Итого 15,5/26
В целом впечатления от твоего приложения хорошие, всё чётко работает. Не удовлетворены только некоторые критерии, главным образом тесты, но это дело наживное. Напиши мне пожалуйста в тг, если считаешь, что я где-то не справедливо оценил или что-то не правильно понял @Accordion_Palych.
Удачи тебе в последней домашке и успехов во Flutter!
Привет, я проверяю твоё дз в рамках 3 домашнего задания. Первое впечатление от приложения хорошее, работает все довольно плавно. Отдельный плюс за то, что ты валидацию для заданий прописала (разве что можно ещё добавить проверку на то, не содержится ли в описании только пробелы, потому что с их помощью пустую таску создать всё же можно). По UI вообще придраться почти не к чему, единственное что у тебя только один восклицательный знак для важной таски, а не два, как по макету и над сплэш эффектом кнопки глаза надо поработать, а то он в развёрнутом appbar очень большой и обрезается снизу, а в свёрнутом сплэш залезает на верхнюю шторку андройда. Но сейчас задание всё же не про UI, поэтому давай по критериям.
Итого 15,5/26 В целом впечатления от твоего приложения хорошие, всё чётко работает. Не удовлетворены только некоторые критерии, главным образом тесты, но это дело наживное. Напиши мне пожалуйста в тг, если считаешь, что я где-то не справедливо оценил или что-то не правильно понял @Accordion_Palych. Удачи тебе в последней домашке и успехов во Flutter!