{"id":21842180,"url":"https://github.com/fpg1503/optionaloutlets","last_synced_at":"2026-03-12T02:31:52.942Z","repository":{"id":75503925,"uuid":"53053336","full_name":"fpg1503/OptionalOutlets","owner":"fpg1503","description":"❓ An Xcode plugin to make @IBOutlets Optional","archived":false,"fork":false,"pushed_at":"2016-05-12T17:06:09.000Z","size":828,"stargazers_count":18,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-14T11:54:14.939Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fpg1503.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2016-03-03T13:45:56.000Z","updated_at":"2021-06-12T06:46:13.000Z","dependencies_parsed_at":"2023-06-06T16:45:19.427Z","dependency_job_id":null,"html_url":"https://github.com/fpg1503/OptionalOutlets","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/fpg1503/OptionalOutlets","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fpg1503%2FOptionalOutlets","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fpg1503%2FOptionalOutlets/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fpg1503%2FOptionalOutlets/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fpg1503%2FOptionalOutlets/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fpg1503","download_url":"https://codeload.github.com/fpg1503/OptionalOutlets/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fpg1503%2FOptionalOutlets/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30413031,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-12T00:40:14.898Z","status":"online","status_checked_at":"2026-03-12T02:00:07.260Z","response_time":114,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2024-11-27T22:10:56.304Z","updated_at":"2026-03-12T02:31:52.923Z","avatar_url":"https://github.com/fpg1503.png","language":"Objective-C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OptionalOutlets\n\nThis Xcode plugin makes `@IBOutlet`s `Optional` and `private` in Xcode.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"OptionalOutlets.gif\" alt=\"OptionalOutlets demo\" /\u003e\n\u003c/p\u003e\n\n| | OptionalOutlets\n----------------------|----------------------------------\n:white_check_mark: | Supports `weak` and `strong` Outlets and Collections \n:sparkles: | Super easy installation\n:muscle: | `ImplicitlyUnwrappedOptional`s are ugly, say goodbye to them!\n:see_no_evil: | Outlets should be private, now they are!\n\n# Installation\n\n### Alcatraz\nYou can install `OptionalOutlets` using [Alcatraz](http://alcatraz.io/).\n\nFirst, install [Alcatraz](http://alcatraz.io/) using\n\n```\ncurl -fsSL https://raw.githubusercontent.com/supermarin/Alcatraz/deploy/Scripts/install.sh | sh\n```\n\n- Restart Xcode\n- Click on `Window`\n- Select `Package Manager`\n- Search and Install `OptionalOutlets`\n- Restart Xcode\n\n### Manually\n\nYou can also install the plugin manually by cloning this repository and building the project. It'll be installed on `~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/OptionalOutlets.xcplugin`.\n\nYou should restart Xcode after that.\n\n# What does this do?\n\nThe primary goal of this plugin is to make `@IBOutlet`s `Optional`. By default, Xcode uses `ImplicitlyUnwrappedOptional`s, but that's dangerous and even though you can safely unwrap them most people don't. The secondary goal is to make your `@IBOutlet`s `private`. Using outlets outside a class is a code smell and seldom is needed. This plugin automatically makes your outlets `Optional` and `private`, simple as that! Don't worry, they are independent rules and you can disable them at any time.\n\n:rocket: **Let's Make Xcode Great Again™**\n\n# Special Thanks\n\n- [@marcelofabri_](https://twitter.com/marcelofabri_) for his CocoaHeads talk about [IBOutlint](https://github.com/marcelofabri/IBOutlint) which gave me the motivation to write this and from which I've shamelessly copied most of the code.\n- [@chrisfsampaio](https://twitter.com/chrisfsampaio) for adding support to making outlets `private`, adding an example project, adding feature toggles, reporting bugs and a bunch of other stuff I probably forgot to mention.\n- [@orta](https://twitter.com/orta) for blogging about [his experience on building a Xcode plugin](http://artsy.github.io/blog/2014/06/17/building-the-xcode-plugin-snapshots/).\n- [@kattrali](https://twitter.com/kattrali) for providing a [template for Xcode plugins](https://github.com/kattrali/Xcode-Plugin-Template).\n- [@gsampaio](https://twitter.com/gsampaio) for telling me to throw the Swift version of this plugin away, copy Fabri's and save ~8Mb for all the users.\n\n# Need help?\nPlease submit an issue on GitHub and provide information about your setup.\n\n# License\nThis project is licensed under the terms of the MIT license. See the LICENSE file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffpg1503%2Foptionaloutlets","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffpg1503%2Foptionaloutlets","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffpg1503%2Foptionaloutlets/lists"}