SlideShare a Scribd company logo
1 of 15
Download to read offline
SlideShare for the iPad
                             Tarik Bilgin
                            Robin Kansara


                           SJSU CMPE 277
                           Prof. Dan Harkey


Thursday, May 20, 2010
www.slideshare.net

                    • Community website
                    • The ‘YouTube’ of slideshow presentations
                    • users upload and share
                    • users search, browse, and view

Thursday, May 20, 2010
Project Vision

                    • To create an iPad application
                    • Using slideshare.net as a data source
                    • As iPhone devs wanted to experience iPad
                         development
                    • Explore iPad UI Design paradigms

Thursday, May 20, 2010
SlideShare API

                    • REST API
                    • XML over HTTP
                    • number of methods supported
                    • search method implemented

Thursday, May 20, 2010
Search Method URL

                    •    http://www.slideshare.net/api/2/search_slideshows?
                         api_key=WFb6FGbR&ts=1274391804&hash=4feb64060786d3a51747b9974e
                         3d5a0a81e82151&q=mobiles

                         •   API key = WFb6FGbR

                         •   timestamp = 1274391804

                         •   HMAC = 4feb64060786d3a51747b9974e3d5a0a81e82151

                         •   search string = mobiles




Thursday, May 20, 2010
Sample XML Response
           <Slideshows>
           <Slideshow>
             <ID>{ slideshow id }</ID>
             <Description>{ slideshow description }</Description>
             <Status>{ 0 if queued for conversion, 1 if converting, 2 if
                                      converted,3 if conversion failed }
             </Status>
             <Username>{ username }</Username>
             <URL>{ web permalink }</URL>
             <ThumbnailURL>{ thumbnail URL }</ThumbnailURL>
             <ThumbnailSmallURL>
                 { URL of smaller thumbnail }
             </ThumbnailSmallURL>
             <Embed>{ embed code }</Embed>
             <Created>{ date slideshow created }</Created>
             <Language>
               { language, as specified by two-letter code }
             </Language>
             <Format>ppt (or pdf, pps, odp, doc, pot, txt, rdf) </Format>
             <Download>{ 1 if available to download, else 0 }</Download>
           </Slideshow>
           ...
           </Slideshows>
Thursday, May 20, 2010
Demo




Thursday, May 20, 2010
XML Parsing
                    •    Tree parse vs Event Parse

                    •    Event parse, because memory efficiency/speed

                    •    NSXMLParser - delegate methods

                         •   parser:didStartElement:namespaceURI:qualified
                             Name:attributes:

                         •   parser:foundCharacters:

                         •   parser:didEndElement:namespaceURI:qualifiedN
                             ame:


Thursday, May 20, 2010
UI Design Basics

                    • We want to use the large screen
                    • UITabBarController for user stories
                    • UINavigationController for navigation
                         within each use case




Thursday, May 20, 2010
UI Design Process
                    • UITableViewController
                     • Rejected - designed for small screen
                    • UISplitViewController
                     • Rejected - not suitable for this scenario
                    • YouTube app UI style
                     • Approved - but not documented!
Thursday, May 20, 2010
YouTube on iPad




Thursday, May 20, 2010
AQGridView

                    • to our rescue from iPadDevCamp San Jose
                    • Jim Dovey, open sourced
                    • limited documentation
                    • Subclasses UIScrollView

Thursday, May 20, 2010
Grid View
                         Implementation




Thursday, May 20, 2010
An Observation
                    •    Asynchronous vs. Synchronous network communication

                    •    Apple recommends Asynchronous for a better user experience

                    •    Many developers avoid it at first

                         •   more complicated to implement

                         •   much simpler than traditional threading

                             •   callbacks to delegate methods

                                 •   connectionDidFinishLoading

                                 •   connectionDidReceiveResponse



Thursday, May 20, 2010
Synchronous Demo




Thursday, May 20, 2010

More Related Content

Similar to Explore the SlideShare API and UI Design for an iPad Application

Red Dirt Ruby Conference
Red Dirt Ruby ConferenceRed Dirt Ruby Conference
Red Dirt Ruby ConferenceJohn Woodell
 
jQuery Comes to XPages
jQuery Comes to XPagesjQuery Comes to XPages
jQuery Comes to XPagesTeamstudio
 
Gaelyk - SpringOne2GX - 2010 - Guillaume Laforge
Gaelyk - SpringOne2GX - 2010 - Guillaume LaforgeGaelyk - SpringOne2GX - 2010 - Guillaume Laforge
Gaelyk - SpringOne2GX - 2010 - Guillaume LaforgeGuillaume Laforge
 
jQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPagesjQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPagesTeamstudio
 
Beyond Fluffy Bunny. How I leveraged WebObjects in my lean startup.
Beyond Fluffy Bunny. How I leveraged WebObjects in my lean startup.Beyond Fluffy Bunny. How I leveraged WebObjects in my lean startup.
Beyond Fluffy Bunny. How I leveraged WebObjects in my lean startup.WO Community
 
uPortal Roadmap Community Call: uPortal 3.2 and Beyond
uPortal Roadmap Community Call: uPortal 3.2 and BeyonduPortal Roadmap Community Call: uPortal 3.2 and Beyond
uPortal Roadmap Community Call: uPortal 3.2 and BeyondJasig uPortal Project
 
Laug comet intro july 2010
Laug comet intro july 2010Laug comet intro july 2010
Laug comet intro july 2010Skills Matter
 
London Ajax User Group Meetup: Comet Panel
London Ajax User Group Meetup: Comet PanelLondon Ajax User Group Meetup: Comet Panel
London Ajax User Group Meetup: Comet Paneldylanks
 
Cvcc performance tuning
Cvcc performance tuningCvcc performance tuning
Cvcc performance tuningJohn McCaffrey
 
Mvvm knockout vs angular
Mvvm knockout vs angularMvvm knockout vs angular
Mvvm knockout vs angularBasarat Syed
 
From Ruby on Rails to RubyMotion - Writing your First iOS App with RubyMotion
From Ruby on Rails to RubyMotion - Writing your First iOS App with RubyMotionFrom Ruby on Rails to RubyMotion - Writing your First iOS App with RubyMotion
From Ruby on Rails to RubyMotion - Writing your First iOS App with RubyMotionMichael Denomy
 
BBC News: Responsive Web Design and Mustard
BBC News: Responsive Web Design and MustardBBC News: Responsive Web Design and Mustard
BBC News: Responsive Web Design and MustardKaelig Deloumeau-Prigent
 

Similar to Explore the SlideShare API and UI Design for an iPad Application (20)

Red Dirt Ruby Conference
Red Dirt Ruby ConferenceRed Dirt Ruby Conference
Red Dirt Ruby Conference
 
App Engine Meetup
App Engine MeetupApp Engine Meetup
App Engine Meetup
 
jQuery Comes to XPages
jQuery Comes to XPagesjQuery Comes to XPages
jQuery Comes to XPages
 
Gaelyk - SpringOne2GX - 2010 - Guillaume Laforge
Gaelyk - SpringOne2GX - 2010 - Guillaume LaforgeGaelyk - SpringOne2GX - 2010 - Guillaume Laforge
Gaelyk - SpringOne2GX - 2010 - Guillaume Laforge
 
jQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPagesjQuery: The World's Most Popular JavaScript Library Comes to XPages
jQuery: The World's Most Popular JavaScript Library Comes to XPages
 
Wheel.js
Wheel.jsWheel.js
Wheel.js
 
Beyond Fluffy Bunny. How I leveraged WebObjects in my lean startup.
Beyond Fluffy Bunny. How I leveraged WebObjects in my lean startup.Beyond Fluffy Bunny. How I leveraged WebObjects in my lean startup.
Beyond Fluffy Bunny. How I leveraged WebObjects in my lean startup.
 
uPortal Roadmap Community Call: uPortal 3.2 and Beyond
uPortal Roadmap Community Call: uPortal 3.2 and BeyonduPortal Roadmap Community Call: uPortal 3.2 and Beyond
uPortal Roadmap Community Call: uPortal 3.2 and Beyond
 
Laug comet intro july 2010
Laug comet intro july 2010Laug comet intro july 2010
Laug comet intro july 2010
 
London Ajax User Group Meetup: Comet Panel
London Ajax User Group Meetup: Comet PanelLondon Ajax User Group Meetup: Comet Panel
London Ajax User Group Meetup: Comet Panel
 
Cvcc performance tuning
Cvcc performance tuningCvcc performance tuning
Cvcc performance tuning
 
Mvvm knockout vs angular
Mvvm knockout vs angularMvvm knockout vs angular
Mvvm knockout vs angular
 
Railsconf 2010
Railsconf 2010Railsconf 2010
Railsconf 2010
 
From Ruby on Rails to RubyMotion - Writing your First iOS App with RubyMotion
From Ruby on Rails to RubyMotion - Writing your First iOS App with RubyMotionFrom Ruby on Rails to RubyMotion - Writing your First iOS App with RubyMotion
From Ruby on Rails to RubyMotion - Writing your First iOS App with RubyMotion
 
Stackato v3
Stackato v3Stackato v3
Stackato v3
 
Stackato v4
Stackato v4Stackato v4
Stackato v4
 
Stackato v6
Stackato v6Stackato v6
Stackato v6
 
Stackato v5
Stackato v5Stackato v5
Stackato v5
 
WSGI, Django, Gunicorn
WSGI, Django, GunicornWSGI, Django, Gunicorn
WSGI, Django, Gunicorn
 
BBC News: Responsive Web Design and Mustard
BBC News: Responsive Web Design and MustardBBC News: Responsive Web Design and Mustard
BBC News: Responsive Web Design and Mustard
 

Explore the SlideShare API and UI Design for an iPad Application

  • 1. SlideShare for the iPad Tarik Bilgin Robin Kansara SJSU CMPE 277 Prof. Dan Harkey Thursday, May 20, 2010
  • 2. www.slideshare.net • Community website • The ‘YouTube’ of slideshow presentations • users upload and share • users search, browse, and view Thursday, May 20, 2010
  • 3. Project Vision • To create an iPad application • Using slideshare.net as a data source • As iPhone devs wanted to experience iPad development • Explore iPad UI Design paradigms Thursday, May 20, 2010
  • 4. SlideShare API • REST API • XML over HTTP • number of methods supported • search method implemented Thursday, May 20, 2010
  • 5. Search Method URL • http://www.slideshare.net/api/2/search_slideshows? api_key=WFb6FGbR&ts=1274391804&hash=4feb64060786d3a51747b9974e 3d5a0a81e82151&q=mobiles • API key = WFb6FGbR • timestamp = 1274391804 • HMAC = 4feb64060786d3a51747b9974e3d5a0a81e82151 • search string = mobiles Thursday, May 20, 2010
  • 6. Sample XML Response <Slideshows> <Slideshow> <ID>{ slideshow id }</ID> <Description>{ slideshow description }</Description> <Status>{ 0 if queued for conversion, 1 if converting, 2 if converted,3 if conversion failed } </Status> <Username>{ username }</Username> <URL>{ web permalink }</URL> <ThumbnailURL>{ thumbnail URL }</ThumbnailURL> <ThumbnailSmallURL> { URL of smaller thumbnail } </ThumbnailSmallURL> <Embed>{ embed code }</Embed> <Created>{ date slideshow created }</Created> <Language> { language, as specified by two-letter code } </Language> <Format>ppt (or pdf, pps, odp, doc, pot, txt, rdf) </Format> <Download>{ 1 if available to download, else 0 }</Download> </Slideshow> ... </Slideshows> Thursday, May 20, 2010
  • 8. XML Parsing • Tree parse vs Event Parse • Event parse, because memory efficiency/speed • NSXMLParser - delegate methods • parser:didStartElement:namespaceURI:qualified Name:attributes: • parser:foundCharacters: • parser:didEndElement:namespaceURI:qualifiedN ame: Thursday, May 20, 2010
  • 9. UI Design Basics • We want to use the large screen • UITabBarController for user stories • UINavigationController for navigation within each use case Thursday, May 20, 2010
  • 10. UI Design Process • UITableViewController • Rejected - designed for small screen • UISplitViewController • Rejected - not suitable for this scenario • YouTube app UI style • Approved - but not documented! Thursday, May 20, 2010
  • 12. AQGridView • to our rescue from iPadDevCamp San Jose • Jim Dovey, open sourced • limited documentation • Subclasses UIScrollView Thursday, May 20, 2010
  • 13. Grid View Implementation Thursday, May 20, 2010
  • 14. An Observation • Asynchronous vs. Synchronous network communication • Apple recommends Asynchronous for a better user experience • Many developers avoid it at first • more complicated to implement • much simpler than traditional threading • callbacks to delegate methods • connectionDidFinishLoading • connectionDidReceiveResponse Thursday, May 20, 2010