quick and easy creation of thunder collection views in iOS using a declarative approach.
  • October 12, 2023

Thunder Collection is a useful framework which enables quick and easy creation of collection views in iOS using a declarative approach. It makes the process of creating complex collection views as simple as a few lines of code; and removes the necessity for having long chains of index paths and if statements.

How It Works


Thunder Collection comprises of two main types of objects:

Items

Collection items are objects that conform to the CollectionItemDisplayable protocol, this protocol has properties such as: cellClassselectionHandler which are responsible for defining how the cell is configured. As this is a protocol any object can conform to it, which allows you to simply send an array of model objects to the collection view to display your content.

Sections

Collection sections are objects that conform to the CollectionSectionDisplayable protocol, most of the time you won’t need to implement this protocol yourself as Thunder Collection has a convenience class CollectionSection which can be used in most circumstances. However you can implement more complex layouts using this protocol on your own classes.

Installation


Setting up your app to use ThunderCollection is a simple and quick process. You can choose between a manual installation, or use Carthage.

Carthage


  • Add github "3sidedcube/ThunderCollection" == 2.0.0 to your Cartfile.
  • Run carthage update --platform ios --use-xcframeworks to fetch the framework.
  • Drag ThunderCollection into your project’s Frameworks and Libraries section from the Carthage/Build folder (Embed).
  • Add the Build Phases script step as defined here.

Manual


  • Clone as a submodule, or download this repo
  • Import ThunderCollection.xcproject into your project
  • Add ThunderCollection.framework to your Embedded Binaries.
  • Wherever you want to use ThunderCollection use import ThunderCollection.

Code Example


A Simple Collection View Controller

Setting up a collection view is massively simplified using thunder collection, in fact, we can get a simple collection view running with just a few lines of code. To create a custom collection view we subclass from CollectionViewController. We then set up our collection view in the viewDidLoad: method. In contrast to ThunderCollection no default implementations of CollectionItemDisplayable are provided, as there is no standard implementation of UICollectionViewCell like there is with UITableViewCell.

import ThunderCollection

class MyCollectionViewController: CollectionViewController {

override func viewDidLoad() {
super.viewDidLoad()

// ImageRow not provided by framework!
let imageRow = ImageRow(image: someImage)

let section = CollectionSection(rows: [imageRow])
data = [section]
}
}

GitHub


View Github

#cocoa #cocoapod #cocoapods #cocoatouch #collection #collectionkit #collectionview #collectionviewcell #collectionviewlayout #customlayout #delegate #dynamic #expandabletableview #flowlayout #hashtag #hashtags #ibinspectable #instagram #instagramanimation #ios #iosanimation #iosdevelopment #iossdk #iosswift #iosthirdparty #library #lightboxalgorithm #materialdesign #objectivec #protocol #swift #swiftanimation #swiftcollection #swiftimage #swiftlibrary #swiftpackagemanager #swiftui #swiftuicomponents #table #tableview #tableviewcell #taglistview #tags #tagsview #uicocoapods #uicollectionview #uicollectionviewanimation #uicollectionviewautolayout #uicollectionviewcell #uicollectionviewflowlayout #uicollectionviewlayout #uitableview #uitableviewanimation #uitableviewcell #uitableviewcontroller #xcode
YOU MIGHT ALSO LIKE...
exyte

     

camerakit-ios

CameraKit helps you add reliable camera to your app quickly. Our open source camera platform provides consistent capture results, service ...

HybridCamera

[video width="192" height="416" mp4="https://swiftgit.com/wp-content/uploads/2024/12/68747470733a2f2f7261776769742e636f6d2f7374796c656b69742f696d672f6d61737465722f7669645f6564697465645f325f326d622e676966.mp4"][/video]

TakeASelfie

An iOS framework that uses the front camera, detects your face and takes a selfie. This api opens the front ...

iOS-Depth-Sampler

Code examples of Depth APIs in iOS