The Detector identification is unique because it groups all browsers in unambiguous segments based on common denominators, allowing you to safely develop for a narrow target group within each segment. The browsers in each segment has a clearly specified level of JavaScript and CSS support, uses the same input method and has a limited screen resolution range.

This allows you to forget about all the weird edge-case scenarios typical to a "one-size-fits-all" responsive solution. You can freely optimise performance and UI for each segment, providing a much better user experience. At the same time it lowers complexity and increases flexibility and performance.

The magic of Detector comes from the decade long analysis of all browsers from a practical point of view (that of the frontend developer). Partly to define a sound set of common demoninators for each segment, and partly to decide in which segment each browser belongs. A browser should never belong to more than one segment and you'll know exactly what to code for within each segment.

Why are segments relevant?

For example, a mobilephone is much more than just a mobilephone. There is a wide array of screen resolutions, ranging from tiny 160x160 pixel screens to desktop-like resolutions of 1920x1024 pixels. The former will need a specific minimal layout and perhaps some special features to be useful, and though the latter will be able to render a full desktop UI, the screen is simply too small to click those tiny links using your finger. Both devices are mobilephones, but supporting both will be an almost impossible task.

There are even more different levels of JavaScript and CSS support across mobilephones. Of course the differences in feature support can be levelled out to some extent by using a JavaScript library, but covering too wide a gap, will slow down overall JavaScript performance and significantly increase the library size. The end result is more compromises than benefits.

That is why Detector sports a whole 3 mobile segments - smartphone, mobile and mobile_light. It is up to you which of these you want to prioritise, but you have the option to make perfectly optimised UI's for all mobilephones. Similarly there are 3 desktop segments, 3 Internet Explorer segments, 2 tablet segments and a fully semantic seo segment - all of which can be prioritised and grouped freely.

To put it short: The difference is in the detail.

Who cares about old browsers?

Well, everyone should but only few do. In fully developed markets supporting the old browsers might not make total sense, but in less developed markets such as Africa or India a majority is left with old computers and the old browsers still have a large market share. If you really want to distribute a message globally supporting old browsers is vital.

Detector is defined to provide optional full range support - you are always free to skip the segments you don't care about for any given project.

The detection process

Obviously the information required to map any useragent to a specific segment is extensive. Collection information about new devices and updating the Detector algorithm could pose a challenge as well.

The Detector maintenance system has been refined over a period of 10 years to help make information collection and indexing as easy as possible. Anyone who uses the free Detector API will contribute useragent information to be indexed and the indexing process leverages the existing information to easily identify new or existing useragents.

Each segment is identified by a number of including and/or excluding regular expression markers, deducted from the Detection API index. Certain segments, like desktop and desktop_edge, has some common markers which allows us to limit the number of regular expressions required to uniquely identify a device. If any device is not identified by the markers, the API will use its huge database of useragents to find similar useragents and deduct segment affiliation that way.

Obviously using the API will also provide the most up-to-date and precise identification, but not everyone will allow the use (and dependency) of an external service in their projects. To accommodate the need for local implementation the Detection maintenance system can generate static versions of the regular expression markers in both JavaScript and PHP to be included locally. The static versions will identify 99% of all devices correctly, but will of course require continuous updating (about every 6 months) to identify new devices. 

Start using Detector today.