80 likes | 192 Views
PicShare. Akshay Gupta Daniel Levine Michael Brandt. THE IDEA. A lightweight/private Facebook/ Instagram for sharing photos Allows you to create an album and share with friends
E N D
PicShare Akshay Gupta Daniel Levine Michael Brandt
THE IDEA • A lightweight/private Facebook/Instagram for sharing photos • Allows you to create an album and share with friends • Depending on the set album preferences, your friends can then add other photos to the album and like/comment on pictures • Your app will be updated any time a change is made to an album that has been shared with you
WHY? • Facebook/Instagram: • Poor privacy controls • Heavy infrastructure, you have to set up a profile • Photo Stream: • Does not allow for collaboration
DESIGN POINTS • Client-Server model • Centralized server with “master copy” of all data and metadata • PHP/MYSQL backend server and database , iOS app posts to the server through our PHP API • Separation of control and data • On update, server sends out XML metadata skeleton of user’s data • iOS app checks that its data is in sync with the server, and makes changes as necessary
DESIGN POINTS (Cont.) • Apple Push Notification Service (APNS) • User receives push notification upon a change to an album that has been shared with user • However, APNS is not entirely reliable, so our app functions with or without push notifications through our use of XML update • Database consistency • Since our app deals with potentially large photos, we have low bandwidthrelative to size of data • XML metadata skeleton allows us to maintain consistency. If the server doesn’t have it, neither does the user
DESIGN POINTS (Cont.) • MVC Architecture in iOS app • Core Data on top of sqlite to define model classes • NSManagedObjectContext and NSFetchedResultsController to handle updates and database queries • View Controllers to optimize scrolling • Separate metadata from image data to allow fast recycling of views for scrolling and efficient use of memory