Ben Combee, Developer Platform Architect
Enyo Framework Team, webOS Group, HP

THE ENYO HACKATHON
MARCH 4, 2012
NYC + AROUND THE WORLD
Transforming to Open webOS

 Look for partnerships with hardware
    companies
   Release our source in a form that’s usable
   Removing dependencies on closed parts
   Find ways to be compatible with web
    standards where possible
   Work closely with webOS Internals
enyojs.com

 Heart of our new open source project
 Apache 2.0 license
 Code changes visible on github.com
 Actively seeking issue reports
  and pull requests
 Active forum at forums.enyojs.com
 Blog at blog.enyojs.com, feature mix of
  technical and marketing posts
Enyo 1.0

 Built on WebKit
 Specialized for webOS 3.0
 Supported on webOS 1.4.5+ at a “best effort”
  level
 Can work on iOS, Android, Chrome, other
  WebKit platforms with varying levels of
  performance
 Looking for pull requests!
 Use StyleMatters sample for widget examples
Enyo 2.0

 Built to be cross-platform from the start
 A flexible core emphasizing component-
  based applications
 Can be used for both self-contained apps and
  websites
 Keep the core small
 Extended functionality provided by libraries
Onyx UI Library

 First release last week
 Our cross-platform widget set
 Professionally designed by webOS HI team
 Not all Enyo 1.0 widgets implemented… yet
 Use OnyxSampler for examples of how
  widgets look and can be used
Other Libraries

 Layout: cross-browser widget sizing
 Canvas: support for <canvas> drawing
 Extra: collection of useful methods
 Fu: simple UI library for first examples


 More showing up on github all the time!
Web APIs

 Use HTTP GET/POST/PUT/DELETE
 Send parameters to a URL endpoint
 Get back a response, usually in XML or JSON
 Accessed through XmlHttpRequest from
  browser or tools like curl from command line
 Often require an API key
 Commonly use OAuth for user identification
Web APIs: Useful Tools

 Curl (available in webOS shell too)
 Hurl.it (like curl, but a web-based app)
 Mashery API Explorer
 Chrome Developer Tools
 Run chrome with “--allow-file-access-
  from-files --disable-web-security
  --enable-file-cookies” flags to allow
  cross-domain XHR and running like app
enyo.WebService (1.0)

 Component that you add to your app
 Derived from enyo.Service
 Can set many parameters up front or set
  them when you make the .call
 onResponse, onSuccess, and onFailure
 url, method, handleAs, headers, username,
  password properties
enyo.xhrGet/xhrPost (1.0)

 Simple way to make a GET or POST request
  without creating a new object
 Allows passing callback function instead of
  setting up event handlers
enyo.Ajax (2.0)

 Non-component wrapper for
    XmlHttpRequest
   Similar parameters to enyo.WebService
   .go() starts request
   .response(), .error() register callbacks
   User in Flickr example on enyojs.com
Enyo.JsonpRequest (2.0)

 Way to call JSONP-formatted web services
 These allow cross-domain calls
 Response is executed as a <script>
 Part of the “extras” library, not in core
 Mainly useful for web pages
 Used in the enyojs.com tutorial
Getting Help

 Post questions to forums.enyojs.com
 #enyojs channel on IRC (freenode)
 webchat.freenode.net/?channels=enyojs
 3PM EST Q&A Session
 Look at samples on github.com/enyojs

Enyo Hackathon Presentation

  • 1.
    Ben Combee, DeveloperPlatform Architect Enyo Framework Team, webOS Group, HP THE ENYO HACKATHON MARCH 4, 2012 NYC + AROUND THE WORLD
  • 2.
    Transforming to OpenwebOS  Look for partnerships with hardware companies  Release our source in a form that’s usable  Removing dependencies on closed parts  Find ways to be compatible with web standards where possible  Work closely with webOS Internals
  • 3.
    enyojs.com  Heart ofour new open source project  Apache 2.0 license  Code changes visible on github.com  Actively seeking issue reports and pull requests  Active forum at forums.enyojs.com  Blog at blog.enyojs.com, feature mix of technical and marketing posts
  • 4.
    Enyo 1.0  Builton WebKit  Specialized for webOS 3.0  Supported on webOS 1.4.5+ at a “best effort” level  Can work on iOS, Android, Chrome, other WebKit platforms with varying levels of performance  Looking for pull requests!  Use StyleMatters sample for widget examples
  • 5.
    Enyo 2.0  Builtto be cross-platform from the start  A flexible core emphasizing component- based applications  Can be used for both self-contained apps and websites  Keep the core small  Extended functionality provided by libraries
  • 6.
    Onyx UI Library First release last week  Our cross-platform widget set  Professionally designed by webOS HI team  Not all Enyo 1.0 widgets implemented… yet  Use OnyxSampler for examples of how widgets look and can be used
  • 7.
    Other Libraries  Layout:cross-browser widget sizing  Canvas: support for <canvas> drawing  Extra: collection of useful methods  Fu: simple UI library for first examples  More showing up on github all the time!
  • 8.
    Web APIs  UseHTTP GET/POST/PUT/DELETE  Send parameters to a URL endpoint  Get back a response, usually in XML or JSON  Accessed through XmlHttpRequest from browser or tools like curl from command line  Often require an API key  Commonly use OAuth for user identification
  • 9.
    Web APIs: UsefulTools  Curl (available in webOS shell too)  Hurl.it (like curl, but a web-based app)  Mashery API Explorer  Chrome Developer Tools  Run chrome with “--allow-file-access- from-files --disable-web-security --enable-file-cookies” flags to allow cross-domain XHR and running like app
  • 10.
    enyo.WebService (1.0)  Componentthat you add to your app  Derived from enyo.Service  Can set many parameters up front or set them when you make the .call  onResponse, onSuccess, and onFailure  url, method, handleAs, headers, username, password properties
  • 11.
    enyo.xhrGet/xhrPost (1.0)  Simpleway to make a GET or POST request without creating a new object  Allows passing callback function instead of setting up event handlers
  • 12.
    enyo.Ajax (2.0)  Non-componentwrapper for XmlHttpRequest  Similar parameters to enyo.WebService  .go() starts request  .response(), .error() register callbacks  User in Flickr example on enyojs.com
  • 13.
    Enyo.JsonpRequest (2.0)  Wayto call JSONP-formatted web services  These allow cross-domain calls  Response is executed as a <script>  Part of the “extras” library, not in core  Mainly useful for web pages  Used in the enyojs.com tutorial
  • 14.
    Getting Help  Postquestions to forums.enyojs.com  #enyojs channel on IRC (freenode)  webchat.freenode.net/?channels=enyojs  3PM EST Q&A Session  Look at samples on github.com/enyojs