slideshare presentation
TRANSCRIPT
SlideShare for the iPadTarik Bilgin
Robin Kansara
SJSU CMPE 277Prof. 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=4feb64060786d3a51747b9974e3d5a0a81e82151&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:qualifiedName:attributes:
• parser:foundCharacters:
• parser:didEndElement:namespaceURI:qualifiedName:
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