Latest 0.0.1
Homepage https://github.com/ahmedAlmasri/SNAdapter
License MIT
Platforms ios 10.0
Authors

CI Status
Version
License
Platform

Example

To run the example project, clone the repo, and run pod install from the Example directory first.

Using

Step 1: Import the SNAdapter module in swift.

import SNAdapter

TableView

Step 1: declare new class or struct inherent form SNCellableModel


struct MyModel: SNCellableModel {

  let title: String
}

Step 2: declare new UITableViewCell inherent form SNCellable


class MyCell: UITableViewCell, SNCellable {

  func configure(_ object: SNCellableModel?) {
    guard let myModel = object as? MyModel else { return }

    self.textLabel?.text = myModel.title
  }

}

Step 3: Take a reference to SNTableViewSection and SNTableViewAdapter into your controller.

 private var mySection: SNTableViewSection<MyModel, MyCell>!
 private var myAdapter: SNTableViewAdapter!

Step 4: Initialize the SNTableViewSection and SNTableViewAdapter in your viewDidLoad .

override func viewDidLoad() {
  super.viewDidLoad()
  ///....

  // MARK: - call setup section

  setupMySection()

  ///...
}

private func setupMySection() {

 mySection = SNTableViewSection<MyModel, MyCell>(items: getMyListData())
 myAdapter = SNTableViewAdapter(sections: [mySection])
 myTableView.setAdapter(myAdapter)

}

private func getMyListData() -> [MyModel] {

return [MyModel(title: "Item 1"), MyModel(title: "Item 2")]

}

More Example

CollectionView

Step 1: declare new UICollectionViewCell inherent form SNCellable


class MyCell: UICollectionViewCell, SNCellable {

 @IBOutlet weak var titleLabel: UILabel!

func configure(_ object: SNCellableModel?) {
guard let myModel = object as? MyModel else { return }

  titleLabel.text = myModel.title
}

}

Step 2: Take a reference to SNCollectionViewSection and SNCollectionViewAdapter into your controller.

private var mySection: SNCollectionViewSection<MyModel, MyCell>!
private var myAdapter: SNCollectionViewAdapter!

Step 3: Initialize the SNCollectionViewSection and SNCollectionViewAdapter in your viewDidLoad .

override func viewDidLoad() {
super.viewDidLoad()
///....

// MARK: - call setup section

setupMySection()

///...
}

private func setupMySection() {

mySection = SNCollectionViewSection<MyModel, MyCell>(items: getMyListData())
myAdapter = SNCollectionViewAdapter(sections: [mySection])
myCollectionView.setAdapter(myAdapter)

}

private func getMyListData() -> [MyModel] {

return [MyModel(title: "Item 1"), MyModel(title: "Item 2")]

}

More Example

Requirements

  • Swift 4.2+
  • Xcode 10.0+
  • iOS 11.0+

Installation

SNAdapter is available through CocoaPods. To install
it, simply add the following line to your Podfile:

pod 'SNAdapter'

Author

ahmedAlmasri, [email protected]

License

SNAdapter is available under the MIT license. See the LICENSE file for more info.

Latest podspec

{
    "name": "SNAdapter",
    "version": "0.0.1",
    "swift_versions": "4.2",
    "summary": "iOS swift tableview and collectionView Adapter, powered by generics and associated types.",
    "homepage": "https://github.com/ahmedAlmasri/SNAdapter",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    },
    "authors": {
        "ahmedAlmasri": "[email protected]"
    },
    "source": {
        "git": "https://github.com/ahmedAlmasri/SNAdapter.git",
        "tag": "0.0.1_beta"
    },
    "platforms": {
        "ios": "10.0"
    },
    "source_files": "SNAdapter/Classes/**/*",
    "swift_version": "4.2"
}

Pin It on Pinterest

Share This