import UIKit import LeadKit import StatefulViewController import RxSwift import RxCocoa final class {{ module_info.name }}ViewController: UIViewController, StatefulViewController, DisposeBagHolder { let viewModel: {{ module_info.name }}ViewModel init(viewModel: {{ module_info.name }}ViewModel) { self.viewModel = viewModel super.init(nibName: nil, bundle: nil) } required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } // MARK: - View Life Cycle override func viewDidLoad() { super.viewDidLoad() initialLoadDataLoadingView() } } extension {{ module_info.name }}ViewController: ConfigurableController { func bindViews() { <#code#> } func configureAppearance() { <#code#> } func addViews() { <#code#> } func configureBarButtons() { <#code#> } func localize() { <#code#> } } extension {{ module_info.name }}ViewController: GeneralDataLoadingController { func onLoadingState() { startLoading(animated: false) } func onResultsState(result: <#ResultType#>) { endLoading(animated: false) } func onEmptyState() { endLoading(animated: false) } func onErrorState(error: Error) { endLoading(animated: false, error: error) } }