Skip to content
Video and photo camera for iOS
Branch: master
Clone or download
Latest commit f245e8c Apr 3, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.

version badge codebeat badge Lang platform Carthage compatible



  • 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


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


  • 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  



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)")


  • 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 👈
You can’t perform that action at this time.