BeniCheni / DorianGray

Self-Made Instagram Skinny Version with Customized Features on iOS

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

DorianGray

Dorian Gray as a name may be the perfect parody for a little photo viewing app.

'Picture-in-Picture' Zoomed Out Effect in Full-Screen Image Mode

Version 1.2 Highlights
  • Like button with spinner animation
  • Like count
  • Save 'Like' button state locally when the button is toggled
  • UX Improvements
    • "No Image" placeholder image before downloaded image arrives
    • Updated image height constraints and image loading on scrolling to fine-tune UX
    • Update GCD queues' priorities to fine-tune scrolling performance
No-Image placeholder while images are downloading

Like Button & Count

Version 1.1 Highlights
  • Full screen mode to view images (Instagram app does not have full screen viewing feature; Understand that Instagram is trying to remain square-size photos); Single tap gesture to enter/exist between table view and full-screen mode
  • Simple custom animation implementation for toggling between table view and full-screen mode
  • Double tap gesture on full-screen would zoom out image to a smaller scale with the existing table view on background; Pinch gesture to rotate image to see basic animation
  • Share button to use iPhone standard menu that offers standard features such as saving images locally, mailing, etc. (Instagram app won't let you save the images locally yet.)
  • Long-presse gesture on table view's image cell would bring up the same iPhone standard menu
  • Use AFNetwork framework
  • GCD (Grand Central Dispatch) implementation with multiple threads with different priorities, around image download, archiving images locally and retrieving images
  • Retrieve and render only visible images on the deceleration of scrolling to mimic lazy-loading, or load just-in-time behavior
  • Various code improvements and fixes

Full Screen Mode

Version 1.0 Highlights
  • Integrated with Instagram API with login & authentication
  • Infinitive Scroll
  • Pull-to-Refresh
  • NSNotificationCenter pattern to manage data changes between models and API
  • KVO (Key-Value Observing) pattern to manage touch events
  • Programmatic constraints to manage auto-layouts
  • Fluency of subclassing UITableView, UITableviewcell, UIWebView

More features are coming...

Instagram Integration Demo

Demo with randomly generated static data in previous version:

About

Self-Made Instagram Skinny Version with Customized Features on iOS


Languages

Language:Objective-C 100.0%Language:Ruby 0.0%