Skip to content
An Xcode plugin to make @IBOutlets Optional
Objective-C Swift
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


This Xcode plugin makes @IBOutlets Optional and private in Xcode.

OptionalOutlets demo

Supports weak and strong Outlets and Collections
Super easy installation
💪 ImplicitlyUnwrappedOptionals are ugly, say goodbye to them!
🙈 Outlets should be private, now they are!



You can install OptionalOutlets using Alcatraz.

First, install Alcatraz using

curl -fsSL | sh
  • Restart Xcode
  • Click on Window
  • Select Package Manager
  • Search and Install OptionalOutlets
  • Restart Xcode


You 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.

You should restart Xcode after that.

What does this do?

The primary goal of this plugin is to make @IBOutlets Optional. By default, Xcode uses ImplicitlyUnwrappedOptionals, but that's dangerous and even though you can safely unwrap them most people don't. The secondary goal is to make your @IBOutlets 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.

🚀 Let's Make Xcode Great Again™

Special Thanks

Need help?

Please submit an issue on GitHub and provide information about your setup.


This project is licensed under the terms of the MIT license. See the LICENSE file.

You can’t perform that action at this time.