libextobjc alternatives and similar libraries
Based on the "Utility" category.
Alternatively, view libextobjc alternatives based on common mentions on social networks and blogs.
-
swift-algorithm-club
Algorithms and data structures in Swift, with explanations! -
SwifterSwift
A handy collection of more than 500 native Swift extensions to boost your productivity. -
BlocksKit
The Objective-C block utilities you always wish you had. -
InAppSettingsKit
This iOS framework allows settings to be in-app in addition to or instead of being in the Settings app. -
DifferenceKit
💻 A fast and flexible O(n) difference algorithm framework for Swift collection. -
EKAlgorithms
EKAlgorithms contains some well known CS algorithms & data structures. -
EZSwiftExtensions
:smirk: How Swift standard types and classes were supposed to work. -
Reusable
A Swift mixin for reusing views easily and in a type-safe way (UITableViewCells, UICollectionViewCells, custom UIViews, ViewControllers, Storyboards…) -
WhatsNew
Showcase new features after an app update similar to Pages, Numbers and Keynote. -
SwiftLinkPreview
It makes a preview from an URL, grabbing all the information such as title, relevant texts and images. -
BFKit-Swift
BFKit-Swift is a collection of useful classes, structs and extensions to develop Apps faster. -
BFKit
BFKit is a collection of useful classes and categories to develop Apps faster. -
ReadabilityKit
Preview extractor for news, articles and full-texts in Swift -
VTAcknowledgementsViewController
Acknowledgements screen displaying a list of licenses, for example from CocoaPods dependencies. -
ObjectiveKit
Swift-friendly API for a set of powerful Objective C runtime functions. -
SwiftFoundation
Cross-Platform, Protocol-Oriented Programming base library to complement the Swift Standard Library. (Pure Swift, Supports Linux) -
AssistantKit
Easy way to detect iOS device properties, OS versions and work with screen sizes. Powered by Swift. -
DeviceGuru
DeviceGuru is a simple lib (Swift) to know the exact type of the device, e.g. iPhone 6 or iPhone 6s. Please ⭐️ this repo on the top right corner to make this repo popular. -
Retry
Haven't you wished for `try` to sometimes try a little harder? Meet `retry` -
Standard Template Protocols
Protocols for your every day iOS needs -
YAML.framework
Proper YAML support for Objective-C. Based on recommended libyaml. -
SBConstants
Generate a constants file by grabbing identifiers from storyboards in a project. -
ReflectableEnum
Reflection for enumerations in Objective-C. -
ZamzamKit
A Swift package for rapid development using a collection of micro utility extensions for Standard Library, Foundation, and other native frameworks. -
XestiMonitors
An extensible monitoring framework written in Swift -
SwiftParsec
A parser combinator library written in the Swift programming language.
Appwrite - The open-source backend cloud platform
* 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 libextobjc or a related project?
README
The Extended Objective-C library extends the dynamism of the Objective-C programming language to support additional patterns present in other programming languages (including those that are not necessarily object-oriented).
libextobjc is meant to be very modular – most of its classes and modules can be used with no more than one or two dependencies.
Features
libextobjc currently includes the following features:
- Safe categories, using EXTSafeCategory, for adding methods to a class without overwriting anything already there (identifying conflicts for you).
- Concrete protocols, using EXTConcreteProtocol, for providing default implementations of the methods in a protocol.
- Simpler and safer key paths, using EXTKeyPathCoding, which automatically checks key paths at compile-time.
- Compile-time checking of selectors to ensure that an object declares a given selector, using EXTSelectorChecking.
- Easier use of weak variables in blocks, using
@weakify
,@unsafeify
, and@strongify
from the EXTScope module. - Scope-based resource cleanup, using
@onExit
in the EXTScope module, for automatically cleaning up manually-allocated memory, file handles, locks, etc., at the end of a scope. - Algebraic data types generated completely at compile-time, defined using EXTADT.
- Synthesized properties for categories, using EXTSynthesize.
- Block-based coroutines, using EXTCoroutine.
- EXTNil, which is like
NSNull
, but behaves much more closely to actualnil
(i.e., doesn't crash when sent unrecognized messages). - Lots of extensions and additional functionality built on top of
<objc/runtime.h>
, including extremely customizable method injection, reflection upon object properties, and various functions to extend class hierarchy checks and method lookups.
The experimental branch contains additional features that may be interesting, but are not considered stable or safe for production use. Check out the headers for more information.
Running tests
To execute libextobjc's tests, first run git submodule update --init --recursive
to bring in the xcconfigs submodule,
then open the project file and choose the desired test target.
Adding to your project
If you want to add libextobjc as a dependency to an application, add the repository as a submodule, then include the source files you care about in your Xcode project.
If you want to add libextobjc as a dependency to a framework or library, prefer subtree merging, which will allow you to rename symbols to avoid conflicts, and make any tweaks you need to for your library.
To create a libextobjc subtree:
$ git remote add libextobjc https://github.com/jspahrsummers/libextobjc.git
$ git fetch libextobjc
$ git read-tree --prefix=External/ -u libextobjc/master
$ git reset
Rename any symbols or change whatever you want, git add
the specific files
that you want in your library, and then add them to your Xcode project.
To bring in upstream changes later:
$ git fetch -p libextobjc
$ git merge -Xsubtree=External/ libextobjc/master
$ git reset
Then, again, just add the changes you want.
License
Released under the MIT License. See the LICENSE file for more information.
Requirements
libextobjc must be built with ARC enabled, and many of its macros require ARC in the calling files as well. MRR usage is not supported.
*Note that all licence references and agreements mentioned in the libextobjc README section above
are relevant to that project's source code only.