I’ve been musing on where device detection and Responsive Design + Server Side Components (RESS) fits in the solution stack as the lines between devices are increasingly blurred.
I would love to see solutions more like what the Riegers presented a couple of years ago at Breaking Development. Solutions that use device detection to inform first load, but then have fallbacks in place if the device detection was wrong.
Enabling solutions like that would allow the best of both worlds. You allow device detection to help you make the best guess at what the device is capable of so you can deliver an optimized experience, but you use client-side detection to redress the errors to ensure that if you get it wrong, you can fix it.
Then device detection truly becomes an enhancement to responsive design—it supercharges it.
BUT, the challenge is that bringing device detection into the mix creates a ton of implementation complexity. That’s why device detection remains something used primarily by large sites.
Here’s my half-baked idea: it would be kind of cool if device detection was running on Node.js and used all of the same API calls that are used client side.
Then you could run the same tests on the server and use it to set the first load code for page, but then execute the same logic in the client and if things didn’t match, you’d know immediately that you needed to fix it. Then you could use the same code on the client that was used on the server to build the correct experience.