Closed VARWA closed 1 year ago
Чистота кода и общая структура проекта (max 5 баллов)
Есть up-to-date README со ссылкой на загрузку .apk, перечнем реализованных фич, пара скриншотов (+1 балл) Добавлен и работает flutter_lints, в коде нет необоснованных игноров правил (+1 балл) +1 Форматирование кода присутствует (+1 балл) +1 Код разбит на фичи и слои (не важно, feature-first / layer-first) (+2 балла) +2 State-Management (max 8 баллов)
Для стейт-менеджмента используется любое решение: Stateful виджеты, любая библиотека, что угодно (не глобальные переменные) (+5 балов) +5 Консистентность данных при редактировании на разных экранах: изменил на одном экране, проросло на другой мгновенно без плясок с открытием чего-либо туда-сюда (+3 балла) +3 Получение и хранение данных (max 10 баллов)
Реализована работа с бэкендом, данные отправляются/получаются с сервера (+3 балла) +3 Работа с сетью выделена в отдельный слой, код инкапсулирован. Отсутствует логика в слое представления (ещё +2 балла) +2 Организовано сохранение данных на диск при помощи одной из представленных библиотек (+3 балла). Работа выделена в отдельный слой (ещё +2 балл). +2 Разное (max 3 баллов)
Работа с асинхронным кодом реализована однородно: нет бессвязной мешанины из .then и async/await, подход выбран логично (+1 балл) +1 Интернационализация: используется пакет intl или аналогичный, строки изолированы и не захардкожены (+2 балла) +2
26 баллов
У меня линтер выдает 23 проблемы, потому что ('headline1' is deprecated and shouldn't be used. Use displayLarge instead. This feature was deprecated after v3.1.0-0.0.pre. Try replacing the use of the deprecated member with the replacement.) Возможно, у тебя просто старая версия Flutter, я мог бы снять баллы.
Возможно, стоило выделить API ключ в env файл и записать его в .gitignore, чтобы не выкладывать ключ в общий доступ. Я бы при клонировании репозитория вбил свой.
В Dismissible галочка и крестик не едут за карточкой (так было в Figma, но вроде мало кто это реализовал).
Интересное название файла для логов $path/pocketchips/poker_chips.log
В task_entity.dart я бы использовал json генератор, чтобы не прописывать все эти copyWith, toJson, fromJson и так далее.
Странный способ сохранения тасок в shared preferences, я думаю, стоит переписать на более подходящий для этого hive, sqflite или isar.
Вместо printDate можно использовать DateFormat из intl.
Спасибо за проверку и замечания. Буду работать...
Поставил полный балл