SlideShare a Scribd company logo
Mobile Widgets Jose Palazon Mobile Engineer
Where do I start I want to develop a mobile app. Where do I start? Problems Screen resolution and sizes OS and SDKs M emory
Diversity
Write once, best everywhere!
What is blueprint? T h e name of the platform The name of the language You write your apps once in blueprint The platform will make them work in as much devices as possible. Widgets and snippets.
Blueprint guidelines Takes care of UI and interaction You can concentrate on features Create complex elements easily (maps, pagination, …) Choose the best possible experience for each handset No extra effort on your side
Maximum Fidelity Run everywhere we can..
Snippets Live in the mobile home page Have 2 views: normal Extended [opt]
Widgets Have their own set of pages Accessed from carousel
Carousel
Display structure
Blueprint sample <!-- hello_app.xml --> <page> <content> <section> <module> <trigger> <label>Click Me!</label> <load-page event=&quot;activate“ page=&quot;greet.xml&quot; /> </trigger> </module> </section> </content> </page> <!-- greet.xml --> <page id=&quot;greet&quot;> <content> <section> <module> <header layout=&quot;simple&quot;> <layout-items> <block  class=&quot;title&quot;>Greeting</block> </layout-items> </header> <block>Hello World!</block> </module> </section> </content> </page>
Rich set of controls available Navigation bar Image list tables Maps & directions location
Display controls Blocks, placards, image lists, data input (simple, multiline, passwd)… Complex elements: maps, driving directions, pagination … Complete spec document in SDK
Best everywhere
Widget examples
A more complex example: location-based mashup
Detail view of event + map linking to map widget
HTML version: detail view of photo + map
Parts of a widgets Part 1: resides on Y! Servers: C onfig.xml G allery.xml R esources/images Part 2: resides on public Server: Server side code generates your BP
How it works? (HTML) HTML renderer Widget  engine Your server html BP
What’s in the SDK Templates for creating your apps. Code samples A php helper class XML Schemas for validation The blueprint specification guide Readme and release notes
A note on Images Automatic handling of different sizes Naming convention makes it work <name>_<width>x<height>.<extension> Just reference by identifier <image reference=&quot;icon&quot; size=&quot;small&quot;/> Fill-styles only work on uploaded images Check the manual for screen/size optimal sizes.
Server code Use your preferred technology. Just output bluepirnt. Content type application/x-ywidget+xml application/x-ysnippet+xml Cache-control : no-cache
C onfig.xml <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <config xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns=&quot;http://mobile.yahoo.com/widgets/schema/1.0/config/&quot;> <title>YDN Widget</title> <version>1.0</version> <identifier>ydn-widget-1</identifier> <description>YDN Widget</description> <icon>ybang</icon>  <author organization=&quot;Yahoo!&quot; href=&quot;http://developer.yahoo.com&quot; email= [email_address] >Jose Palazon</author> <!-- change this widget base to your server url --> <widget base=&quot;http://www.noletia.com/ydn&quot;> <preview> <icon>ybang</icon>  <label>YDN Widget</label> </preview> <shortcuts> <item default=&quot;true&quot;> <label>YDN Widget</label> <href>index.php</href>  </item> </shortcuts> </widget> </config>
Server side code <?php header( &quot;Content-Type: application/x-ywidget+xml&quot; ); header( &quot;Cache-Control: no-cache&quot; );   $xsl = &quot;ydn.xsl&quot;; $xml = &quot;http://developer.yahoo.com/blog/index.xml&quot;; $xslt =  new  XSLTProcessor(); $xslt->importStyleSheet(DOMDocument::load($xsl)); echo ($xslt->transformToXML(DOMDocument::load($xml))); ?>
Server side code <?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?> <xsl:stylesheet version=&quot;1.0&quot; xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;> <xsl:output method=&quot;xml&quot; encoding=&quot;utf-8&quot;  doctype-public=&quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; doctype-system= http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd indent=&quot;yes&quot;/>   <xsl:template match='//channel'> <page> <content> <section> <header layout=&quot;simple&quot;> <layout-items> <block class=&quot;title&quot;>YDN Widget</block> </layout-items> </header> </section> <xsl:apply-templates select=&quot;item&quot; /> </content> </page> </xsl:template> <xsl:template match=&quot;item&quot;> <placard layout=&quot;card&quot; class=&quot;link&quot;> <layout-items> <image resource=&quot;ybang&quot;/> <block class=&quot;title&quot;><xsl:value-of select=&quot;title&quot;/></block> <block class=&quot;description&quot;><xsl:value-of select=&quot;pubDate&quot;/></block> <block class=&quot;subtext&quot;><xsl:value-of select=&quot;category&quot;/></block> </layout-items> <load resource=&quot;{link}&quot; event=&quot;activate&quot;/> </placard> </xsl:template> </xsl:stylesheet>
Step 4: test your server code Go to your server url in the browser Force content-type firefox extension F rom:  application/x-ywidget+xml to: application/xhtml+xml
Submit your widget to Yahoo!  Zip xml files and resources Use a browser to go to: http://mobile.yahoo.com/developers/test/upload   Go to beta.m.yahoo.com Test!
And it looks like this
Note: Work in progress! For more help: Dev Guide  Developers Group http://tech.groups.yahoo.com/group/yhoomobiledevelopers
Questions? Jose Palazon [email_address]

More Related Content

PPTX
Material Design Android
PDF
Material design basics
PPTX
Semantic views
PPTX
HTML5 for Rich User Experience
PPT
Taking Advantage of Client Side / JavsScript Templates in Rich Internet Appli...
PPT
PDF
WordPress - Visual Composer - Beyond beginning
PDF
Android Lollipop and Material Design
Material Design Android
Material design basics
Semantic views
HTML5 for Rich User Experience
Taking Advantage of Client Side / JavsScript Templates in Rich Internet Appli...
WordPress - Visual Composer - Beyond beginning
Android Lollipop and Material Design

What's hot (8)

PDF
android design pattern
PDF
WordCamp ABQ 2013: Making the leap from Designer to Designer/Developer
PPT
HTML5 Overview
PPT
Html5 Overview
ODP
Devoxx 09 (Belgium)
PDF
How browser accessibility can enhance safe driving (AGL Summit Nov 2020)
PDF
Android Layout 3分クッキング
ODP
Worry free web development
android design pattern
WordCamp ABQ 2013: Making the leap from Designer to Designer/Developer
HTML5 Overview
Html5 Overview
Devoxx 09 (Belgium)
How browser accessibility can enhance safe driving (AGL Summit Nov 2020)
Android Layout 3分クッキング
Worry free web development
Ad

Viewers also liked (12)

PPT
Los sis 1 de julio
PPT
06 presentacion-trabajo colaborativo
PDF
E08 01 (cap4)
PDF
CV MASTER - Copy
PPT
PPS
Em harmonia
PPS
Crystal leticia thompson_o_gosto_de_saudade
PDF
2015 fall leadership conference brochure
PPTX
Call of duty
PPTX
Origen del Mercadeo Social
PPS
Camino de Santiago: A route of culture
Los sis 1 de julio
06 presentacion-trabajo colaborativo
E08 01 (cap4)
CV MASTER - Copy
Em harmonia
Crystal leticia thompson_o_gosto_de_saudade
2015 fall leadership conference brochure
Call of duty
Origen del Mercadeo Social
Camino de Santiago: A route of culture
Ad

Similar to Yahoo Mobile Widgets (20)

PPT
Creating Yahoo Mobile Widgets
PPT
Presentation wpf
PPT
jQuery Mobile
PPT
Developing Applications for WebOS
PPTX
Real-World AJAX with ASP.NET
ODP
IBM Lotus Notes Domino XPages and XPages for Mobile
PPTX
Building apps for multiple devices
PPT
21 android2 updated
PPT
Developing apps on Maemo with Nokia Web Runtime
PPT
HTML5 Fundamentals
PPT
Building Complex GUI Apps The Right Way. With Ample SDK - SWDC2010
PPT
JavaScript and DOM Pattern Implementation
ODP
Geekcamp Android
PPT
Building real-time collaborative apps with Ajax.org Platform
ODP
10 Things You're Not Doing [IBM Lotus Notes Domino Application Development]
PDF
IPhone Web Development With Grails from CodeMash 2009
PPT
Flex For Flash Developers Ff 2006 Final
PPT
EPiServer Web Parts
PPT
Introduction to Alfresco Surf Platform
Creating Yahoo Mobile Widgets
Presentation wpf
jQuery Mobile
Developing Applications for WebOS
Real-World AJAX with ASP.NET
IBM Lotus Notes Domino XPages and XPages for Mobile
Building apps for multiple devices
21 android2 updated
Developing apps on Maemo with Nokia Web Runtime
HTML5 Fundamentals
Building Complex GUI Apps The Right Way. With Ample SDK - SWDC2010
JavaScript and DOM Pattern Implementation
Geekcamp Android
Building real-time collaborative apps with Ajax.org Platform
10 Things You're Not Doing [IBM Lotus Notes Domino Application Development]
IPhone Web Development With Grails from CodeMash 2009
Flex For Flash Developers Ff 2006 Final
EPiServer Web Parts
Introduction to Alfresco Surf Platform

Recently uploaded (20)

PDF
cuic standard and advanced reporting.pdf
PDF
Empathic Computing: Creating Shared Understanding
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Encapsulation theory and applications.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Cloud computing and distributed systems.
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
cuic standard and advanced reporting.pdf
Empathic Computing: Creating Shared Understanding
MIND Revenue Release Quarter 2 2025 Press Release
Review of recent advances in non-invasive hemoglobin estimation
Programs and apps: productivity, graphics, security and other tools
Encapsulation theory and applications.pdf
Encapsulation_ Review paper, used for researhc scholars
Understanding_Digital_Forensics_Presentation.pptx
“AI and Expert System Decision Support & Business Intelligence Systems”
Cloud computing and distributed systems.
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
Chapter 3 Spatial Domain Image Processing.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
sap open course for s4hana steps from ECC to s4
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Unlocking AI with Model Context Protocol (MCP)
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
How UI/UX Design Impacts User Retention in Mobile Apps.pdf

Yahoo Mobile Widgets

  • 1. Mobile Widgets Jose Palazon Mobile Engineer
  • 2. Where do I start I want to develop a mobile app. Where do I start? Problems Screen resolution and sizes OS and SDKs M emory
  • 4. Write once, best everywhere!
  • 5. What is blueprint? T h e name of the platform The name of the language You write your apps once in blueprint The platform will make them work in as much devices as possible. Widgets and snippets.
  • 6. Blueprint guidelines Takes care of UI and interaction You can concentrate on features Create complex elements easily (maps, pagination, …) Choose the best possible experience for each handset No extra effort on your side
  • 7. Maximum Fidelity Run everywhere we can..
  • 8. Snippets Live in the mobile home page Have 2 views: normal Extended [opt]
  • 9. Widgets Have their own set of pages Accessed from carousel
  • 12. Blueprint sample <!-- hello_app.xml --> <page> <content> <section> <module> <trigger> <label>Click Me!</label> <load-page event=&quot;activate“ page=&quot;greet.xml&quot; /> </trigger> </module> </section> </content> </page> <!-- greet.xml --> <page id=&quot;greet&quot;> <content> <section> <module> <header layout=&quot;simple&quot;> <layout-items> <block class=&quot;title&quot;>Greeting</block> </layout-items> </header> <block>Hello World!</block> </module> </section> </content> </page>
  • 13. Rich set of controls available Navigation bar Image list tables Maps & directions location
  • 14. Display controls Blocks, placards, image lists, data input (simple, multiline, passwd)… Complex elements: maps, driving directions, pagination … Complete spec document in SDK
  • 17. A more complex example: location-based mashup
  • 18. Detail view of event + map linking to map widget
  • 19. HTML version: detail view of photo + map
  • 20. Parts of a widgets Part 1: resides on Y! Servers: C onfig.xml G allery.xml R esources/images Part 2: resides on public Server: Server side code generates your BP
  • 21. How it works? (HTML) HTML renderer Widget engine Your server html BP
  • 22. What’s in the SDK Templates for creating your apps. Code samples A php helper class XML Schemas for validation The blueprint specification guide Readme and release notes
  • 23. A note on Images Automatic handling of different sizes Naming convention makes it work <name>_<width>x<height>.<extension> Just reference by identifier <image reference=&quot;icon&quot; size=&quot;small&quot;/> Fill-styles only work on uploaded images Check the manual for screen/size optimal sizes.
  • 24. Server code Use your preferred technology. Just output bluepirnt. Content type application/x-ywidget+xml application/x-ysnippet+xml Cache-control : no-cache
  • 25. C onfig.xml <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <config xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns=&quot;http://mobile.yahoo.com/widgets/schema/1.0/config/&quot;> <title>YDN Widget</title> <version>1.0</version> <identifier>ydn-widget-1</identifier> <description>YDN Widget</description> <icon>ybang</icon> <author organization=&quot;Yahoo!&quot; href=&quot;http://developer.yahoo.com&quot; email= [email_address] >Jose Palazon</author> <!-- change this widget base to your server url --> <widget base=&quot;http://www.noletia.com/ydn&quot;> <preview> <icon>ybang</icon> <label>YDN Widget</label> </preview> <shortcuts> <item default=&quot;true&quot;> <label>YDN Widget</label> <href>index.php</href> </item> </shortcuts> </widget> </config>
  • 26. Server side code <?php header( &quot;Content-Type: application/x-ywidget+xml&quot; ); header( &quot;Cache-Control: no-cache&quot; );   $xsl = &quot;ydn.xsl&quot;; $xml = &quot;http://developer.yahoo.com/blog/index.xml&quot;; $xslt = new XSLTProcessor(); $xslt->importStyleSheet(DOMDocument::load($xsl)); echo ($xslt->transformToXML(DOMDocument::load($xml))); ?>
  • 27. Server side code <?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?> <xsl:stylesheet version=&quot;1.0&quot; xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;> <xsl:output method=&quot;xml&quot; encoding=&quot;utf-8&quot; doctype-public=&quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; doctype-system= http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd indent=&quot;yes&quot;/>   <xsl:template match='//channel'> <page> <content> <section> <header layout=&quot;simple&quot;> <layout-items> <block class=&quot;title&quot;>YDN Widget</block> </layout-items> </header> </section> <xsl:apply-templates select=&quot;item&quot; /> </content> </page> </xsl:template> <xsl:template match=&quot;item&quot;> <placard layout=&quot;card&quot; class=&quot;link&quot;> <layout-items> <image resource=&quot;ybang&quot;/> <block class=&quot;title&quot;><xsl:value-of select=&quot;title&quot;/></block> <block class=&quot;description&quot;><xsl:value-of select=&quot;pubDate&quot;/></block> <block class=&quot;subtext&quot;><xsl:value-of select=&quot;category&quot;/></block> </layout-items> <load resource=&quot;{link}&quot; event=&quot;activate&quot;/> </placard> </xsl:template> </xsl:stylesheet>
  • 28. Step 4: test your server code Go to your server url in the browser Force content-type firefox extension F rom: application/x-ywidget+xml to: application/xhtml+xml
  • 29. Submit your widget to Yahoo! Zip xml files and resources Use a browser to go to: http://mobile.yahoo.com/developers/test/upload Go to beta.m.yahoo.com Test!
  • 30. And it looks like this
  • 31. Note: Work in progress! For more help: Dev Guide Developers Group http://tech.groups.yahoo.com/group/yhoomobiledevelopers
  • 32. Questions? Jose Palazon [email_address]