Mobile device detection nl

Door creator1988 op vrijdag 18 februari 2011 14:18 - Reacties (7)
Categorie: Frontend, Views: 4.751

Belangrijk onderdeel van ons nieuwe mobiele platform is uitvogelen welk device een gebruiker op dat moment gebruikt. Ben je mobiel met een viewport-breedte van < 600 px dan willen we je doorsturen naar onze mobiele site. En dan kom je terecht in de wondere wereld van User Agent parsing.

WURFL
Een van de bekendste libraries met een gigantische lijst van devices, UA strings en capabilities is WURFL, an sich klinkt het prima, facebook zou het niet alleen gebruiken maar er ook aan bijdragen. Oordeel in 1 zin: "what the hell!" Na installatie van de Java library (die alleen in een web-omgeving wil draaien), omdat de .NET library dramatisch is, blijkt dat de 'intelligente' matching van WURFL eigenlijk bijzonder zwak is. Firefox werd herkend als een Nokia N900, en van mijn testset werd een niet onaanzienlijk deel niet herkend. Wat me echter nog meer stoorde, was dat bij het ophogen van wat versienummers van de iPad UA er geen enkele herkenning meer was. Ben ik dan zo raar dat ik verwacht dat een library herkent dat iPad 4.3 wel zo'n beetje compatible zal zijn met iPad 4.2?

En dan?
WURFL zou dus slimmer moeten worden, en het toeval wil dat we hier met een verzameling nerds in een grote open ruimte zitten. Een neuraal netwerk dat we trainen met een voorgedefinieerde set, dat gaat gokken of een niet herkende User Agent in een categorie kan worden ingedeeld. Of toch een genetisch algoritme dat vanzelf evolueert tot een alles-wetend mobiel deviceherkennend brein. Kan allemaal!

Uitkomst
We gaan gewoon gebruik maken van een commercieel pakket dat het een stuk beter doet, praat bovendien ook nog standaard .NET ;)

Volgende: Route constraints op QueryString parameters in ASP.NET MVC 02-'11 Route constraints op QueryString parameters in ASP.NET MVC
Volgende: Bouw eens een API met WCF, deel 4: Beschikbaar via SOAP, XML en JSON 02-'11 Bouw eens een API met WCF, deel 4: Beschikbaar via SOAP, XML en JSON

Reacties


Door Tweakers user MuddyMagical, vrijdag 18 februari 2011 14:24

Ik zou zeggen praat eens met crisp. Misschien wilt hij wel wat info delen over hoe de http://tweakers.net/devicedetect werkt. Zij maken wel gebruik van WURFL.

Door Tweakers user ACM, vrijdag 18 februari 2011 14:31

Wat je sowieso moet doen bij Wurfl is een patch voor desktop browsers (de "Web Patch") installeren. Dat is geen standaardonderdeel van de lijst.

Zonder die lijst zal de herkenning van gewone browsers idd ietwat tegenvallen. Er is ook zo'n soort patch voor bekende zoekmachines.

Desalniettemin is Wurlf nou ook weer niet perfect, maar aangezien wij de php-library gebruiken hebben we iig niet te maken met quirks van .net en java.

Door Tweakers user creator1988, vrijdag 18 februari 2011 14:33

ACM schreef op vrijdag 18 februari 2011 @ 14:31:
Wat je sowieso moet doen bij Wurfl is een patch voor desktop browsers (de "Web Patch") installeren. Dat is geen standaardonderdeel van de lijst.

Zonder die lijst zal de herkenning van gewone browsers idd ietwat tegenvallen. Er is ook zo'n soort patch voor bekende zoekmachines.

Desalniettemin is Wurlf nou ook weer niet perfect, maar aangezien wij de php-library gebruiken hebben we iig niet te maken met quirks van .net en java.
Ja, ook met die patch viel het me best tegen. Overigens zijn de PHP en de Java libs juist de libs die officieel ondersteund worden, dus ik verwacht niet dat het met de PHP versie veel beter zou gaan worden.

Door Tweakers user t.coenraad, vrijdag 18 februari 2011 18:47

Ik gebruik http://code.google.com/p/mobileesp/ dat het heel prima doet (denk ik, nog geen klachten) :)

Door Tweakers user crisp, vrijdag 18 februari 2011 22:56

Vorig jaar nog een reactie geschreven over onze WURFL ervaringen: http://gathering.tweakers...message/35045153#35045153

Onze API is ook verre van origineel meer. De meeste van onze wijzigingen heb ik als patches gesubmit naar het WURFL team en een aantal daarvan zijn in de 1.2 versie van de PHP API ook opgenomen, maar die versie moet ik nog steeds een keer goed bekijken en testen.

Ook onze 'web patch' is veel uitgebreider dan de versie die WURFL aanbiedt, en daarnaast hebben we nog een patchfile met zo'n 78 fixes en toevoegingen. Waar het vaak op misgaat is het feit dat de UA-string vaak locale-aanduidingen bevat, en er dan vaak geen goede match kan worden gevonden van nl-localized devices met de en/us-versie die in de database staat... (feature-request om dat te normalizeren staat nog open).

Een nieuwe versie Android of iOS is inderdaad ook vaak feest :P

Door Tweakers user creator1988, maandag 21 februari 2011 13:58

crisp schreef op vrijdag 18 februari 2011 @ 22:56:
Ook onze 'web patch' is veel uitgebreider dan de versie die WURFL aanbiedt, en daarnaast hebben we nog een patchfile met zo'n 78 fixes en toevoegingen. Waar het vaak op misgaat is het feit dat de UA-string vaak locale-aanduidingen bevat, en er dan vaak geen goede match kan worden gevonden van nl-localized devices met de en/us-versie die in de database staat... (feature-request om dat te normalizeren staat nog open).

Een nieuwe versie Android of iOS is inderdaad ook vaak feest :P
Waarom hebben jullie destijds niet voor DeviceAtlas gekozen? Bij mijn tests reageert DA prima op wijzigingen in versie / andere local.

Onderhoud voor dit soort dingen is best duur; logfile analyse, patches maken, etc. Bij DA krijgen we dagelijks een nieuwe file, en ik hoop dat zij wat sneller zijn met patchen dan bij WURFL. Qua kosten maakt het niet zoveel uit, $300 per jaar, inclusief updates.

Door Tweakers user crisp, maandag 21 februari 2011 21:48

Waarom hebben jullie destijds niet voor DeviceAtlas gekozen?
DA is toendertijd wel ter sprake gekomen, maar we hadden niet het idee (toen) dat de onderliggende data beter of uitgebreider was dan die van WURFL. We zijn dus eerst met WURFL aan de gang gegaan en zijn daar eigenlijk tot nu toe bij gebleven. Wellicht dat we dat nog wel eens gaan heroverwegen...

Reageren is niet meer mogelijk