I want to keep persistent BLE connection with my peripheral device in central mode in my app and it's widget. So is it possible technically?
The reason is following: when connection has been established in the app, we send it to background, then open today-widget - the widget should continue to operate with connected peripheral device. And wise-versa: if we hide today-widget, launch app - the app should continue to use existing connection.
Yes this is possible. Take a look at retrieveConnectedPeripheralsWithServices: on the CBCentralManager.
Basically what this method does is it collects all of the peripherals connected across the entire iOS device. Use this when launching your second app on the iOS device.
When an app is in the background, its BLE connections stay alive, so you may hide app 1, launch app 2, use this method to identify the peripheral you're interested in, and use it independently of the first app.