2016-10-25 2 views
2

Я разрабатываю приложение iOS BLE, и все работает отлично. Я обрабатываю BLE в одноэлементном классе, который вызывает его метод discoverPeripheral() в контроллере viewDidAppear() контроллера вида. Оттуда я подключаюсь к устройствам и обмениваются данными.BLE в iOS с VIPER

Теперь я пытаюсь реализовать архитектуру VIPER в своем приложении, и я не могу представить, где эта часть BLE будет размещена. Поскольку в настоящее время мой код BLE активируется, когда отображается представление. Я придумал следующую схему: поместите сканирование в презентаторе, и как только представление появится в памяти, попросите презентатора начать сканирование. Ведущий попросит синглтон BLE сканировать с помощью соответствующих UUID и после получения данных проинформировать Interactor о его сохранении в БД и затем обновить интерфейс.

Это мой первый проект с VIPER, и я был бы очень признателен за любые комментарии или предложения. Благодаря!

+1

Любой, кто сознательно выбирает использовать гадюку, нуждается в большей помощи, чем Stackoverflow может предложить. – Brandon

+0

Как раз для аргументации, как я могу его реализовать? –

ответ

1

Incase кто блуждает здесь ищет с той же проблемой, это то, что я в конечном итоге делает:

Я поместил звонки в BLE одноэлементных в интерактора. Поэтому, когда пользователь нажимает на пользовательский интерфейс для сканирования, presenter.startBleScan() и interface.showUpdatingBleDevices() вызываются в пользовательском интерфейсе.

Затем ведущий звонит interactor.startBleScan().

В Interactor беседует с классом одноэлементных и вызывает presenter.didReceiveNewBleDevices(count: 5) на ведущий

После этого ведущий называет interface.hideUpdateBle() и interface.showNewDevices

Смежные вопросы