apps & widgets

Download Apps & Widgets

Post on 14-Jan-2016

17 views

Category:

Documents

1 download

Embed Size (px)

DESCRIPTION

Apps & Widgets. Scott Wilson [1] CETIS scott.bradley.wilson@gmail.com [2] Apache Wookie (incubating) http://incubator.apache.org/wookie scottbw@apache.org [3] W3C Webapps WG. Widgets. HTML &| SVG. config.xml. JavaScript. CSS. Icon.png. mywidget.wgt. - PowerPoint PPT Presentation

TRANSCRIPT

  • Apps & WidgetsScott Wilson[1] CETISscott.bradley.wilson@gmail.com[2] Apache Wookie (incubating)http://incubator.apache.org/wookiescottbw@apache.org[3] W3C Webapps WG

  • WidgetsHTML &| SVGJavaScriptCSSconfig.xmlmywidget.wgtIcon.png

  • W3C Widgets: for Web, Mobile, or Desktop?Apple DashboardWindows SidebarGoogle DesktopKonfabulatorOpera WidgetsOpenSocialGoogle GadgetsGoogle Wave GadgetsWidgetBoxSpringWidgets

    Nokia WidgetsiPhone AppsAndroid AppsSamsung Bada

  • How about, yes?

  • Basic Widget Authoring ProcessMake a webapp (HTML5, JS, CSS)Make a basic config.xml with name, authorGive it an icon (icon.png)Zip it upChange extension from .zip to .wgt

  • Device APIs: Adding Extra Capabilities to Widget JavaScript

    W3C Widget API

    BONDI (WAC)

    W3 DAP

    W3 GeoAddress BookCalendarFilesMedia capture (camera)MessagingSystemPolicyMedia GalleryTasksComms LogJavaScript

  • function takePicture(){ var camera = bondi.camera.getCameras()[0]; camera.takePicture(function(pic){document.getElementById("picture").src=pic;},function(){alert("nope");}); } Take Picture

  • Feature mapping

    JavaScript

  • Feature mixing!

    You can connect all kinds of functionality to widgets by injecting a JS API for it at runtime - and not just device APIs eitherJavaScriptDid you know that Opera Unite services were W3C Widgets?

  • W3C Widgets are better than websites because they download only the data; and not the core files.

    Widgets are better than app systems because you don't have to write 4, 5, or 10 of them. Just the one is enough.

    And hundreds of thousands of web developers already know how to create widgets.It's just HTML/CSS/JavaScript, after all.- Peter Paul Koch

  • W3C Widget App Stores & Implementations

  • A fundamental part of WAC is to ensure that developers have the simplest method by which they can create applications for the long tail. A key part of this is to endorse and encourage the use of technologies which are based around open standards. WAC plans to initially use both the JIL and OMTP BONDI requirements, evolving these into a common specification within the next 12 months. The long term goal will be to collectively work with the W3C for a common standard based on our converged solution.

  • Aplix WRT for Android

  • Ripple - Emulator for JIL/BONDI widget dev.

  • BlackBerry Widgets is a platform to allow developers to leverage their existing web knowledge to build compelling mobile applications. A BlackBerry Widget combines standard web technologies with local device functionality in a familiar fashion while still providing industry leading security. Based off of the W3C Widget specification, a BlackBerry Widget is an alternative approach to building a mobile application in a native SDK yet still provides the same power and functionality. By using standard web technologies, the barrier for building compelling BlackBerry applications has been significantly lowered.

  • * Wookie is not a clever acronym. so if you spell it WOOKIE youre shouting!A Java server application in the Apache Incubator. Includes a W3C Widget parser library.

    http://incubator.apache.org/wookie

  • How Wookie Works(pretty much* like shindig/opensocial)

  • Integrating WookieConnector FrameworkJava, PHP, Python, C#, FlexPluginsElgg, Wordpress, Jetspeed, Drupal, Moodle, LAMSIMS BasicLTI adapterBlackboard, D2L, Sakai https://code.google.com/p/basiclti4wookie/Backend:JPA, JCRShindig adapter/deployment config*

  • APIParticipants:Userid, display name, profile imageInstancesShared id (e.g. for courses)PropertiesKey, valueWidgetsGallery-type metadata

  • Basic LTI parameterWookie usagelti_message_typeNot usedLti_versionNot usedResource_link_idMapped to shareddatakeyUser_idMapped to useridRolesCan be mapped onto moderator preference setting, or isOwner participant propertyLis_person_name_givenNot usedLis_person_name_familyNot usedLis_person_name_fullMapped to participant.displaynameLis_person_contact_email_primaryNot usedContext_idNot usedContext_typeNot usedContext_titleNot usedContext_labelNot usedLaunch_presentation_localeMapped to locale.Launch_presentation_document_targetCould be mapped to Widget View Modes but is currently not compatible.Launch_presentation_widthNot usedLaunch_presentation_return_urlUsed for redirecting to an error page if a request doesnt workTool_consumer_instance_guidNot usedTool_consumer_instance_nameNot usedTool_consumer_instance_descriptionNot usedTool_consumer_instance_contact_emailNot used

  • MoodleBasic profile info from platform is shared with widgets through plugin

  • LAMS

  • WebCT, Blackboard, D2L, Sakai

  • Elgg etc*(*Wordpress, Apache Wicket, Jetspeed, Simal)

  • A few widget best practices

  • Build widgets to W3C, not for Wookie alone

    Dont rely on special internal Wookie features (e.g. DWR) if it can be avoidedTry to provide fallbacks for installed features which may not be available for other widget containers (e.g. Wave)

  • Consider mobile users tooW3C Widgets can also run in MS Windows Mobile, Opera, Aplix and other platforms - if you design them with mobile use in mindDont navigate or use popups - always use widget.openUrl()Will use device native best practice and user prefs (e.g. switch to mobile browser app, open new tab, prompt user etc)Dont rely on cookies - use widget.preferencesUser may access from different devices; use preferences instead to store user personalisation or tracking info.Do keep your widgets as small as possibleDo follow the W3C mobile web guidelines where it makes sense

  • Security and privacyWhile you can store user credentials in widget.preferences, this is not necessarily a very secure place to put themIn future oAuth may be added to Widgets and Wookie, which will make life a lot easier (see also Apache Amber)Widgets are bound by same-origin policy; until CORS is implemented, you need to use the server-side proxy offered by wookie for AJAX calls. You can use WARP to indicate access is needed in config.xml, e.g.

  • Thanksscottbw@apache.org@scottbwhttp://incubator.apache.org/wookie

    Operas Bubbles widget, on Symbian, Windows Mobile, Mac Desktop (Widgeon), and on the web (Wookie+Jaiku)