Skip to content

Latest commit

 

History

History
70 lines (49 loc) · 4.03 KB

razrabotka-yadra.md

File metadata and controls

70 lines (49 loc) · 4.03 KB

razrabotka-yadra

При выборе этого способа, необходимо создать в проекте трехзвенную архитектуру:

  • API
  • CORE
  • UI

Так как UI проекты уже созданы, требуется лишь создать API (будет отвечать за взаимодействие с сервером) и CORE (содержит всю бизнес-логику) проекты типа Portable Class Library.

Теперь во все проекты необходимо добавить NuGet пакет MvvmCross (поддерживаемую версию можно взять здесь, добавлять нужно только MvvmCross пакет, не учитывая пока плагинов и других пакетов) и добавить ссылки на базовые библиотеки AppRopio.

Чтобы ядро запустилось, необходимо создать в нем собственный Application (App.cs) и наследовать его от App.cs из пакета подключенной сейчас навигации:

public class App : AppRopio.***.Navigation.Core.App
{
    ...
}

RouterSubscriber

Теперь необходимо создать и зарегистрировать класс RouterSubscriber . Подробную инструкцию можно найти здесь.

Setup

Следующим шагом необходимо создать в UI проекте файл Setup.cs , в котором будет осуществляться настройка UI проекта, а также будет создаваться инстанс приложения из твоего ядра. Этот класс должен быть наследован от соответствующего класса в выбранном модуле навигации:

public class Setup : AppRopio.***.Navigation.***.App
{
    public Setup(IMvxApplicationDelegate navDelegate, MvxIosViewPresenter presenter) 
    : base(navDelegate, presenter)
    {
    }

    ...
}

Теперь необходимо в Setup переопределить метод CreateApp и вернуть в нем созданный инстанс класса приложения, который мы добавили в CORE в самом начале.

public class Setup : AppRopio.***.Navigation.***.App
{
    public Setup(IMvxApplicationDelegate navDelegate, MvxIosViewPresenter presenter) 
    : base(navDelegate, presenter)
    {
    }

    protected override MvvmCross.Core.ViewModels.IMvxApplication CreateApp()
    {
        return new Core.App();
    }
}

Таким образом мы даем MvvmCross'у инстанс приложения, который он будет использовать в дальнейшем.

Осталось только прописать в классе AppDelegate в методе CreateSetup создание экземпляра класса Setup , заменив текущую реализацию. Подробнее узнать о методах класса AppDelegate и их назначении можно здесь.

На этом заканчивается подготовительная работа, можно начинать описывать бизнес-логику приложения.

Дополнительные материалы