Open medvalna opened 1 year ago
Еще немного:
В main.dart есть проверка if ios/android. Но material под cupertino подстраивается и такие проверки не нужны)
https://www.youtube.com/live/9LvO7xkueT4?feature=share. Тут рассказывается, почему нужно делать отдельные виджеты, а не функции, которые возвращают виджеты
Чистота кода и общая структура проекта (max 5 баллов)
Есть up-to-date README со ссылкой на загрузку .apk, перечнем реализованных фич, пара скриншотов (1/1 баллов) Комментарий: APK несовместим с устройством, на которое устнавливался (Samsung A52, Android 13.0)
Добавлен и работает flutter_lints, в коде нет необоснованных игноров правил (1/1 баллов)
Форматирование кода присутствует (0.5/1 баллов) Комментарий: например, todo_event.dart не содержит форматирование
Код разбит на фичи и слои (не важно, feature-first / layer-first) (1/2 баллов) Комментарий: например, директория models содержит NavigationManager, PersistenceManager
State-Management (max 8 баллов)
Для стейт-менеджмента используется любое решение: Stateful виджеты, любая библиотека, что угодно (не глобальные переменные) (5/5 балов)
Консистентность данных при редактировании на разных экранах: изменил на одном экране, проросло на другой мгновенно без плясок с открытием чего-либо туда-сюда (1.5/3 баллов) Комментарий: для проверки консистентности отсутствует экран редактирования ToDo-элемента
Получение и хранение данных (max 10 баллов)
Реализована работа с бэкендом, данные отправляются/получаются с сервера (0/3 баллов)
Организовано сохранение данных на диск при помощи одной из представленных библиотек (1.5/3 балла) Комментарий: не все возможные данные сохраняются
Разное (max 3 баллов)
Чистота кода и общая структура проекта Есть up-to-date README со ссылкой на загрузку .apk, перечнем реализованных фич, пара скриншотов - apk нерабочий (дебаг версия, не удалось скачать) + лучше дать ссылку на скачивание Добавлен и работает flutter_lints, в коде нет необоснованных игноров правил Форматирование кода присутствует - его на половину нет(запускала format - код менялся) Код разбит на фичи и слои (не важно, feature-first / layer-first) - тут все не очень понятно организовано (почему сохранение это модель? а экраны перестали быть частью ui?)
State-Management Для стейт-менеджмента используется любое решение: Stateful виджеты, любая библиотека, что угодно (не глобальные переменные) Консистентность данных при редактировании на разных экранах: изменил на одном экране, проросло на другой мгновенно без плясок с открытием чего-либо туда-сюда - у тебя нет половины функциональности (например, экрана редактирования просто нет)
Получение и хранение данных Реализована работа с бэкендом, данные отправляются/получаются с сервера Работа с сетью выделена в отдельный слой, код инкапсулирован. Отсутствует логика в слое представления Ну ее просто нет
Организовано сохранение данных на диск при помощи одной из представленных библиотек (в целом данные не полные - нет дедлайна и важности, поэтому и сохраняешь только часть данных) Работа выделена в отдельный слой (не входит в отдельный слой, но тип "отделено")
Разное Работа с асинхронным кодом реализована однородно: нет бессвязной мешанины из .then и async/await, подход выбран логично Интернационализация: используется пакет intl или аналогичный, строки изолированы и не захардкожены - ошибки при использовании AppLocalizations.of(context)!.helloWorld - везде у тебя нет восклицательного знака (ошибка)
ДОПОЛНИТЕЛЬНО: iphone не запускается((( https://stackoverflow.com/a/76481892 https://github.com/MedVAL-na/ToDoList/blob/28f0ba8f2ed4cb3690deb2b33ec00da7c7bd5192/lib/main.dart#L6C1-L6C42 - тут убрать точку
+приложение вообще не запустилось (бесконечная загрузка, если первый экран приветственный)