Skip to content

mohsinalimat/HybridCamera

 
 

Repository files navigation

version badge codebeat badge Lang platform Carthage compatible

img

Features

  • Records video and takes photos
  • Flash on/off
  • Front / Back camera
  • Hold to recordVideo
  • Tap to take photo
  • Tap to focus / set exposure
  • Pinch to zoom
  • Looping video/photo preview with share button
  • Callback based (Great for RX)
  • View based (Great for animation rich UI/UX)
  • Supports background music (Doesn't pause Spotify etc)
  • Stores photo/video in temp dir
  • Throw oriented code (allows external handling of errors)
  • Persistent app authorization
  • Animated record button (white to red transition)

Why use this camera framework

  • High codebeat GPA
  • Low class scoped variable count (In order to better handle overall state)
  • Setup errors can be handled from the POV of the initiator
  • Operation errors is handled in the onCapture completion block
  • Callback based (as oppose to delegate based) More info
  • Easily styleable (The camera view is separate from the UI view)
  • No third-party libraries or Sugar
  • Entirely programatic (No storyboard)
  • Thoroughly documented (Artifacts and sideEffects etc)
  • Uses Linkdin style guide

Notes:

  • In order to keep things simple, The UI is CGRect based. Use your own Autolayout distro like SnapKit etc when adding additional UI

Install:

  • Carthage: github "eonist/HybridCam" "master"
  • Manual: Open HybridCamera.xcodeproj
  • CocoaPod (Coming soon)

IMPORTANT: Make sure info.plist has these variables

Privacy - Microphone Usage Description   
Privacy - Camera Usage Description  
Privacy - Photo Library Additions Usage Description  

Video:

img

Example code:

self.view = HybridCamView()
view.camView.onPhotoCaptureComplete = { (image:UIImage?,url:URL?,error:Error?) in
   Swift.print("On photo capture complete \(url)")
}
hybridCamView.camView.onVideoCaptureComplete = { (url:URL?,error:Error?) in
   Swift.print("On Video capture complete \(url)")
}

Todo:

  • Add support for more orientation modes (Currently only supports portrait)
  • Add support for error resolution from the POV of initiating the camera
  • Make UI with AutoLayout 👈
  • Make lib carthage support ✅
  • Fix AudioBug ✅
  • Fix FontCamera bug w/ IphoneX ✅
  • Add Spatial, Chaplin as an option to HybridCam 👈
  • Add CI-Travis 👈

About

Video and photo camera for iOS

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Swift 99.3%
  • Objective-C 0.7%