{"id":26397575,"url":"https://github.com/mdb1/swiftypick","last_synced_at":"2026-03-07T21:31:13.909Z","repository":{"id":38290956,"uuid":"399631773","full_name":"mdb1/SwiftyPick","owner":"mdb1","description":"Useful Swift code samples, extensions, functionalities and scripts to cherry-pick and use in your projects","archived":false,"fork":false,"pushed_at":"2023-08-24T01:46:12.000Z","size":3221,"stargazers_count":19,"open_issues_count":3,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-17T09:02:03.242Z","etag":null,"topics":["ios","swift","xcode"],"latest_commit_sha":null,"homepage":"https://mdb1.github.io/SwiftyPick/","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/mdb1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","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,"zenodo":null}},"created_at":"2021-08-24T23:33:00.000Z","updated_at":"2022-05-12T10:02:11.000Z","dependencies_parsed_at":"2025-06-17T09:01:33.651Z","dependency_job_id":"32dbbdb1-1b61-4b69-abe0-622e9bbea5d0","html_url":"https://github.com/mdb1/SwiftyPick","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mdb1/SwiftyPick","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdb1%2FSwiftyPick","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdb1%2FSwiftyPick/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdb1%2FSwiftyPick/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdb1%2FSwiftyPick/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mdb1","download_url":"https://codeload.github.com/mdb1/SwiftyPick/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mdb1%2FSwiftyPick/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30231602,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-07T19:01:10.287Z","status":"ssl_error","status_checked_at":"2026-03-07T18:59:58.103Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["ios","swift","xcode"],"created_at":"2025-03-17T12:18:15.790Z","updated_at":"2026-03-07T21:31:13.874Z","avatar_url":"https://github.com/mdb1.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SwiftyPick 🦅🍒\n\nUseful Swift code samples, extensions, functionalities and scripts to cherry-pick and use in your projects.\n\n|[Codebase documentation](https://mdb1.github.io/SwiftyPick)|\n|-|\n|![Documentation](https://mdb1.github.io/SwiftyPick/badge.svg)|\n\nThe documentation on this project is generated and updated automatically using Jazzy + Github Actions. For more info check the [Jazzy docs](https://github.com/mdb1/SwiftyPick/blob/main/Documentation/Jazzy.md) on this repo.\n\n## Purpose\n\nThe idea behind this project is not to be a `pod` that users import into their own projects, but rather a collection of useful ideas, well-organized and documented, to cherry-pick as needed into another projects.\nEvery new piece of functionality will have a proper document explaining it's usage under the `Documentation` directory.\n\n## Installation\n\n### SwiftLint\n \u003e `brew install swiftlint`\n \n### Configure the Git Hooks\n \u003e `git config core.hooksPath .githooks`\n \n### CocoaPods\n\u003e Run `pod install` on the root of the project\n\nOpen `SwiftyPick.xcworkspace` with Xcode\n\n# Features 🚀\n\n## Code\n\n### Extensions\n\n* [Add support for multiple Color Palettes](https://github.com/mdb1/SwiftyPick/blob/main/Documentation/ColorPalette.md): Easily handle multiple color palettes in your app.\n* [AutoLayout helper methods](https://github.com/mdb1/SwiftyPick/blob/main/Documentation/AutoLayout.md): Lightweight classes for declarative auto layout.\n* [TableView extensions](https://github.com/mdb1/SwiftyPick/blob/main/Documentation/TableViewExtensions.md): A couple of helper methods when dealing with table and collection views and cells.\n\n### Features\n\n* [SwiftGen](https://github.com/mdb1/SwiftyPick/blob/main/Documentation/SwiftGen.md): Get autogenerated instances of colors, images, and localized strings.\n\n### Networking\n* `// TODO //`\n\n### Testing\n* [Xcode Test Plans](https://github.com/mdb1/SwiftyPick/blob/main/Documentation/TestPlans.md): Configure different test plans in your project in order to test different configurations.\n\n### UI\n* `// TODO //`\n\n### UI Design Patterns\n* [MVP](https://github.com/mdb1/SwiftyPick/blob/main/Documentation/MVP.md): Use the MVP design pattern in your project.\n\n## Process\n\n### Danger\n* [Danger](https://github.com/mdb1/SwiftyPick/blob/main/Documentation/Danger.md): Configure Danger and add a Github Action to run the script on every PR.\n\n### Documentation\n* [Jazzy](https://github.com/mdb1/SwiftyPick/blob/main/Documentation/Jazzy.md): Configure Jazzy to get autogenerated `html` files for documentation.\n\n### Fastlane\n* [Fastlane](https://github.com/mdb1/SwiftyPick/blob/main/Documentation/Fastlane.md): Configure Fastlane in your project and add a Github Action to run the tests on every PR to `main`.\n* [Run Test Plans on Fastlane](https://github.com/mdb1/SwiftyPick/blob/main/Documentation/TestPlans.md): Configure your fastfile to run different test plans.\n* [Automatic distribution to testflight](https://github.com/mdb1/SwiftyPick/blob/main/Documentation/Fastlane+Distribution.md): Automate the process of uploading builds to testflight using Fastlane and Github Actions.\n\n### Github\n\n* [Set up PR and Issue templates](https://github.com/mdb1/SwiftyPick/blob/main/Documentation/GithubTemplates.md): How to add a Pull Request or Issue template to your project.\n* [Github Actions](https://github.com/mdb1/SwiftyPick/blob/main/Documentation/GithubActions.md): How to add a Github Actions and make them run on Pull Requests.\n\n### SwiftLint\n\n* [SwiftLint](https://github.com/mdb1/SwiftyPick/blob/main/Documentation/SwiftLint.md): How to add and configure SwiftLint rules.\n\n### Scripts\n\n* [Sort Project files alphabetically](https://github.com/mdb1/SwiftyPick/blob/main/Documentation/SortProject.md): Keep the Xcode project files sorted alphabetically and avoid conflicts in the `.pbxproj` file.\n\n# TODOs\nThis is the list of things I want to add to the project in the near future:\n\n- [ ] UserDefaults easy access / FeatureFlags using UserDefaults\n- [ ] Logger: Object to log useful information to the console (and to report to analytics/crashlytics)\n- [ ] Lightweight `URLSession` networking layer\n- [ ] PokedexViewController\n    - Use MVP: PokedexPresenter, PokedexPresenting, PokedexPresentingDelegate\n    - Use the new networking layer for the backend call\n    - Unit test the presenter using a mock presenter to avoid the network call\n- [ ] NumberFormatter + Regional unit tests (ie: check the `,` or `.` separator for decimals/thousands depending on the region)\n- [ ] CurrencyFormatter + Regional unit tests\n- [ ] DateFormatter + Regional unit tests\n- [ ] Dynamic Fonts (For accessibility)\n- [ ] UITests layer using Page Object pattern\n- [ ] Run UI Tests against local json files to avoid using the network\n- [ ] Schemes (prod/dev)\n- [ ] UIView extension with some basic animations\n- [ ] Firebase integration (Analytics/Crashlytics/AB Testing/Flags)\n- [ ] Custom Operators from the `Advanced Swift` book\n- [ ] GraphQL support\n- [ ] Settings view: dark mode, color palette, app icon, local feature flags, display backend calls for debug, change accessibility features, etc\n\n# Contributing\n\nCheck out the [Contribution guide](https://github.com/mdb1/SwiftyPick/blob/main/.github/CONTRIBUTING.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmdb1%2Fswiftypick","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmdb1%2Fswiftypick","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmdb1%2Fswiftypick/lists"}