iOS 中的 BLE 和 VIPER
BLE in iOS with VIPER
我正在开发 iOS BLE 应用程序,一切正常。我在单例 class 中处理 BLE,它在视图控制器的 viewDidAppear()
中调用其 discoverPeripheral()
方法。从那里开始,我连接设备并交换数据。
现在我正在尝试在我的应用程序中实现 VIPER 架构,但我不太清楚这个 BLE 部分将放置在哪里。因为目前我的 BLE 代码在视图显示时被激活。我想出了以下方案:将 ble 扫描放在演示器中,一旦视图进入内存,请求演示器开始扫描。 Presenter 将要求 BLE 单例使用适当的 UUIDs 进行扫描,一旦收到数据,通知 Interactor 将其存储到 DB 中,然后更新 UI.
万一有人在这里徘徊寻找同样的问题,这就是我最终做的事情:
我在交互器中放置了对 ble 单例的调用。因此,当用户点击 UI 进行 ble 扫描时,
presenter.startBleScan()
和
interface.showUpdatingBleDevices()
在 UI 上被调用。
然后演示者调用 interactor.startBleScan()
。
交互者与单例对话class并在演示者
上调用presenter.didReceiveNewBleDevices(count: 5)
在此之后,演示者调用 interface.hideUpdateBle()
和 interface.showNewDevices
我正在开发 iOS BLE 应用程序,一切正常。我在单例 class 中处理 BLE,它在视图控制器的 viewDidAppear()
中调用其 discoverPeripheral()
方法。从那里开始,我连接设备并交换数据。
现在我正在尝试在我的应用程序中实现 VIPER 架构,但我不太清楚这个 BLE 部分将放置在哪里。因为目前我的 BLE 代码在视图显示时被激活。我想出了以下方案:将 ble 扫描放在演示器中,一旦视图进入内存,请求演示器开始扫描。 Presenter 将要求 BLE 单例使用适当的 UUIDs 进行扫描,一旦收到数据,通知 Interactor 将其存储到 DB 中,然后更新 UI.
万一有人在这里徘徊寻找同样的问题,这就是我最终做的事情:
我在交互器中放置了对 ble 单例的调用。因此,当用户点击 UI 进行 ble 扫描时,
presenter.startBleScan()
和
interface.showUpdatingBleDevices()
在 UI 上被调用。
然后演示者调用 interactor.startBleScan()
。
交互者与单例对话class并在演示者
上调用presenter.didReceiveNewBleDevices(count: 5)
在此之后,演示者调用 interface.hideUpdateBle()
和 interface.showNewDevices