Skip to content

igatitech/PicsCollection

Repository files navigation

PicsCollection

PicsCollection is an application which collects photos from your Instagram account and displays in this app. It provides the amazing user experience. PicsCollection supports a slideshow and image viewer that includes double-tap to zoom, animated zooming presentation, interactive transition flick and more…

Key Features:

  • One time login
  • Pull down to reload the image list with animation
  • Display image list with animation
  • Multiple Language Support(English | French | Danish | German | Dutch)
  • Switch between list view and grid view of images with animation
  • Double tap to zoom
  • Zoom In/Out with animations
  • Display images from Instagram with animations
  • Image share option
  • Swipe left/right for next/previous photos
  • Swipe up/down to close the full-screen imageview
  • Supported Portrait and Landscape orientations
  • Logout

How to run the project?

  • Make sure you have an active internet connection and connected with a Physical device or you can use Xcode Simulator too.
  • download or clone the project
  • Open .xcworkspace file from your project folder
  • Run the project from Xcode

Application Screenshots

Portrait (iPhone 6) Landscape (iPhone 6)
iphonep) iPhoneL.gif
Portrait (iPad Air) Landscape (iPad Air)
iPadP.gif iPadL.gif

iPhone Portrait :

alt text alt text alt text alt text alt text

iPhone Landscape:

alt text alt text alt text

iPad Portrait:

alt text alt text alt text

iPad Landscape:

alt text alt text

Instagram Authentication Details

Currently the client registered on Instagram Developer portal is in Sandbox mode, so if you want to Authenticate using your Instagram account then you need to perform certain steps as mentioned below.

Steps to Register a New Client On Instagram Developer Portal
  • Go to Instagram Developer
  • Login with your Instagram account credential details
  • Click on the Register a New Client
  • Submit required details
  • It will provide details such as Client ID, Client Secret(Refer below screenshot)

alt text

  • Important: In Security tab, you need to specify Redirect URI, which should be exactly similar which you are going to write in your code and uncheck Disable implicit OAuth: checkmark
  • Click on Update Client(Refer below screenshot)

alt text

  • Sandbox tab: As you have created a new client, you will be added there by default. So now you can use the application via Instagram Authentication. If you want other users to use your application then you need to add their Instagram Username and those users need to accept your application invitation by login into Instagram Developer -> Sandbox Invites -> Accept Invitation(Refer below screenshots)

alt text

alt text

  • Update Constant.swift file in your project:
struct InstagramIDs {
    static let kInstaAuthURL = "https://api.instagram.com/oauth/authorize/"
    static let kInstaApiURL  = "https://api.instagram.com/v1/users/"
    static let kInstaClientID  = "YOUR_CLIENT_ID"
    static let kInstaClientSecret = "YOUR_CLIENT_SECRET"
    static let kInstaRedirectURI = "YOUR_REDIRECT_URI"
    static let kInstaAccessToken =  "access_token"
    static let kInstaScope = "basic"
    static let kInstaRange = "#access_token="
    static let kInstaDenied = "=user_denied"
}

Ackowledgement

This application has used other third party libraries available on GitHub as mentioned below:

Coding Standards Implemented

  • MVC Architecture
  • Swift Language(Version: 4.1)
  • Followed Apple Human User Interface Guidelines
  • Used Pods for other third-party libraries
  • Used Asset Catalog for Images used in the application
  • App Icon and Launch Image from Asset Catalog
  • Well structured code
  • Proper code commenting
  • Used //MARK: to mark a section of my code
  • Implemented Constant file to store global constants
  • Global files to increase reusability of code
  • Checked Internet Connectivity
  • Managed caching of images for smooth user experience
  • Tried to follow double optional(??) instead of compulsory(!) pattern as and when possible to avoid unnecessary crashes
  • The project contains Code Documentation same as Apple Documentation

Happy Coding! Cheers!! 🥂

How to Contribute?

Have an idea? Found a bug? See how to contribute. Every small or large contribution to this project is appreciated.

Author

You can find more about me here : Gati Shah

If you wish to contact me, Email at: [email protected]

Reach me on: LinkedIn

License

Copyright 2020 iGatiTech

This project is distributed under the terms & conditions of MIT License.

About

Instagram photo collection

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages