Apps & Widgets Scott Wilson [1] CETIS [2] Apache Wookie (incubating)

Slides:



Advertisements
Similar presentations
1 The phone in the cloud Utilizing resources hosted anywhere Claes Nilsson.
Advertisements

Using Evernote and Google Docs in your web or mobile application (and potentially Dropbox and Skydrive) By Peter Messenger Senior Developer – Triple Point.
Mobile App Development Using: Presented by Tyler Richey Images from
CSS216 MOBILE PROGRAMMING Android Book: “Professional Android™ 2 Application Development” by Reto Meier, 2010 by: Andrey Bogdanchikov (
Mobile at USC Common Solutions Group University of Minnesota, June 2011.
Web Server Programming
State of the mobile web Peter-Paul Koch Gomez Webinar, 24 March 2011 z.
Component OneJQuery MobileVisual WebGUI Comparison of three mobile site development frameworks.
Widget Architecture. Terminology Widget, Gadget, Tool, Badge Widget Engine, Gadget Container, Widget Host Runtime Environment, Tool Proxy Runtime, Widget.
THE SCO GROUP 2007 © The SCO Group, Inc. All Rights Reserved 1 SCO Mobile Server and Web 2.0 Albert Fu, SCO Advanced Technology Group Alexander Sack, Lead.
© 2009 Research In Motion Limited Methods of application development for mobile devices.
A problem in IMS Learning Design To promote interoperability, few services Local tool frameworks like LAMS have much richer tool environment –Easy provisioning.
MWD1001 – Website Production Web Browsers Week 11.
October 16, 2007HighEdWebDev2007 Single Source Website for Full Spectrum Access Rick Ells University of Washington
Native vs hybrid vs web mobile Application
Developing Content for Mobile Devices Larry D. Lee Web Developer for K4Health.
SEEM4570: XAMPP, Eclipse, Summary of Html Kangfei Zhao Room 711,ERB
Creation of hybrid portlet application for file download using IBM Worklight and IBM Rational Application Developer v9 Gaurav Bhattacharjee Lakshmi Priya.
Presented by…. Group 2 1. Programming language 2Introduction.
Sharing Geographic Content
Mobile Web Applications
After Your First Web Course; Where to Go from Here Bill Pegram April 23, 2014.
OpenSocial ANATOMY AND LIFE CYCLE Paul Lindner, Architect, Hi5 Networks November 27th, 2007.
Mobile App Support Jacob Poirier Geri Hengesbach Andrea Menke Erin Rossell.
DIRAC Web User Interface A.Casajus (Universitat de Barcelona) M.Sapunov (CPPM Marseille) On behalf of the LHCb DIRAC Team.
RTCWEB Signaling Matthew Kaufman. Scope Web Server Browser.
Introduction CIS 136 Building Mobile Apps 1. What is a mobile app? 2  Computer program  Designed for small devices  Smartphones  Tablets  Other handhelds.
UB Mobile Past and present Demo of UB Mobile 2.0 Technologies used (and not used) UB Mobile Advisory Council.
INTRODUCTION TO HTML5 Geolocation. Display a Specific Location with Google Maps  You can use the Google Maps API to display a custom map on your own.
PACS - 09/19/15 1 favicon A ‘Favorite icon’ is a file containing one or more small icons associated with a particular website or web page. Web browsers.
HTML5 for Mobile Andrew Kinai. HTML vs HTML5 HTML:A language that describes documents' formatting and content, which is basically composed of static text.
Beyond the Browser: HTML5 and the Evolving Mobile Web Chris Smith & Laurent Hasson Research In Motion.
FIspace SPT Seyhun Futaci. Technology behind FIspace Authentication and Authorization IDM service of Fispace provides SSO solution for web apps, mobile.
The mobile browser world Peter-Paul Koch Albany, 14 April 2011.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Social Media Apps Programming Min-Yuh Day, Ph.D. Assistant Professor Department of Information Management Tamkang University
Extend the Operations Dashboard with Custom Widgets (and more)
Evolving Interfaces to Impacting Technology: The Mobile TeraGrid User Portal Rion Dooley, Stephen Mock, Maytal Dahan, Praveen Nuthulapati, Patrick Hurley.
Trunica Inc. 500 East Kennedy Blvd #300 Tampa, FL Cross Platform Mobile Apps With Cordova and Visual Studio 2015 © Copyright 2015.
Basics of testing mobile apps
© OMTP All rights reserved Slide 1 To consistently and securely open up access from web applications to device and network resident capabilities Dr Nicholas.
Use flash eBook software AnyFlip to make page flip book works seamlessly on mobile devices.
1 KaaShiv InfoTech  Presents  INTEL XDK For Inplant Training / Internship, please download the "Inplant training registration form" from our website.
Power Guru: Implementing Smart Power Management on the Android Platform Written by Raef Mchaymech.
Paragon The Platform and Message Broker. Paragon: The Platform Stack -Window Management -Messaging -App Lifecycle Management -App Store -Workspaces -Storage.
丁建文 國立高雄應用科大資管系副教授 兼任計網中心軟體發展組組長 跨平台行動應用軟體開發技術 : HTML5 & Mobile JavaScript Framework 暨南大學.
JavaScript 사용현황 김민철. Table of contents  1. Mobile  WAC  PhoneGap  AppsPresso  2. TV  Samsung Smart TV  KT IPTV  3. 기타  node.js 2.
INTRODUCING HYBRID APP KAU with MICT PARK IT COMPANIES Supported by KOICA
APP DESIGN AND DEVELOPMENT WITH THE IONIC FRAMEWORK Chuck Leone
Phonegap API & Phonegap Bridge CIS 136 Building Mobile Apps 1.
Build Cross-Platform Mobile Apps Using Visual Studio A Telerik webinar by Jeffrey T. Fritz March 27, 2014 AND.
1 Jeff McWherter Director of Development Do I Really Need a Mobile App, Or Is a Mobile-Friendly Website Enough? Do I Really Need a Mobile App, Or Is a.
PhoneGap. web-based mobile development framework, based on the open-source Cordova project. use standard web technologies such as HTML5, CSS3, and JavaScript.
Breaking down widget silos with a friendly Wookie Sander van der Waal
Apache Wookie (Incubating) Building a real widget
Apache Wookie (Incubating) Creating your first widget Ross Gardler
Breaking down widget silos with a friendly Wookie Ross Gardler With thanks.
Mobile App Development Using:
A little more App Inventor and Mind the GAP!
ET-570 Smart Phone Apps.
Browsers and Web Platforms
Building Internet Applications With Mozilla XULRunner
Apache Cordova Overview
Web App vs Mobile App.
Compile, Build, and Debug
The Application Lifecycle
Auth0 Is Identity Made Simple for Developers, Built by Developers and Supported by the High Availability and Performance of Microsoft Azure MICROSOFT AZURE.
Phonegap Bridge Configuration file
And I have to create mobile apps too?
Office 365 Development.
Presentation transcript:

Apps & Widgets Scott Wilson [1] CETIS [2] Apache Wookie (incubating) [3] W3C Webapps WG

Widgets HTML &| SVG JavaScript CSS config.xml mywidget.wgt Icon.png

W3C Widgets: for Web, Mobile, or Desktop? Apple Dashboard Windows Sidebar Google Desktop Konfabulator Opera Widgets OpenSocial Google Gadgets Google Wave Gadgets WidgetBox SpringWidgets Nokia Widgets iPhone Apps Android Apps Samsung Bada

How about, “yes”?

Basic Widget Authoring Process Make a webapp (HTML5, JS, CSS) Make a basic config.xml with name, author Give it an icon (icon.png) Zip it up Change extension from.zip to.wgt

Device APIs: Adding Extra Capabilities to Widget JavaScript W3C Widget API BONDI (WAC) W3 DAP W3 Geo Address Book Calendar Files Media capture (camera) Messaging System Policy Media Gallery Tasks Comms Log JavaScript

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

Feature mapping <feature name=“ required=“true” /> 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 either JavaScript Did 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 you’re shouting! A Java server application in the Apache Incubator. Includes a W3C Widget parser library.

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

Integrating Wookie Connector Framework –Java, PHP, Python, C#, Flex… Plugins –Elgg, Wordpress, Jetspeed, Drupal, Moodle, LAMS… IMS BasicLTI adapter –Blackboard, D2L, Sakai … – Backend: –JPA, JCR –Shindig adapter/deployment config*

API Participants: –Userid, display name, profile image Instances –Shared id (e.g. for courses) Properties –Key, value Widgets –Gallery-type metadata

Basic LTI parameterWookie usage lti_message_typeNot used Lti_versionNot used Resource_link_idMapped to shareddatakey User_idMapped to userid RolesCan be mapped onto “moderator” preference setting, or “isOwner” participant property Lis_person_name_givenNot used Lis_person_name_familyNot used Lis_person_name_fullMapped to participant.displayname Lis_person_contact_ _primaryNot used Context_idNot used Context_typeNot used Context_titleNot used Context_labelNot used Launch_presentation_localeMapped to locale. Launch_presentation_document_targetCould be mapped to Widget View Modes but is currently not compatible. Launch_presentation_widthNot used Launch_presentation_return_urlUsed for redirecting to an error page if a request doesn’t work Tool_consumer_instance_guidNot used Tool_consumer_instance_nameNot used Tool_consumer_instance_descriptionNot used Tool_consumer_instance_contact_ Not used

Moodle… Basic 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 –Don’t rely on special internal Wookie features (e.g. DWR) if it can be avoided –Try to provide fallbacks for installed features which may not be available for other widget containers (e.g. Wave)

Consider mobile users too W3C Widgets can also run in MS Windows Mobile, Opera, Aplix and other platforms - if you design them with mobile use in mind Don’t 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) Don’t rely on cookies - use widget.preferences –User may access from different devices; use preferences instead to store user personalisation or tracking info. Do keep your widgets as small as possible Do follow the W3C mobile web guidelines where it makes sense

Security and privacy While you can store user credentials in widget.preferences, this is not necessarily a very secure place to put them In 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.