SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
The	
  PuReWidgets	
  toolkit	
  for	
  
 interac6ve	
  public	
  display	
  
          applica6ons	
  

            Jorge	
  C.	
  S.	
  Cardoso	
  
          jorgecardoso@ieee.org	
  
                           	
  
            Ubicomp@UMinho	
  	
  
               May	
  30,	
  2012	
  


                                               1	
  
Content	
  
•    Mo6va6on	
  
•    PuReWidgets	
  features	
  
•    Architecture	
  
•    Applica6on	
  models	
  
•    Programming	
  library	
  overview	
  
•    HelloWorld	
  



                                              2	
  
Mo6va6on	
  
Complexity	
  of	
  incorpora6ng	
  interac6ve	
  features	
  in	
  public	
  display	
  applica6ons.	
  
Too	
  many	
  things	
  to	
  answer	
  when	
  designing	
  the	
  interac6on	
  for	
  a	
  public	
  display	
  
applica6on:	
  
•    What	
  controls	
  can	
  we	
  use	
  to	
  offer	
  interac6ve	
  features	
  to	
  users?	
  
      –  No	
  standard	
  interac6ve	
  controls	
  for	
  public	
  displays	
  
•    What	
  interac6on	
  mechanisms	
  can	
  be	
  used	
  to	
  provide	
  those	
  features?	
  
       –  Various	
  possible	
  interac6on	
  mechanisms	
  (SMS,	
  BT	
  naming,	
  OBEX,	
  Email,	
  IM,	
  mobile	
  app,	
  
          desktop,	
  QR	
  codes,	
  touch,	
  etc.)	
  
       –  Different	
  loca6ons	
  may	
  have	
  different	
  interac6on	
  resources	
  
•    How	
  will	
  those	
  features	
  work?	
  
       –  Desktop	
  interac6on	
  paradigm	
  does	
  not	
  generally	
  apply	
  
       –  Applica6ons	
  may	
  not	
  always	
  be	
  visible	
  
•    How	
  can	
  the	
  applica6on	
  react	
  to	
  different	
  users?	
  
       –  The	
  interac6on	
  environment	
  is	
  mul6-­‐user	
  
       –  We	
  need	
  to	
  iden6fy/differen6ate	
  users	
  
•    How	
  can	
  users	
  tell	
  what	
  they	
  can	
  do	
  with	
  the	
  applica6on?	
  
       –  Where	
  are	
  the	
  features	
  presented?	
  



                                                                                                                                      3	
  
Mo6va6on	
  
We	
  can	
  solve	
  all	
  those	
  ques6ons	
  for	
  ad	
  hoc	
  applica6ons,	
  but	
  

•  This	
  means	
  wasted	
  effort	
  in	
  developing	
  applica6ons	
  
     –  Programmers	
  must	
  deal	
  with	
  issues	
  extraneous	
  to	
  the	
  main	
  
        applica6on	
  logic	
  
•  Will	
  certainly	
  lead	
  to	
  inconsistencies	
  in	
  the	
  interac6on	
  
   model	
  
     –  Each	
  solu6on	
  will	
  behave	
  slightly	
  differently	
  
     –  Will	
  confuse	
  users	
  

We	
  need	
  a	
  programming	
  toolkit	
  for	
  interac6ve	
  public	
  display	
  
applica6ons!	
  

                                                                                                4	
  
Toolkit	
  
•  The	
  toolkit	
  should	
  provide	
  a	
  consistent	
  model	
  
   for	
  user	
  interac6on	
  and	
  applica6on	
  
   development	
  
    –  But	
  s6ll	
  allow	
  some	
  diversity	
  in	
  solu6ons	
  




                                                                         5	
  
PuReWidgets	
  
•  PuReWidgets	
  tries	
  to	
  solve	
  these	
  problems.	
  
•  To	
  make	
  sure	
  it	
  covers	
  a	
  wide	
  range	
  of	
  
   applica6ons,	
  we	
  looked	
  at	
  various	
  interac6ve	
  
   public	
  display	
  systems	
  to	
  learn	
  
   –  General	
  requirements	
  
   –  Types	
  of	
  controls	
  
   –  Types	
  of	
  input	
  mechanisms	
  



                                                                        6	
  
PuReWidgets	
  
Widget-­‐based	
  toolkit.	
  	
  

•  A	
  widget	
  represents	
  an	
  interac6ve	
  feature.	
  
•  Is	
  represented	
  by	
  class	
  in	
  an	
  object-­‐oriented	
  programming	
  model.	
  
•  Applica6ons	
  instan6ate	
  widgets,	
  define	
  a	
  callback,	
  and	
  receive	
  
   interac6on	
  event	
  through	
  the	
  callback	
  	
  
•  Main	
  features	
  
      –    Mul6ple,	
  extensible,	
  controls	
  
      –    Independence	
  of	
  input	
  mechanisms	
  and	
  modali6es	
  
      –    Automa6cally	
  generated	
  graphical	
  interfaces	
  
      –    Asynchronous	
  interac6on	
  
      –    Concurrent	
  interac6on 	
            	
   	
  	
  
      –    Graphical	
  affordances	
  
      –    Server	
  &	
  client	
  libraries	
  

                                                                                                    7	
  
Features	
  
Mul6ple,	
  extensible,	
  controls.	
  	
  
	
  
•  Allows	
  developers	
  to	
  create	
  rich	
  interac6ve	
  applica6ons.	
  Controls	
  can	
  be	
  extended	
  with	
  custom	
  
     func6onality.	
  
•  We	
  studied	
  various	
  interac6ve	
  display	
  systems	
  to	
  define	
  a	
  set	
  of	
  basic	
  interac6ve	
  controls,	
  common	
  to	
  the	
  
     majority	
  of	
  applica6ons:	
  

•     Ac6on	
  bugon	
  
         –    Trigger	
  an	
  ac6on	
  in	
  the	
  applica6on,	
  e.g.,	
  play	
  a	
  video	
  
•     Op6on	
  selec6on	
  
         –    Selects	
  among	
  a	
  set	
  of	
  op6ons,	
  e.g.,	
  to	
  vote	
  
•     Text	
  entry	
  
         –    Sends	
  text	
  to	
  the	
  applica6on,	
  e.g.,	
  a	
  comment,	
  tag,	
  search	
  keyword	
  
•     Download	
  
         –    Receives	
  a	
  media	
  file	
  from	
  the	
  applica6on,	
  e.g.,	
  download	
  poster	
  
•     Upload	
  
         –    Uploads	
  a	
  media	
  file	
  to	
  the	
  applica6on,	
  e.g.,	
  a	
  photo	
  to	
  be	
  displayed	
  
•     Check-­‐in	
  
         –    Says	
  “I’m	
  here”	
  


                                                                                                                                                             8	
  
Features	
  
Independence	
  of	
  input	
  mechanisms	
  and	
  modali6es.	
  	
  
•  Allows	
  developers	
  to	
  focus	
  on	
  the	
  core	
  
   applica6on	
  func6onality	
  and	
  not	
  on	
  the	
  low-­‐level	
  
   interac6on	
  details.	
  
•  Allows	
  applica6ons	
  to	
  work	
  in	
  heterogeneous	
  
   loca6ons,	
  with	
  different	
  mechanism	
  	
  
•  Interac6on	
  can	
  be	
  accomplished	
  with	
  various	
  
   mechanisms	
  (SMS,	
  Bluetooth	
  naming,	
  QR	
  codes,	
  
   and	
  automa6cally	
  generated	
  graphical	
  
   interfaces).	
  
                                                                         9	
  
Features	
  
Automa6cally	
  generated	
  graphical	
  interfaces.	
  	
  
•  Provide	
  a	
  richer	
  interac6on	
  for	
  desktop	
  and	
  
   mobile	
  devices.	
  

•  PuReWidgets	
  generates	
  web-­‐based	
  interfaces	
  
   for	
  each	
  applica6on.	
  	
  
•  It	
  also	
  generates	
  QR	
  codes	
  for	
  each	
  
   applica6on's	
  feature	
  	
  
                                                                       10	
  
Features	
  
Asynchronous	
  interac6on.	
  	
  
•  Allows	
  applica6ons	
  to	
  receive	
  input	
  events	
  
   that	
  were	
  generated	
  when	
  the	
  applica6on	
  
   was	
  not	
  listening.	
  

•  PuReWidgets	
  provides	
  a	
  persistent	
  input	
  
   queue	
  for	
  each	
  applica6on	
  
•  Applica6ons	
  can	
  request	
  past	
  input	
  at	
  any	
  
   6me	
  
                                                                     11	
  
Features	
  
Concurrent	
  interac6on.	
  	
  
•  Allows	
  various	
  users	
  to	
  interact	
  at	
  the	
  same	
  
   6me,	
  while	
  providing	
  applica6ons	
  with	
  
   iden6ty	
  informa6on	
  that	
  allows	
  them	
  to	
  
   differen6ate	
  users.	
  

•  Every	
  input	
  event	
  carries	
  a	
  user	
  id	
  (if	
  available)	
  
    –  Where	
  possible,	
  anonymous	
  interac6ons	
  are	
  s6ll	
  
       “iden6fied”	
  (more	
  on	
  this	
  later)	
  

                                                                              12	
  
Features	
  
Graphical	
  affordances.	
  	
  
•  Allows	
  users	
  to	
  immediately	
  recognize	
  interac6ve	
  
   features	
  and	
  input	
  feedback.	
  

•  Controls	
  have	
  an	
  op6onal	
  graphical	
  
   representa6on	
  that	
  can	
  be	
  used	
  on	
  the	
  public	
  
   display	
  interface.	
  
    –  Applica6ons	
  may	
  not	
  show	
  the	
  features	
  on	
  the	
  public	
  
       display,	
  but	
  they	
  will	
  s6ll	
  be	
  available	
  	
  
•  Input	
  feedback	
  is	
  also	
  (op6onally)	
  displayed	
  on	
  
   the	
  public	
  display.	
  
                                                                                     13	
  
Features	
  
Server	
  &	
  client	
  libraries.	
  	
  
•  Programmers	
  can	
  choose	
  to	
  use	
  just	
  the	
  
   server,	
  just	
  the	
  client,	
  or	
  both	
  libraries	
  
   together.	
  
•  Allows	
  developers	
  to	
  choose	
  the	
  best	
  
   applica6on	
  model.	
  



                                                                      14	
  
PuReWidgets	
  Architecture	
  




                                  15	
  
Interac6on	
  services	
  
•  PuReWidgets	
  service	
  
    –  Keeps	
  informa6on	
  about	
  every	
  widget	
  
    –  Generates	
  graphical	
  interfaces	
  for	
  desktop,	
  mobile,	
  touch	
  
       plaporms	
  	
  
         •  These	
  allow	
  anonymous	
  interac6ons,	
  but	
  they	
  generate	
  persistent	
  
            cookie-­‐based	
  random	
  ids.	
  
    –  Generates	
  QR	
  codes	
  for	
  every	
  widget	
  
    –  Generates	
  unique	
  textural	
  reference	
  codes	
  for	
  data-­‐based	
  
       interac6ons	
  (SMS,	
  BT	
  naming,	
  OBEX,	
  etc.)	
  
•  IO	
  infrastructure	
  
    –  (from	
  Instant	
  places)	
  
    –  Provides	
  low-­‐level	
  data-­‐based	
  interac6on	
  


                                                                                                  16	
  
PuReWidgets	
  library	
  
•  Provides	
  an	
  object-­‐oriented	
  library	
  of	
  widgets	
  
•  Hides	
  the	
  communica6on	
  details	
  with	
  the	
  
   PuReWidgets	
  service	
  
•  Provides	
  other	
  features,	
  unrelated	
  to	
  interac6on,	
  
   such	
  as	
  
    –  Applica6on	
  “place-­‐aware”	
  storage	
  
        •  PuReWidgets	
  provides	
  a	
  name-­‐value	
  server	
  datastore	
  for	
  
           easy	
  storage	
  of	
  place-­‐specific	
  seqngs/state	
  
    –  Skeleton	
  admin	
  interface	
  for	
  place-­‐owners	
  
        •  To	
  configure	
  place-­‐specific	
  seqngs	
  


                                                                                            17	
  
Local	
  applica6on	
  model	
  




                                   18	
  
Local	
  applica6on	
  model	
  
•  Applica6on	
  logic	
  on	
  the	
  public	
  display	
  (player)	
  
    –  Subject	
  to	
  the	
  schedule	
  6mings	
  
•  May	
  not	
  be	
  able	
  to	
  react	
  (or	
  update	
  data	
  
   structures)	
  immediately	
  when	
  user	
  interacts	
  
    –  But	
  will	
  eventually	
  (when	
  it	
  is	
  displayed	
  again)	
  
•  When	
  displayed,	
  the	
  toolkit	
  periodically	
  asks	
  
   the	
  service	
  for	
  input	
  events	
  
    –  And	
  triggers	
  the	
  appropriate	
  widget	
  event	
  

                                                                                   19	
  
Remote	
  applica6on	
  model	
  




                                    20	
  
Remote	
  applica6on	
  model	
  
•  Applica6on	
  logic	
  on	
  the	
  server	
  
•  Can	
  react	
  (or	
  update	
  data	
  structures)	
  
   immediately	
  to	
  user	
  input	
  
    –  Even	
  if	
  not	
  on	
  the	
  public	
  display,	
  the	
  reac6on	
  can	
  
       be	
  visible	
  on	
  other	
  channels	
  
•  The	
  toolkit	
  periodically	
  asks	
  the	
  service	
  for	
  
   input	
  events	
  
    –  And	
  triggers	
  the	
  appropriate	
  widget	
  event	
  

                                                                                       21	
  
PuReWidgets	
  Implementa6on	
  
•  Google	
  Appengine	
  (server)	
  
•  Google	
  Web	
  Toolkit	
  –	
  GWT	
  
   (client)	
  
•  Overview	
  of	
  the	
  library	
  




                                              22	
  
Using	
  PuReWidgets	
  
•  Hello	
  World	
  applica6on	
  (local	
  model)	
  
•  Video	
  




                                                          23	
  
Ini6al	
  Evalua6on/Development	
  
                          process	
  
•  Two	
  applica6ons	
  developed	
  
   so	
  far	
  (ignore	
  the	
  “graphic	
  design”,	
  please)	
  
      –  Youtube	
  player,	
  media	
  
         intensive,	
  complex	
  graphical	
  
         components	
  (several	
  panels	
  
         that	
  change	
  over	
  6me),	
  local	
  
         applica6on	
  model	
  
      –  Everybody	
  votes,	
  based	
  on	
  
         display	
  owner	
  created	
  content,	
  
         simpler	
  graphical	
  component,	
  
         combines	
  remote	
  and	
  local	
  
         applica6on	
  models	
  

                                                                        24	
  
Ini6al	
  Evalua6on/Development	
  
                     process	
  
•  Con6nuous	
  refinement	
  
   –  Develop	
  interac6ve	
  public	
  display	
  applica6ons	
  
   –  Gain	
  more	
  insight	
  about	
  the	
  difficul6es	
  	
  	
  
   –  Refine	
  the	
  toolkit	
  to	
  address	
  the	
  iden6fied	
  
      problems	
  
   –  Refactor	
  the	
  applica6ons	
  to	
  include	
  the	
  toolkit	
  
      changes	
  



                                                                              25	
  
Summary	
  
•  PuReWidgets	
  facilitates	
  applica6on	
  
   development	
  
   –  Provides	
  ready-­‐to-­‐use	
  interac6ve	
  controls	
  
   –  Integrates	
  various	
  input	
  mechanisms	
  via	
  an	
  I/O	
  
      infrastructure	
  
   –  Generates	
  applica6on	
  interfaces	
  for	
  desktop,	
  
      mobile,	
  and	
  QR	
  codes	
  
   –  Provides	
  client	
  and	
  server	
  applica6on	
  
      development	
  models	
  

                                                                             26	
  
The	
  end	
  




                 27	
  

Más contenido relacionado

Similar a PuReWidgets toolkit

Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018
Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018
Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018UX Antwerp Meetup
 
OpenMRS Reference Application, Getting Started
OpenMRS Reference Application, Getting StartedOpenMRS Reference Application, Getting Started
OpenMRS Reference Application, Getting Starteddjazayeri
 
Embedded Systems.pdf
Embedded Systems.pdfEmbedded Systems.pdf
Embedded Systems.pdfruvabebe
 
The Case for Low-code Development
The Case for Low-code DevelopmentThe Case for Low-code Development
The Case for Low-code DevelopmentLinx
 
Microservices - Yet another buzzword
Microservices - Yet another buzzwordMicroservices - Yet another buzzword
Microservices - Yet another buzzwordOvidiu Dimulescu
 
2. the aegis story building an accessible application
2. the aegis story   building an accessible application2. the aegis story   building an accessible application
2. the aegis story building an accessible applicationAEGIS-ACCESSIBLE Projects
 
Enabling High Level Application Development In The Internet Of Things
Enabling High Level Application Development In The Internet Of ThingsEnabling High Level Application Development In The Internet Of Things
Enabling High Level Application Development In The Internet Of ThingsPankesh Patel
 
Assessing Feedback for Indirect Shared Interaction
Assessing Feedback for Indirect Shared InteractionAssessing Feedback for Indirect Shared Interaction
Assessing Feedback for Indirect Shared InteractionJorge Cardoso
 
Microservice pitfalls
Microservice pitfalls Microservice pitfalls
Microservice pitfalls Mite Mitreski
 
Challenges In Building Enterprise Mashups - Rick B
Challenges In Building Enterprise Mashups - Rick BChallenges In Building Enterprise Mashups - Rick B
Challenges In Building Enterprise Mashups - Rick BRoopa Nadkarni
 
5 challenges in_building_enterprise_mashups-rick_b
5 challenges in_building_enterprise_mashups-rick_b5 challenges in_building_enterprise_mashups-rick_b
5 challenges in_building_enterprise_mashups-rick_bIBM
 
Chapter 10 authoring
Chapter 10 authoringChapter 10 authoring
Chapter 10 authoringshelly3160
 
Synapse india reviews on asp.net mobile application
Synapse india reviews on asp.net mobile applicationSynapse india reviews on asp.net mobile application
Synapse india reviews on asp.net mobile applicationsaritasingh19866
 
Microservices + Oracle: A Bright Future
Microservices + Oracle: A Bright FutureMicroservices + Oracle: A Bright Future
Microservices + Oracle: A Bright FutureKelly Goetsch
 
Dublin Unity User Group Meetup Sept 2015
Dublin Unity User Group Meetup Sept 2015Dublin Unity User Group Meetup Sept 2015
Dublin Unity User Group Meetup Sept 2015Dominique Boutin
 
MD-I-CH-ppt.ppt
MD-I-CH-ppt.pptMD-I-CH-ppt.ppt
MD-I-CH-ppt.pptbharatt7
 

Similar a PuReWidgets toolkit (20)

Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018
Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018
Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018
 
OpenMRS Reference Application, Getting Started
OpenMRS Reference Application, Getting StartedOpenMRS Reference Application, Getting Started
OpenMRS Reference Application, Getting Started
 
Embedded Systems.pdf
Embedded Systems.pdfEmbedded Systems.pdf
Embedded Systems.pdf
 
Service worker API
Service worker APIService worker API
Service worker API
 
The Case for Low-code Development
The Case for Low-code DevelopmentThe Case for Low-code Development
The Case for Low-code Development
 
Mule ESB Intro
Mule ESB IntroMule ESB Intro
Mule ESB Intro
 
Software Engineering 2014
Software Engineering 2014Software Engineering 2014
Software Engineering 2014
 
Microservices - Yet another buzzword
Microservices - Yet another buzzwordMicroservices - Yet another buzzword
Microservices - Yet another buzzword
 
2. the aegis story building an accessible application
2. the aegis story   building an accessible application2. the aegis story   building an accessible application
2. the aegis story building an accessible application
 
Enabling High Level Application Development In The Internet Of Things
Enabling High Level Application Development In The Internet Of ThingsEnabling High Level Application Development In The Internet Of Things
Enabling High Level Application Development In The Internet Of Things
 
Assessing Feedback for Indirect Shared Interaction
Assessing Feedback for Indirect Shared InteractionAssessing Feedback for Indirect Shared Interaction
Assessing Feedback for Indirect Shared Interaction
 
Microservice pitfalls
Microservice pitfalls Microservice pitfalls
Microservice pitfalls
 
Challenges In Building Enterprise Mashups - Rick B
Challenges In Building Enterprise Mashups - Rick BChallenges In Building Enterprise Mashups - Rick B
Challenges In Building Enterprise Mashups - Rick B
 
5 challenges in_building_enterprise_mashups-rick_b
5 challenges in_building_enterprise_mashups-rick_b5 challenges in_building_enterprise_mashups-rick_b
5 challenges in_building_enterprise_mashups-rick_b
 
Chapter Ten
Chapter TenChapter Ten
Chapter Ten
 
Chapter 10 authoring
Chapter 10 authoringChapter 10 authoring
Chapter 10 authoring
 
Synapse india reviews on asp.net mobile application
Synapse india reviews on asp.net mobile applicationSynapse india reviews on asp.net mobile application
Synapse india reviews on asp.net mobile application
 
Microservices + Oracle: A Bright Future
Microservices + Oracle: A Bright FutureMicroservices + Oracle: A Bright Future
Microservices + Oracle: A Bright Future
 
Dublin Unity User Group Meetup Sept 2015
Dublin Unity User Group Meetup Sept 2015Dublin Unity User Group Meetup Sept 2015
Dublin Unity User Group Meetup Sept 2015
 
MD-I-CH-ppt.ppt
MD-I-CH-ppt.pptMD-I-CH-ppt.ppt
MD-I-CH-ppt.ppt
 

Más de Jorge Cardoso

Criação de Ambientes de Realidade Virtual usando A-Frame - CubeCraft Toys -...
Criação de Ambientes  de Realidade Virtual  usando A-Frame - CubeCraft Toys -...Criação de Ambientes  de Realidade Virtual  usando A-Frame - CubeCraft Toys -...
Criação de Ambientes de Realidade Virtual usando A-Frame - CubeCraft Toys -...Jorge Cardoso
 
Criação de Ambientes de Realidade Virtual usando A-Frame
Criação de Ambientes  de Realidade Virtual  usando A-FrameCriação de Ambientes  de Realidade Virtual  usando A-Frame
Criação de Ambientes de Realidade Virtual usando A-FrameJorge Cardoso
 
Journal of Science and Technology of the Arts
Journal of Science and Technology of the ArtsJournal of Science and Technology of the Arts
Journal of Science and Technology of the ArtsJorge Cardoso
 
Evaluation of Multi-Platform Mobile AR Frameworks for Roman Mosaic Augmentation
Evaluation of Multi-Platform Mobile AR Frameworks for Roman Mosaic AugmentationEvaluation of Multi-Platform Mobile AR Frameworks for Roman Mosaic Augmentation
Evaluation of Multi-Platform Mobile AR Frameworks for Roman Mosaic AugmentationJorge Cardoso
 
ConímbrigAR A Prototype Augmented Mobile Application for Exploration of Roman...
ConímbrigAR A Prototype Augmented Mobile Application for Exploration of Roman...ConímbrigAR A Prototype Augmented Mobile Application for Exploration of Roman...
ConímbrigAR A Prototype Augmented Mobile Application for Exploration of Roman...Jorge Cardoso
 
Digital tools for exploring roman mosaic
Digital tools for exploring roman mosaicDigital tools for exploring roman mosaic
Digital tools for exploring roman mosaicJorge Cardoso
 
Interaction techniques for locomotion in virtual reality
Interaction techniques for locomotion in virtual realityInteraction techniques for locomotion in virtual reality
Interaction techniques for locomotion in virtual realityJorge Cardoso
 
Evaluation of a programming toolkit for interactive public display applications
Evaluation of a programming toolkit for interactive public display applicationsEvaluation of a programming toolkit for interactive public display applications
Evaluation of a programming toolkit for interactive public display applicationsJorge Cardoso
 
Interaction modalities, technologies and tools for interactive art
Interaction modalities, technologies and tools for interactive artInteraction modalities, technologies and tools for interactive art
Interaction modalities, technologies and tools for interactive artJorge Cardoso
 
Conceitos fundamentais de_programacao
Conceitos fundamentais de_programacao Conceitos fundamentais de_programacao
Conceitos fundamentais de_programacao Jorge Cardoso
 
Computer vision techniques for interactive art
Computer vision techniques for interactive artComputer vision techniques for interactive art
Computer vision techniques for interactive artJorge Cardoso
 
Introdução à Programacao em Processing
Introdução à Programacao em Processing Introdução à Programacao em Processing
Introdução à Programacao em Processing Jorge Cardoso
 
Introdução à Programação para iPhone (iOS)
Introdução à Programação para iPhone (iOS)Introdução à Programação para iPhone (iOS)
Introdução à Programação para iPhone (iOS)Jorge Cardoso
 
Introdução à programação para Android
Introdução à programação para AndroidIntrodução à programação para Android
Introdução à programação para AndroidJorge Cardoso
 
Conceitos Fundamentais de Programacao
Conceitos Fundamentais de ProgramacaoConceitos Fundamentais de Programacao
Conceitos Fundamentais de ProgramacaoJorge Cardoso
 
Jitter: Comunicação em rede
Jitter: Comunicação em redeJitter: Comunicação em rede
Jitter: Comunicação em redeJorge Cardoso
 
Jitter: visao por computador
Jitter:  visao por computadorJitter:  visao por computador
Jitter: visao por computadorJorge Cardoso
 

Más de Jorge Cardoso (20)

Criação de Ambientes de Realidade Virtual usando A-Frame - CubeCraft Toys -...
Criação de Ambientes  de Realidade Virtual  usando A-Frame - CubeCraft Toys -...Criação de Ambientes  de Realidade Virtual  usando A-Frame - CubeCraft Toys -...
Criação de Ambientes de Realidade Virtual usando A-Frame - CubeCraft Toys -...
 
Criação de Ambientes de Realidade Virtual usando A-Frame
Criação de Ambientes  de Realidade Virtual  usando A-FrameCriação de Ambientes  de Realidade Virtual  usando A-Frame
Criação de Ambientes de Realidade Virtual usando A-Frame
 
Journal of Science and Technology of the Arts
Journal of Science and Technology of the ArtsJournal of Science and Technology of the Arts
Journal of Science and Technology of the Arts
 
Evaluation of Multi-Platform Mobile AR Frameworks for Roman Mosaic Augmentation
Evaluation of Multi-Platform Mobile AR Frameworks for Roman Mosaic AugmentationEvaluation of Multi-Platform Mobile AR Frameworks for Roman Mosaic Augmentation
Evaluation of Multi-Platform Mobile AR Frameworks for Roman Mosaic Augmentation
 
ConímbrigAR A Prototype Augmented Mobile Application for Exploration of Roman...
ConímbrigAR A Prototype Augmented Mobile Application for Exploration of Roman...ConímbrigAR A Prototype Augmented Mobile Application for Exploration of Roman...
ConímbrigAR A Prototype Augmented Mobile Application for Exploration of Roman...
 
Digital tools for exploring roman mosaic
Digital tools for exploring roman mosaicDigital tools for exploring roman mosaic
Digital tools for exploring roman mosaic
 
Interaction techniques for locomotion in virtual reality
Interaction techniques for locomotion in virtual realityInteraction techniques for locomotion in virtual reality
Interaction techniques for locomotion in virtual reality
 
Evaluation of a programming toolkit for interactive public display applications
Evaluation of a programming toolkit for interactive public display applicationsEvaluation of a programming toolkit for interactive public display applications
Evaluation of a programming toolkit for interactive public display applications
 
Interaction modalities, technologies and tools for interactive art
Interaction modalities, technologies and tools for interactive artInteraction modalities, technologies and tools for interactive art
Interaction modalities, technologies and tools for interactive art
 
Oop java
Oop javaOop java
Oop java
 
Conceitos fundamentais de_programacao
Conceitos fundamentais de_programacao Conceitos fundamentais de_programacao
Conceitos fundamentais de_programacao
 
Computer vision techniques for interactive art
Computer vision techniques for interactive artComputer vision techniques for interactive art
Computer vision techniques for interactive art
 
Introdução à Programacao em Processing
Introdução à Programacao em Processing Introdução à Programacao em Processing
Introdução à Programacao em Processing
 
Introdução à Programação para iPhone (iOS)
Introdução à Programação para iPhone (iOS)Introdução à Programação para iPhone (iOS)
Introdução à Programação para iPhone (iOS)
 
Introdução à programação para Android
Introdução à programação para AndroidIntrodução à programação para Android
Introdução à programação para Android
 
OOP Java
OOP JavaOOP Java
OOP Java
 
OOP ObjC
OOP ObjCOOP ObjC
OOP ObjC
 
Conceitos Fundamentais de Programacao
Conceitos Fundamentais de ProgramacaoConceitos Fundamentais de Programacao
Conceitos Fundamentais de Programacao
 
Jitter: Comunicação em rede
Jitter: Comunicação em redeJitter: Comunicação em rede
Jitter: Comunicação em rede
 
Jitter: visao por computador
Jitter:  visao por computadorJitter:  visao por computador
Jitter: visao por computador
 

Último

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 

Último (20)

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 

PuReWidgets toolkit

  • 1. The  PuReWidgets  toolkit  for   interac6ve  public  display   applica6ons   Jorge  C.  S.  Cardoso   jorgecardoso@ieee.org     Ubicomp@UMinho     May  30,  2012   1  
  • 2. Content   •  Mo6va6on   •  PuReWidgets  features   •  Architecture   •  Applica6on  models   •  Programming  library  overview   •  HelloWorld   2  
  • 3. Mo6va6on   Complexity  of  incorpora6ng  interac6ve  features  in  public  display  applica6ons.   Too  many  things  to  answer  when  designing  the  interac6on  for  a  public  display   applica6on:   •  What  controls  can  we  use  to  offer  interac6ve  features  to  users?   –  No  standard  interac6ve  controls  for  public  displays   •  What  interac6on  mechanisms  can  be  used  to  provide  those  features?   –  Various  possible  interac6on  mechanisms  (SMS,  BT  naming,  OBEX,  Email,  IM,  mobile  app,   desktop,  QR  codes,  touch,  etc.)   –  Different  loca6ons  may  have  different  interac6on  resources   •  How  will  those  features  work?   –  Desktop  interac6on  paradigm  does  not  generally  apply   –  Applica6ons  may  not  always  be  visible   •  How  can  the  applica6on  react  to  different  users?   –  The  interac6on  environment  is  mul6-­‐user   –  We  need  to  iden6fy/differen6ate  users   •  How  can  users  tell  what  they  can  do  with  the  applica6on?   –  Where  are  the  features  presented?   3  
  • 4. Mo6va6on   We  can  solve  all  those  ques6ons  for  ad  hoc  applica6ons,  but   •  This  means  wasted  effort  in  developing  applica6ons   –  Programmers  must  deal  with  issues  extraneous  to  the  main   applica6on  logic   •  Will  certainly  lead  to  inconsistencies  in  the  interac6on   model   –  Each  solu6on  will  behave  slightly  differently   –  Will  confuse  users   We  need  a  programming  toolkit  for  interac6ve  public  display   applica6ons!   4  
  • 5. Toolkit   •  The  toolkit  should  provide  a  consistent  model   for  user  interac6on  and  applica6on   development   –  But  s6ll  allow  some  diversity  in  solu6ons   5  
  • 6. PuReWidgets   •  PuReWidgets  tries  to  solve  these  problems.   •  To  make  sure  it  covers  a  wide  range  of   applica6ons,  we  looked  at  various  interac6ve   public  display  systems  to  learn   –  General  requirements   –  Types  of  controls   –  Types  of  input  mechanisms   6  
  • 7. PuReWidgets   Widget-­‐based  toolkit.     •  A  widget  represents  an  interac6ve  feature.   •  Is  represented  by  class  in  an  object-­‐oriented  programming  model.   •  Applica6ons  instan6ate  widgets,  define  a  callback,  and  receive   interac6on  event  through  the  callback     •  Main  features   –  Mul6ple,  extensible,  controls   –  Independence  of  input  mechanisms  and  modali6es   –  Automa6cally  generated  graphical  interfaces   –  Asynchronous  interac6on   –  Concurrent  interac6on         –  Graphical  affordances   –  Server  &  client  libraries   7  
  • 8. Features   Mul6ple,  extensible,  controls.       •  Allows  developers  to  create  rich  interac6ve  applica6ons.  Controls  can  be  extended  with  custom   func6onality.   •  We  studied  various  interac6ve  display  systems  to  define  a  set  of  basic  interac6ve  controls,  common  to  the   majority  of  applica6ons:   •  Ac6on  bugon   –  Trigger  an  ac6on  in  the  applica6on,  e.g.,  play  a  video   •  Op6on  selec6on   –  Selects  among  a  set  of  op6ons,  e.g.,  to  vote   •  Text  entry   –  Sends  text  to  the  applica6on,  e.g.,  a  comment,  tag,  search  keyword   •  Download   –  Receives  a  media  file  from  the  applica6on,  e.g.,  download  poster   •  Upload   –  Uploads  a  media  file  to  the  applica6on,  e.g.,  a  photo  to  be  displayed   •  Check-­‐in   –  Says  “I’m  here”   8  
  • 9. Features   Independence  of  input  mechanisms  and  modali6es.     •  Allows  developers  to  focus  on  the  core   applica6on  func6onality  and  not  on  the  low-­‐level   interac6on  details.   •  Allows  applica6ons  to  work  in  heterogeneous   loca6ons,  with  different  mechanism     •  Interac6on  can  be  accomplished  with  various   mechanisms  (SMS,  Bluetooth  naming,  QR  codes,   and  automa6cally  generated  graphical   interfaces).   9  
  • 10. Features   Automa6cally  generated  graphical  interfaces.     •  Provide  a  richer  interac6on  for  desktop  and   mobile  devices.   •  PuReWidgets  generates  web-­‐based  interfaces   for  each  applica6on.     •  It  also  generates  QR  codes  for  each   applica6on's  feature     10  
  • 11. Features   Asynchronous  interac6on.     •  Allows  applica6ons  to  receive  input  events   that  were  generated  when  the  applica6on   was  not  listening.   •  PuReWidgets  provides  a  persistent  input   queue  for  each  applica6on   •  Applica6ons  can  request  past  input  at  any   6me   11  
  • 12. Features   Concurrent  interac6on.     •  Allows  various  users  to  interact  at  the  same   6me,  while  providing  applica6ons  with   iden6ty  informa6on  that  allows  them  to   differen6ate  users.   •  Every  input  event  carries  a  user  id  (if  available)   –  Where  possible,  anonymous  interac6ons  are  s6ll   “iden6fied”  (more  on  this  later)   12  
  • 13. Features   Graphical  affordances.     •  Allows  users  to  immediately  recognize  interac6ve   features  and  input  feedback.   •  Controls  have  an  op6onal  graphical   representa6on  that  can  be  used  on  the  public   display  interface.   –  Applica6ons  may  not  show  the  features  on  the  public   display,  but  they  will  s6ll  be  available     •  Input  feedback  is  also  (op6onally)  displayed  on   the  public  display.   13  
  • 14. Features   Server  &  client  libraries.     •  Programmers  can  choose  to  use  just  the   server,  just  the  client,  or  both  libraries   together.   •  Allows  developers  to  choose  the  best   applica6on  model.   14  
  • 16. Interac6on  services   •  PuReWidgets  service   –  Keeps  informa6on  about  every  widget   –  Generates  graphical  interfaces  for  desktop,  mobile,  touch   plaporms     •  These  allow  anonymous  interac6ons,  but  they  generate  persistent   cookie-­‐based  random  ids.   –  Generates  QR  codes  for  every  widget   –  Generates  unique  textural  reference  codes  for  data-­‐based   interac6ons  (SMS,  BT  naming,  OBEX,  etc.)   •  IO  infrastructure   –  (from  Instant  places)   –  Provides  low-­‐level  data-­‐based  interac6on   16  
  • 17. PuReWidgets  library   •  Provides  an  object-­‐oriented  library  of  widgets   •  Hides  the  communica6on  details  with  the   PuReWidgets  service   •  Provides  other  features,  unrelated  to  interac6on,   such  as   –  Applica6on  “place-­‐aware”  storage   •  PuReWidgets  provides  a  name-­‐value  server  datastore  for   easy  storage  of  place-­‐specific  seqngs/state   –  Skeleton  admin  interface  for  place-­‐owners   •  To  configure  place-­‐specific  seqngs   17  
  • 19. Local  applica6on  model   •  Applica6on  logic  on  the  public  display  (player)   –  Subject  to  the  schedule  6mings   •  May  not  be  able  to  react  (or  update  data   structures)  immediately  when  user  interacts   –  But  will  eventually  (when  it  is  displayed  again)   •  When  displayed,  the  toolkit  periodically  asks   the  service  for  input  events   –  And  triggers  the  appropriate  widget  event   19  
  • 21. Remote  applica6on  model   •  Applica6on  logic  on  the  server   •  Can  react  (or  update  data  structures)   immediately  to  user  input   –  Even  if  not  on  the  public  display,  the  reac6on  can   be  visible  on  other  channels   •  The  toolkit  periodically  asks  the  service  for   input  events   –  And  triggers  the  appropriate  widget  event   21  
  • 22. PuReWidgets  Implementa6on   •  Google  Appengine  (server)   •  Google  Web  Toolkit  –  GWT   (client)   •  Overview  of  the  library   22  
  • 23. Using  PuReWidgets   •  Hello  World  applica6on  (local  model)   •  Video   23  
  • 24. Ini6al  Evalua6on/Development   process   •  Two  applica6ons  developed   so  far  (ignore  the  “graphic  design”,  please)   –  Youtube  player,  media   intensive,  complex  graphical   components  (several  panels   that  change  over  6me),  local   applica6on  model   –  Everybody  votes,  based  on   display  owner  created  content,   simpler  graphical  component,   combines  remote  and  local   applica6on  models   24  
  • 25. Ini6al  Evalua6on/Development   process   •  Con6nuous  refinement   –  Develop  interac6ve  public  display  applica6ons   –  Gain  more  insight  about  the  difficul6es       –  Refine  the  toolkit  to  address  the  iden6fied   problems   –  Refactor  the  applica6ons  to  include  the  toolkit   changes   25  
  • 26. Summary   •  PuReWidgets  facilitates  applica6on   development   –  Provides  ready-­‐to-­‐use  interac6ve  controls   –  Integrates  various  input  mechanisms  via  an  I/O   infrastructure   –  Generates  applica6on  interfaces  for  desktop,   mobile,  and  QR  codes   –  Provides  client  and  server  applica6on   development  models   26  
  • 27. The  end   27