{"id":1227,"url":"https://github.com/eonist/HybridCamera","last_synced_at":"2025-07-30T20:32:52.932Z","repository":{"id":93635101,"uuid":"137129984","full_name":"eonist/HybridCamera","owner":"eonist","description":"Video and photo camera for iOS","archived":false,"fork":false,"pushed_at":"2024-07-21T11:26:56.000Z","size":11170,"stargazers_count":213,"open_issues_count":17,"forks_count":34,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-11-30T02:07:44.564Z","etag":null,"topics":["avfoundation","camera","instagram","ios","photo","snapchat","video"],"latest_commit_sha":null,"homepage":null,"language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eonist.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-06-12T21:31:44.000Z","updated_at":"2024-11-07T22:21:41.000Z","dependencies_parsed_at":"2024-01-02T20:58:27.266Z","dependency_job_id":"90bd0382-97af-4ef5-8ecc-dbd28843f7cf","html_url":"https://github.com/eonist/HybridCamera","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eonist%2FHybridCamera","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eonist%2FHybridCamera/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eonist%2FHybridCamera/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eonist%2FHybridCamera/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eonist","download_url":"https://codeload.github.com/eonist/HybridCamera/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228187588,"owners_count":17882329,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["avfoundation","camera","instagram","ios","photo","snapchat","video"],"created_at":"2024-01-05T20:15:41.709Z","updated_at":"2024-12-04T20:31:07.827Z","avatar_url":"https://github.com/eonist.png","language":"Swift","funding_links":[],"categories":["Hardware","Swift"],"sub_categories":["Camera"],"readme":"![Lang](https://img.shields.io/badge/Language-Swift%205.0-orange.svg)\n![platform](https://img.shields.io/badge/Platform-iOS_13.0-blue.svg)\n[![codebeat badge](https://codebeat.co/badges/00d22967-459e-4687-91c8-9e51c39d76c8)](https://codebeat.co/projects/github-com-eonist-hybridcamera-master)\n[![Reviewed by Hound](https://img.shields.io/badge/Reviewed_by-Hound-8E64B0.svg)](https://houndci.com)\n[![.github/workflows/swift.yml](https://github.com/eonist/HybridCamera/actions/workflows/swift.yml/badge.svg)](https://github.com/eonist/HybridCamera/actions/workflows/swift.yml)\n\n\u003cimg width=\"192\" alt=\"img\" src=\"https://rawgit.com/stylekit/img/master/vid_edited_2_2mb.gif\"\u003e\n\n### Features:\n\n| Description  |  |\n| ------------- | ------------- |\n| Records video  | 🎥  |\n| takes photos  | 📷  |\n| Flash on/off  | ⚡  |\n| Front / Back camera | ↕️  |\n| Hold to record video | ✊ |\n| Tap to take photo |  👇 |\n| Tap to focus / set exposure  | 🔎  |\n| Pinch to zoom  | 👌  |\n| Looping video/photo preview  | 🔁  |\n| Share button  | 🔗  |\n| Programatic UI  | 🤖  |\n| Doesn't stop Spotify | 🎶  |\n| Stores files in temporary | 💾   |\n| Throw oriented code  | 💣 |\n| Persistent app authorisation  | 🚫  |\n| Animated record button  | 🔴 |\n| [Callback based](https://medium.cobeisfresh.com/why-you-shouldn-t-use-delegates-in-swift-7ef808a7f16b)  | 📞 |\n\n\n\n### Why use this camera framework\n- High [codebeat GPA](https://codebeat.co/projects/github-com-eonist-hybridcamera-master)\n- Low class scoped variable count (In order to better handle overall state)\n- Setup errors can be handled from the POV of the initiator\n- Operation errors is handled in the onCapture completion block\n- Callback based (as oppose to delegate based) [More info](https://medium.cobeisfresh.com/why-you-shouldn-t-use-delegates-in-swift-7ef808a7f16b)\n- Easily styleable (The camera view is separate from the UI view)\n- No third-party libraries or Sugar\n- Entirely programatic (No storyboard)\n- Thoroughly documented (Artifacts and sideEffects etc)\n- Uses [Sindre-lint style guide](https://github.com/sindresorhus/swiftlint-sindre)\n- Small footprint, only ~750 LOC (Lines of code)\n### Notes:\n- In order to keep things simple, The UI is CGRect based. Use your own Autolayout distro like SnapKit etc when adding additional UI\n\n### Install:\n- SPM: `.package(url: \"https://github.com/eonist/HybridCamera.git\", .branch(\"master\"))`\n- Manual: Open `HybridCamera.xcodeproj`\n\n**IMPORTANT:** Make sure info.plist has these variables  \n ```\nPrivacy - Microphone Usage Description   \nPrivacy - Camera Usage Description  \nPrivacy - Photo Library Additions Usage Description  \n```\n\n### Example:\n\u003cimg width=\"300\" alt=\"img\" src=\"https://rawgit.com/stylekit/img/master/hybridcam.jpg\"\u003e\n\n\n### Example code:   \n```swift\nself.view = HybridCamView()\nview.camView.onPhotoCaptureComplete = { (image: UIImage?, url: URL?, error: Error?) in\n   Swift.print(\"On photo capture complete \\(url)\")\n}\nhybridCamView.camView.onVideoCaptureComplete = { (url: URL?, error: Error?) in\n   Swift.print(\"On Video capture complete \\(url)\")\n}\n```\n### Todo:\n- Add support for more orientation modes (Currently only supports portrait)\n- Add support for error resolution from the POV of initiating the camera\n- Make UI with AutoLayout 👈\n- Make lib carthage support ✅\n- Fix AudioBug ✅\n- Fix FontCamera bug w/ IphoneX ✅\n- Add Spatial, Chaplin as an option to HybridCam 👈\n- Add CI-Travis 👈\n\n### Contributors:\n- [eonist](https://gitHub.com/eonist)  \n- [blurtime](https://gitHub.com/blurtime)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feonist%2FHybridCamera","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feonist%2FHybridCamera","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feonist%2FHybridCamera/lists"}