Sobes.tech
Back to questions
Junior — Middle
70

Какое назначение у компонента Router в вашем проекте?

Answer from AI

sobes.tech AI

Компонент Router в iOS-приложении отвечает за навигацию между экранами и модулями. Он инкапсулирует логику переходов, создавая и передавая нужные ViewController'ы, а также управляет передачей данных между ними.

Это позволяет:

  • Разделить ответственность, отделив навигацию от бизнес-логики и UI.
  • Упростить тестирование и поддержку кода.
  • Централизовать маршрутизацию, делая переходы более предсказуемыми и управляемыми.

Пример использования Router:

protocol Router {
    func navigateToDetail(with id: Int)
}

class AppRouter: Router {
    let navigationController: UINavigationController

    init(navigationController: UINavigationController) {
        self.navigationController = navigationController
    }

    func navigateToDetail(with id: Int) {
        let detailVC = DetailViewController(id: id)
        navigationController.pushViewController(detailVC, animated: true)
    }
}