Apple have given no indication that the IOKit framework for user access to USB devices (IOKit/usb/IOUSBLib.h) is going away. ''
The IOKit and DriverKit frameworks serve different purposes.
If you have a USB device which performs a function for your own application, you can use user-space USB to access it. If you want third party applications to be able to use your device, you have to
a. provide your code in source form to third parties or
b. provide a library, or
c. document the USB commands and responses and hope that those third parties come to grips with your device.
However, if your device provides a common function, such as networking, serial ports, video input or audio I/O, there are standard interfaces for these. Ideally, your USB device would perform its standard functions in a fully standard manner, and could be driven by built-in class drivers.
However, somef real-world devices have idiosyncrasies or enhancements at the bus level which preclude the use of standard class drivers. On 10.14 and earlier, a kext can be used to convert a non-standard bus interface into a standard system interface. On 10.15 and later, a dext can (theoretically) perform the same function. Currently documentation and example code is sorely lacking (although some DriverKit documentation has appeared fairly recently).