You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Есть проблемы с наименованием функций, надо стараться подбирать такое название, что бы оно четко отображало то, что происходит в теле функции
RecipesViewController:
func bindUpdateViewModel звучит странно, лучше назвать bindToViewModel
updateTableView, showHUD, showLoader названия функций не отражают их реальное назначение, на деле в них биндинг, который, по идее, можно весь оставить в корневой функции bindToViewModel
112 + 26 зачем эта сумма? Если эти значения что-то обозначаю, то нужно вынести их в константы и дать текстовое обозначение. Иначе лучше просто делать return 138
HudView(inView: self.view, type: type) все таки не очень хорошо, что показом HUDа занимается он сам, эта ответственность должна быть на том, кто его показывает (откуда его надо показать):
let hud - HudView(networkType: error)
self.addSubview(hud)
...
Вообще можно вынести показ HUDа отдельным протоколом и базовой реализацией, а для конкретных экранов уже подписываться этим протоколом и вызывать базовую реализацию (если не понятно скину пример)
RecipesViewModel:
let router: RouterProtocol - тут скорее всего retain cycle. Не уверен, что это хорошая идея напрямую инжектить роутер во viewModel, т.к. для viewModel открыты методы, о которых ей знать не надо. Лучше воспользоваться партерном Delegate (этот пункт стоит посмотреть)
RecipeTableViewCell:
тут тоже стоит переделать хранение и настройку свойств (subviews которые)
HudView:
Тут все таки надо подумать о разделении показа индикатора от ошибки или переименовать View, что бы было понятно что оно отображает
The text was updated successfully, but these errors were encountered:
Замечания по UI:
Замечания по коду (общие):
такой подход имеет ряд недостатков, лучше делать это в отдельном методе:
RecipesViewController:
return 138
Вообще можно вынести показ HUDа отдельным протоколом и базовой реализацией, а для конкретных экранов уже подписываться этим протоколом и вызывать базовую реализацию (если не понятно скину пример)
RecipesViewModel:
RecipeTableViewCell:
HudView:
The text was updated successfully, but these errors were encountered: