{"id":20541001,"url":"https://github.com/sentryco/pinview","last_synced_at":"2025-04-14T08:38:49.093Z","repository":{"id":258037942,"uuid":"868086805","full_name":"sentryco/PinView","owner":"sentryco","description":"PinCodeView for iOS and macOS","archived":false,"fork":false,"pushed_at":"2024-11-06T12:54:28.000Z","size":52,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2024-11-06T13:55:00.258Z","etag":null,"topics":[],"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/sentryco.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":"2024-10-05T12:50:14.000Z","updated_at":"2024-11-06T12:54:32.000Z","dependencies_parsed_at":"2024-10-17T12:15:53.461Z","dependency_job_id":null,"html_url":"https://github.com/sentryco/PinView","commit_stats":null,"previous_names":["sentryco/pinview"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sentryco%2FPinView","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sentryco%2FPinView/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sentryco%2FPinView/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sentryco%2FPinView/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sentryco","download_url":"https://codeload.github.com/sentryco/PinView/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224863638,"owners_count":17382399,"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":[],"created_at":"2024-11-16T01:18:47.711Z","updated_at":"2024-11-16T01:18:48.486Z","avatar_url":"https://github.com/sentryco.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Tests](https://github.com/sentryco/PinView/actions/workflows/Tests.yml/badge.svg)](https://github.com/sentryco/PinView/actions/workflows/Tests.yml)\n[![codebeat badge](https://codebeat.co/badges/f1161517-1999-4386-9377-ab552fdf7655)](https://codebeat.co/projects/github-com-sentryco-pinview-main)\n\n# PinView\n\n\u003e A sleek PinCodeView for iOS and macOS\n\n\u003cimg width=\"290\" alt=\"img\" src=\"https://s11.gifyu.com/images/SBTf3.gif\"\u003e\n\nPinView is a custom SwiftUI view designed to simplify the input of PIN codes in iOS and macOS apps. It's highly customizable to fit the look and feel of your application.\n\n## Features\n\n- **Light / dark mode support** Apperance is automatically adjusted to the OS settings.\n- **Support for iOS and macOS:** Seamlessly integrate with your projects for iPhone, iPad, Mac\n- **Haptic feedback:** Provide physical feedback as users type the pin.\n- **Supports custom pin length:** Set the length of the pin code to your needs.\n- **Automatic textfield focus change:** Automatically focuses the next textfield when the current one is filled.\n\n## Example:\n```swift\nstruct ContentView: View {\n    @State private var pinCode: String = \"\"\n\n    var body: some View {\n        PinCodeView(count: 4) { pin in\n            Swift.print(\"On verify - pin: \\(pin)\")\n        }\n    }\n}\n```\n\n## Swift Package Manager (SPM)\n\n```swift\n.package(url: \"https://github.com/sentryco/PinView\", branch: \"main\")\n```\n\n### Future improvements:\n\n1. **Focus Management \u0026 Backspace Functionality**\n   - Improve focus transitions and add backspace functionality.\n\n2. **Obfuscation Feature**\n   - Implement PIN obfuscation to enhance security and user privacy. (Add obfuscation after iterating through pins)\n\n3. **Refactoring \u0026 Code Organization**\n   - Refactor code for better modularity and readability.\n\n4. **Accessibility Improvements**\n   - Review and improve accessibility features, including voice-over compatibility.\n\n5. **Preview \u0026 Testing Enhancements**\n   - Expand preview functionality to cover more scenarios for better UI testing.\n   - Add note about limits with Preview vs Simulator vs Device \n\n6. **Styling \u0026 Theming Consistency**\n   - Use constants for styling values to ensure consistent theming.\n\n7. **Documentation \u0026 Code Comments**\n   - Address TODOs and FIXMEs related to documentation for better clarity and collaboration.\n\n8. **Miscellaneous**\n   - Add note regarding textfield position changing when keyboard is shown / dismissed etc\n   - Rename repo to PinCodeView?\n   - Remove unit-tests. And add UI-tests?\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsentryco%2Fpinview","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsentryco%2Fpinview","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsentryco%2Fpinview/lists"}