{"id":18036020,"url":"https://github.com/erikdrobne/camerabutton","last_synced_at":"2025-03-27T08:30:37.783Z","repository":{"id":74320687,"uuid":"450037829","full_name":"erikdrobne/CameraButton","owner":"erikdrobne","description":"A simple camera button that can be used for photo and video capturing.","archived":false,"fork":false,"pushed_at":"2023-08-31T13:35:03.000Z","size":40,"stargazers_count":22,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-23T10:44:15.994Z","etag":null,"topics":["button","ios","swift","swiftui","ui","xcode"],"latest_commit_sha":null,"homepage":"","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/erikdrobne.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":"2022-01-20T09:46:36.000Z","updated_at":"2024-08-20T08:05:44.000Z","dependencies_parsed_at":null,"dependency_job_id":"53af364b-ff84-4459-8ae5-5a8e4b906c31","html_url":"https://github.com/erikdrobne/CameraButton","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erikdrobne%2FCameraButton","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erikdrobne%2FCameraButton/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erikdrobne%2FCameraButton/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erikdrobne%2FCameraButton/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/erikdrobne","download_url":"https://codeload.github.com/erikdrobne/CameraButton/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245809583,"owners_count":20676013,"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":["button","ios","swift","swiftui","ui","xcode"],"created_at":"2024-10-30T12:11:14.773Z","updated_at":"2025-03-27T08:30:37.777Z","avatar_url":"https://github.com/erikdrobne.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CameraButton\n\n![RPReplay_Final1642669292](https://user-images.githubusercontent.com/15943419/150314796-160a77d0-2755-4222-bf40-b1d965f0a97e.GIF)\n![RPReplay_Final1642670033](https://user-images.githubusercontent.com/15943419/150314815-8524644c-9f20-4b74-9afc-acb6871dc877.GIF)\n\nA simple camera button that can be used for photo and video capturing.\n\n## Requirements\n\n**iOS 14.0** or higher\n\n## Instalation\n\n### Swift Package Manager\n\n```Swift\ndependencies: [\n    .package(url: \"https://github.com/erikdrobne/CameraButton\")\n]\n```\n\n## Usage\n\n### Import\n\n```Swift\nimport CameraButton\n```\n\n### UIKit\n\n### Initialize\n\n```Swift\nlet button = CameraButton()\nbutton.delegate = self\nview.addSubview(button)\nbutton.translatesAutoresizingMaskIntoConstraints = false\n\nNSLayoutConstraint.activate([\n    button.widthAnchor.constraint(equalToConstant: 72),\n    button.heightAnchor.constraint(equalToConstant: 72),\n    button.centerXAnchor.constraint(equalTo: view.centerXAnchor),\n    button.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: -64)\n])\n```\n\n### Customize\n\n```Swift\n// Set custom colors\nbutton.borderColor = .red\nbutton.fillColor = (.purple, .orange)\nbutton.progressColor = .green\n\n// Set progress animation duration\nbutton.progressDuration = 5\n\n// Start progress animation\nbutton.start()\n\n// Stop progress animation\nbutton.stop()\n```\n\n### Delegate\n\nThe `CameraButtonDelegate` requires you to implement the following methods:\n\n```Swift\nfunc didTap(_ button: CameraButton)\nfunc didFinishProgress()\n```\n\n### SwiftUI\n\n```Swift\nstruct PhotoView: View {\n\n    @State var isRecording: Bool = false\n    @State var didFinishProgress: Bool = false\n\n    var body: some View {\n        CameraButtonUI(\n            size: 72,\n            borderColor: .red,\n            fillColor: (.purple, .orange),\n            progressColor: .green,\n            progressDuration: 5,\n            isRecording: self.$isRecording\n        )\n        // Handle tap gesture\n        .simultaneousGesture(\n            TapGesture()\n                .onEnded { _ in\n                    print(\"tap\")\n                }\n        )\n        // Start recording on Long-press gesture\n        .gesture(\n            LongPressGesture(minimumDuration: 1)\n                .onChanged { val in\n                    isRecording = true\n                }\n        )\n        // Observe state changes\n        .onChange(of: isRecording, perform: { [isRecording] newValue in\n            print(\"isRecording\", isRecording, newValue)\n        })\n    }\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferikdrobne%2Fcamerabutton","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ferikdrobne%2Fcamerabutton","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferikdrobne%2Fcamerabutton/lists"}