README.md

April 13, 2023 ยท View on GitHub

Lang platform codebeat badge Reviewed by Hound .github/workflows/swift.yml

img

Features:

Description
Records video๐ŸŽฅ
takes photos๐Ÿ“ท
Flash on/offโšก
Front / Back cameraโ†•๏ธ
Hold to record videoโœŠ
Tap to take photo๐Ÿ‘‡
Tap to focus / set exposure๐Ÿ”Ž
Pinch to zoom๐Ÿ‘Œ
Looping video/photo preview๐Ÿ”
Share button๐Ÿ”—
Programatic UI๐Ÿค–
Doesn't stop Spotify๐ŸŽถ
Stores files in temporary๐Ÿ’พ
Throw oriented code๐Ÿ’ฃ
Persistent app authorisation๐Ÿšซ
Animated record button๐Ÿ”ด
Callback based๐Ÿ“ž

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 Sindre-lint style guide
  • Small footprint, only ~750 LOC (Lines of code)

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:

  • SPM: .package(url: "https://github.com/eonist/HybridCamera.git", .branch("master"))
  • Manual: Open HybridCamera.xcodeproj

IMPORTANT: Make sure info.plist has these variables

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

Example:

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 ๐Ÿ‘ˆ

Contributors: