Ребят, а у меня в голову такая мысль пришла.... А что если сделать кастомный роутер и там сделать методы наподобии:
navigateToMainScreen(MainScreenArgs args);
navigateToProjectsScreen(ProjectScreenArgs args);
и т. д., т.е. смысл в том чтобы сделать удобную сигнатуру вызова, чтобы передать туда параметры для конкретного экрана, а роутер же уже знает как открыть конкретный экран. Вместо того чтобы использовать navigateTo(ScreenName, params). Как Вам такой роутер? покритикуйте.
Можно, но зачем? )
Это ж столько методов писать, а профит не очень то и большой как по-мне.
Плюс "найди 10 отличий":
navigateToSomeScreen(someScreenArgs)
navigateTo(someScreenName, someScreenArgs)
То есть все эти доп методы будут только ради того, чтобы вынести название экрана из метода.