HybridCamera
  • December 25, 2024

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

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:

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:

GitHub


View Github

#ios #iosanimation #iosswift #swift #swiftui #ui
YOU MIGHT ALSO LIKE...
🧭 NavigationKit

NavigationKit is a lightweight library which makes SwiftUI navigation super easy to use. 💻 Installation 📦 Swift Package Manager Using Swift Package Manager, add ...

swiftui-navigation-stack

An alternative SwiftUI NavigationView implementing classic stack-based navigation giving also some more control on animations and programmatic navigation. NavigationStack Installation ...

Stinsen

Simple, powerful and elegant implementation of the Coordinator pattern in SwiftUI. Stinsen is written using 100% SwiftUI which makes it ...

SwiftUI Router

With SwiftUI Router you can power your SwiftUI app with path-based routing. By utilizing a path-based system, navigation in your app becomes ...

FlowStacks

This package takes SwiftUI's familiar and powerful NavigationStack API and gives it superpowers, allowing you to use the same API not just ...