nickfalk / Finjinon

Custom iOS camera optimized for taking a sequence of photos quickly and/or selecting from an image picker

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Finjinon

Finjinon is a custom AVFoundation based camera UI, focused on quickly adding several photos. Selecting existing photos from the camera roll is supported through a pluggable interface, a default implementation using UIImagePickerController is provided.

Captured images are provided as an Asset which can retrieve image data asynchrously in order to keep memory usage low.

  • Quickly capture multiple photos (not bursted though)
  • Remove photos
  • Adapter based photo picking from photo library
  • Drag to reorder captured photos (longpress on thumbnail to initiate)

screenshot

Requirements

  • iOS7+
  • Swift 1.2

Installation

If you need to support iOS7 you have to copy the sources in Finjinon into your project. Otherwise there's a Finjinon.podspec available in the repo.

Code Example

    let controller = PhotoCaptureViewController()
    controller.delegate = self
    presentViewController(controller, animated: true, completion: nil)
    
    extension ViewController: PhotoCaptureViewControllerDelegate {
        func photoCaptureViewController(controller: PhotoCaptureViewController, didFinishEditingAssets assets: [Asset]) {
            // assets is an array of structs containing references to the selected images.
            // these are provided as references as opposed to actual UIImages to save memory
            for asset in assets {
                asset.retrieveImageWithWidth(100) { image in
                    // image is a 100pt wide thumbnail
                }
            }
        }
    }

See the included Example project for full API

TODO

  • Localization (Norwegian)
  • iPad support
  • Autoscrolling when reordering near edges (like Springboard)

License

MIT, see LICENSE

About

Custom iOS camera optimized for taking a sequence of photos quickly and/or selecting from an image picker

License:MIT License


Languages

Language:Swift 93.9%Language:Ruby 6.1%