responder
v0.1.6
Published
Responsive/Adaptive utilities for your Node.js application
Downloads
10
Readme
responder
DISCLAIMER: In very early development! Do not use ... contribute.
Responsive/Adaptive utilities for your Node.js Application The library provides the following:
API wrapper for working with Device Description Repositories such as:
- WURFL (Local and WURFL Cloud Client)
- openDDR (W3C DDR Core Vocabulary)
- 51degrees.mobi Lite
- Device Atlas
- ApacheMap
Redis Data cache and simple Data API
Device Profile Mappings to Jade templates
Profile-specific Jade mixins
Intelligent UX via WebSockets and Modernizr (SPA application support)
Getting Started
Server
Install the module with: npm install responder
var responder = require('responder');
responder.profile(); // "smartPhone"
responder.product('brand_name'); // "Nokia"
responder.product('has_qwerty_keyboard'); // "false"
responder.product('mobile_browser'); // "Opera"
responder.html_ui('html_preferred_dtd') // "html5"
responder.pdf('pdf_support'); // "true"
Client
Clone the responderjs-client.js into your app's JavaScript directory.
$ cd <public/js directory of your app> $ git clone git://github.com/jessecravens/responderjs-client.git
Add a script reference in your application pages. Most likely, your highest-level template.
HTML
<script src="js/responderjs-client.js"></script>
Jade
script(src='js/responderjs-client.js')
Documentation
The majority of web traffic through the traditional desktop web is divided among a manageable number of modern web browsers, most notably Google Chrome, Internet Explorer, Mozilla Firefox, Safari, and Opera. These browsers rely on HTML as its markup language, CSS for styling, and JavaScript for client-side scripting. Although cross-browser compliance continues to cause developer pain, it can generallly be expected that the content of most web applications will be visible to most users using modern web browsers. Futhermore, software updates for desktop browsers are frequent and widely distributed.
Unlike the desktop web, there is a significant amount of fragmentation on the mobile web. Markup can be WML, HTML, HDML, XHTML, or Mobile Profile. In addition, unlike the desktop web, a mobile web browser will vary on screen size, ability to support client side scripting, ability to support various image formats, and even color. Because the markup is generally sent directly to the phone, there is no opportunity for a central server to “fix” or adapt to browser limitations or defects. Furthermore, software updates for mobile browsers are rare.
ResponderJS helps bridge this gap with a simple to use API.
Device Description Repositories
- WURFL (Local and WURFL Cloud Client)
- openDDR (W3C DDR Core Vocabulary)
- 51degrees.mobi Lite
- Device Atlas
- ApacheMap
W3C DDR Core Vocabulary
http://www.w3.org/TR/ddr-core-vocabulary/
Device Testing
MITE Device Anywhere: http://mite.keynote.com/download.php
WURFL Cloud
http://www.scientiamobile.com/wurflCloud/gettingStarted/
API
Properties
responder.isSmartPhone
{Bool}responder.isTablet
{Bool}responder.isDesktop
{Bool}responder.isLargeScreen
{Bool}
Methods
responder.profile();
- @return {String} current profile.
responder.is(profile)
- @param {String}
profile
. Currently supportssmartPhone
,tablet
,desktop
andlargeScreen
. - @return {Bool} Returns boolean of current device matching argument you specify.
- @param {String}
responder.test(ua)
- @param {String}
ua
. User-agent string to test. @return {String} Returns string of profile that it matches.
- @param {String}
Examples
(Coming soon)
Contributing
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using grunt.
Release History
(Nothing yet)
License
Copyright (c) 2012 Jesse Cravens
Licensed under the MIT license.