Skip to content

Latest commit

 

History

History
17 lines (11 loc) · 1.93 KB

razrabotka-ekranov.md

File metadata and controls

17 lines (11 loc) · 1.93 KB

razrabotka-ekranov

Все экраны в приложении состоят из двух частей: видимой (UI) и логической (ViewModel). Каждому экрану соответствует отдельная папка в проекте:

  • Core/ViewModels/ScreenName/ScreenNameViewModel.cs
  • iOS/Views/ScreenName/ScreenNameViewController.cs
  • Droid/Views/ScreenName/ScreenNameFragment.cs

ViewModel – абстракция экрана – работает с несколькими сущностями, чтобы обеспечивать должный уровень абстракции для каждого слоя. Основными такими сущностями являются:

  • ApiService – сервис из API слоя модуля, необходим для реализации логики взаимодействия с сервером
  • VmService – сервис, который берет на себя всю работу, которая выполняет ViewModel за время своего существования (обычно именно он работает с ApiService, отдавая в VM уже подготовленные данные)
  • NavigationVmService – сервис, являющийся основой для навигации внутри модуля и между модулями
  • Messages – подписки на сообщения от других моделей, если нет другого способа получить данные (например, об обновлении определенного значения в другом модуле)

Для обеспечения корректной работы каждая ViewModel должна наследоваться от BaseViewModel и имплементировать два метода: void Prepare(IMvxBundle parameter) и Task Initialize().