WeakableSelf alternatives and similar libraries
Based on the "Code Quality" category.
Alternatively, view WeakableSelf alternatives based on common mentions on social networks and blogs.
-
OCLint
A static source code analysis tool to improve quality and reduce defects for C, C++ and Objective-C -
IBAnalyzer
DISCONTINUED. Find common xib and storyboard-related problems without running your app or writing unit tests. -
SwiftCop
SwiftCop is a validation library fully written in Swift and inspired by the clarity of Ruby On Rails Active Record validations. -
Warnings-xcconfig
An xcconfig (Xcode configuration) file for easily turning on a boatload of warnings in your project or its targets. -
PSTModernizer
Makes it easier to support older versions of iOS by fixing things and adding missing methods -
Trackable
DISCONTINUED. Trackable is a simple analytics integration helper library. It’s especially designed for easy and comfortable integration with existing projects.
CodeRabbit: AI Code Reviews for Developers

* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of WeakableSelf or a related project?
README
WeakableSelf
Context
Closures are one of Swift must-have features, and Swift developers are aware of how tricky they can be when they capture the reference of an external object, especially when this object is self
.
To deal with this issue, developers are required to write additional code, using constructs such as [weak self]
and guard
, and the result looks like the following:
service.call(completion: { [weak self] result in
guard let self = self else { return }
// use weak non-optional `self` to handle `result`
})
Purpose of WeakableSelf
The purpose of this micro-framework is to provide the developer with a helper function weakify
that will allow him to declaratively indicate that he wishes to use a weak non-optional reference to self
in closure, and not worry about how this reference is provided.
Usage
Using this weakify
function, the code above will be transformed into the much more concise:
import WeakableSelf
service.call(completion: weakify { strongSelf, result in
// use weak non-optional `strongSelf` to handle `result`
})
weakify
works with closures that take up to 7 arguments.
Installation
Requirements
- Swift 4.2+
- Xcode 10+
CocoaPods
Add the following to your Podfile
:
pod "WeakableSelf"
Carthage
Add the following to your Cartfile
:
github "vincent-pradeilles/weakable-self"