StoryboardBuilder alternatives and similar libraries
Based on the "Dependency Injection" category.
Alternatively, view StoryboardBuilder alternatives based on common mentions on social networks and blogs.
-
Locatable
A micro-framework that leverages Swift Property Wrappers to implement the Service Locator pattern -
Pilgrim
Dependency injection for Swift (iOS, OSX, Linux). Strongly typed, pure Swift successor to Typhoon. -
ViperServices
Simple dependency injection container for services written for iOS in swift supporting boot order
CodeRabbit: AI Code Reviews for Developers
Do you think we are missing an alternative of StoryboardBuilder or a related project?
Popular Comparisons
README
StoryboardBuilder
Simple dependency injection for generating views from storyboard.
Description
StoryboardBuilder
is framework to help simply and easily generating that View and ViewController are defineded in Storyboard and Xib. You can generate instance and parse type of one by using StoryboardBuilderProtocol
and XibBuilderProtocol
description.
Install
Carthage
Add following.
github "hiro-nagami/StoryboardBuilder"
How ot use
Way to get Storyboard Class
- Create storyboard file in your project.
- Import StoryboardBuilder_iOS.
- Your custom view controller extends
StoryboardBuilderProtocol
. storyboardName
andstoryboardID
are implemented in that view controller.
import UIKit
import Foundation
import StoryboardBuilder_iOS
class CustomViewController: UIViewController, StoryboardBuilderProtocol {
static var storyboardName: String = "Main"
static var storyboardID: String = "CustomViewController"
...
}
You can use such as following.
/* You can generate CustomViewController just like following.
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let customeVC = storyboard.instantiateViewController(withIdentifier: "CustomViewController") as! CustomViewController
**/
let customViewController = CustomViewController.getModule()
Way to get Xib Class
- Create xib file in your project.
- Import StoryboardBuilder_iOS.
- Your custom view controller extends
XibBuilderProtocol
. xibName
is implemented in that view controller.
import UIKit
import Foundation
import StoryboardBuilder_iOS
class CustomView: UIView, XibBuilderProtocol {
static var xibName: String = "CustomView"
...
}
You can use such as following.
/* You can generate CustomView just like following.
let identifier = "CustomView"
let customViewNib = UINib(nibName: identifier, bundle: nil)
let customView = customViewNib.instantiate(withOwner: self, options: nil).first as! CustomView
**/
let customView: CustomView = CustomView.getModule()
You can register and use CustomTableViewCell.
class CustomViewCell: UITableViewCell, XibBuilderProtocol {
static var xibName: String = "CustomView"
...
}
class TableViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.delegate = self
self.tableView.dataSource = self
self.tableView.sb.register(cellClass: CustomViewCell.self)
self.tableView.sb.register(cellClasses: [
CustomViewACell.self,
CustomViewBCell.self,
CustomViewCCell.self,
])
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.sb.dequeueReusableCell(cellClass: CustomViewBCell.self)
...
return cell
}
}
License
StoryboardBuilder is released under the MIT license. See LICENSE for details.
Author
*Note that all licence references and agreements mentioned in the StoryboardBuilder README section above
are relevant to that project's source code only.