A panic button for freaked-out studentsThe button is for mobile phones onlyBut how do we know someone is on a mobile phone?Mobile device data sources to the rescueMeet WURFLWURFL and its capabilitiesThere’s more than one flavor of WURFLWe’ll be using the PHP APIWURFL: Clever API codeA tree of devices and their familiesIt’s time to install WURFL on your computerWe can build an explore page, tooSteps for building our explore pageAn explore page: Setting up our environmentDirectory structure for the explore pageA good start!But we can make it betterA quick one-two punch to improve our explore pagePut capabilities to workUse WURFL to help differentiate contentSteps to successAsk WURFL the right questionsInitialize the device and get the info readyIs this thing mobile?Danger, Will Robinson!Now, use that valueMake the page a bit smarter with WURFLMaking phone calls with linksThe panic button: For phones onlyFirst, let’s get the valuesNow, let’s evaluate themHerding devicesSort once, then goDevice classesThe picture just got a lot biggerExpanding a lucrative part of AcedIt!’s businessAn early look at what it has in mindEvaluate the home page wearing mobile-tinted glassesCombining device data with logical groupingGroup requirements into multiple mobile flavorsA fuller mobile experienceA simplified experience for simpler phonesRounding out our device classesOh, by the way, tabletsWhere to draw the lineOur device class lineupLet’s get this show on the roadBut, first...And we’re off!Get acquainted with the matching functionWhat’s going on in that switch statement?Some examplesUse the matching function to test capabilitiesThe home stretchWell, let’s see...how’d it go?Looks like something went a bit wrongFilling in the gapsFill in the gaps in the device class testsMake something actually happen with device classesWe’ll treat unsupported devices similarly to desktop browsers...for now, at leastAlways tread with care and come preparedWURFL’s “generic” is pretty genericSo what?We need a bigger safety netAccidental success is not good enoughA stitch in time