slideshare presentation

15
SlideShare for the iPad Tarik Bilgin Robin Kansara SJSU CMPE 277 Prof. Dan Harkey Thursday, May 20, 2010

Upload: panipuri-soft-limited

Post on 13-May-2015

621 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Slideshare presentation

SlideShare for the iPadTarik Bilgin

Robin Kansara

SJSU CMPE 277Prof. Dan Harkey

Thursday, May 20, 2010

Page 2: Slideshare presentation

www.slideshare.net

• Community website

• The ‘YouTube’ of slideshow presentations

• users upload and share

• users search, browse, and view

Thursday, May 20, 2010

Page 3: Slideshare presentation

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

Page 4: Slideshare presentation

SlideShare API

• REST API

• XML over HTTP

• number of methods supported

• search method implemented

Thursday, May 20, 2010

Page 6: Slideshare presentation

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

Page 7: Slideshare presentation

Demo

Thursday, May 20, 2010

Page 8: Slideshare presentation

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

Page 9: Slideshare presentation

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

Page 10: Slideshare presentation

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

Page 11: Slideshare presentation

YouTube on iPad

Thursday, May 20, 2010

Page 12: Slideshare presentation

AQGridView

• to our rescue from iPadDevCamp San Jose

• Jim Dovey, open sourced

• limited documentation

• Subclasses UIScrollView

Thursday, May 20, 2010

Page 13: Slideshare presentation

Grid View Implementation

Thursday, May 20, 2010

Page 14: Slideshare presentation

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

Page 15: Slideshare presentation

Synchronous Demo

Thursday, May 20, 2010