This week, we're bringing you a selection of tools that streamline your Swift development process. We'll be exploring XcodeGen, a Swift command line tool that revolutionizes Xcode project generation, Factory, a novel dependency injection framework for Swift and SwiftUI, and Swinject, a flexible and efficient dependency injection framework, again for Swift. Let's delve into these remarkable tools!
XcodeGen - Swift-based Automation with Command Line Ease
XcodeGen is a powerful Swift command line tool that transforms Xcode project generation. Using your existing folder structure and a project spec (in YAML or JSON), it generates Xcode projects while preserving your directory hierarchy. With sensible defaults, it's easy to get started and offers extensive customization options for more complex projects.
What we like about it:
Git-friendly project generation, removing .xcodeproj to eliminate merge conflicts.
Automatic syncing of Xcode groups and files with your on-disk directories.
On-demand creation of new, intricate project setups without wrestling with Xcode.
Convenient integration of Carthage frameworks and generation of Dependency Diagrams for Graphviz.
Created by @yonaskolb
Factory - A New Dawn for Swift and SwiftUI Dependency Injection
Factory heralds a novel way of tackling container-based dependency injection in Swift and SwiftUI. As a dependency injection tool, Factory is adaptable, powerful, performant, and safe with concise and flexible code. Its influence from SwiftUI and seamless adaptability across various architectures like MVVM, VIPER, and others makes it a must-have for developers.
What we like about it:
Comprehensive support for containers, scopes, parameters, decorators, and more.
Compile-time safety ensures a factory for any type must exist, or the code won't compile.
Swiftly define and resolve dependencies with typically just a single line of code.
Integration of dependency injection strategies without imposing one single technique.
Created by Michael Long
Swinject - Reframing Dependency Injection in Swift
Swinject ushers in a new era of handling dependency injection in Swift. As a DI framework, Swinject is flexible, robust, efficient, and secure with succinct and adaptable code. Drawing from the power of Swift's generic type system and first-class functions, it offers seamless compatibility across various architectures like MVVM, VIPER, and more, making it an indispensable tool for developers.
What we like about it:
Broad-ranging DI support, covering injections, object scopes, and more.
Ensures compile-time safety for a more reliable codebase.
Quick and efficient dependency management.
Allows integration of various DI strategies without imposing a single technique.
Created by Swinject Team
❗iOS Dev Tools is always looking for new & exciting tools❗🔨📱
If you are interested in sponsoring the newsletter or having your tool featured, send us an email at hi@iosdev.tools