A more fine-grained approach is to render the appropriate markup for each device. This is the approach used in Yahoo!’s Blueprint and Netbiscuits. In this approach, the developer just builds his app to serve out the a page as XML, the platform will then render the markup most suitable for that device. This is done by classifying (based on each device’s capabilities) devices into several “device classes” and rendering the appropriate markup for each.
This approach presents certain difficulties in testing since the rendered page will look different for different devices. Also classification of which markup approach to adopt for each device can be tricky.