All Projects → MostafaTaghipour → iOSEasyList

MostafaTaghipour / iOSEasyList

Licence: MIT License
A data-driven UICollectionView and UITableView framework for building fast and flexible lists

Programming Languages

swift
15916 projects
ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to iOSEasyList

TinyCoordinator
The Swift version of ThinningCoordinator focus on lighter view controllers.
Stars: ✭ 18 (-37.93%)
Mutual labels:  uitableview, uicollectionview, datasource
Carbon
🚴 A declarative library for building component-based user interfaces in UITableView and UICollectionView.
Stars: ✭ 1,034 (+3465.52%)
Mutual labels:  uitableview, uicollectionview, datasource
Thinningcoordinator
The UITableView/UICollectionView dataSource/delegate thinning coordinator, help thinning your UIViewController!
Stars: ✭ 25 (-13.79%)
Mutual labels:  uitableview, uicollectionview, datasource
ScrollAnimationShowcase
[ING] - UIScrollViewやUICollectionViewの特性を活用した表現サンプル
Stars: ✭ 15 (-48.28%)
Mutual labels:  uicollectionview, infinite-scroll, uicollectionviewlayout
Flowkit
A declarative type-safe framework for building fast and flexible list with Tables & Collection
Stars: ✭ 215 (+641.38%)
Mutual labels:  uitableview, uicollectionview, datasource
Genericdatasource
A generic small reusable components for data source implementation for UITableView/UICollectionView in Swift.
Stars: ✭ 127 (+337.93%)
Mutual labels:  uitableview, uicollectionview, datasource
Pagingkit
PagingKit provides customizable menu UI. It has more flexible layout and design than the other libraries.
Stars: ✭ 1,030 (+3451.72%)
Mutual labels:  uitableview, uicollectionview, uicollectionviewlayout
PagedLists
Paginated UITableView and UICollectionViews for iOS.
Stars: ✭ 69 (+137.93%)
Mutual labels:  pagination, uitableview, uicollectionview
Rglistkit
RGListKit is a Protocol & MVVM based framework to easily populate a UITableView or UICollectionView via single api.
Stars: ✭ 178 (+513.79%)
Mutual labels:  uitableview, uicollectionview, datasource
Closures
Swifty closures for UIKit and Foundation
Stars: ✭ 1,720 (+5831.03%)
Mutual labels:  uitableview, uicollectionview, datasource
Squaremosaiclayout
An extandable mosaic UICollectionViewLayout with a focus on extremely flexible customizations 🔶
Stars: ✭ 243 (+737.93%)
Mutual labels:  uitableview, uicollectionview, uicollectionviewlayout
Transfiguration
Mystical way to transform data into reusable view in Swift
Stars: ✭ 14 (-51.72%)
Mutual labels:  uitableview, uicollectionview, uicollectionviewlayout
ExcelCollectionViewLayout
An Excel-like UICollectionView's layout.
Stars: ✭ 32 (+10.34%)
Mutual labels:  uicollectionview, uicollectionviewlayout
Micro
🏎Fast diffing and type safe SwiftUI style data source for UICollectionView
Stars: ✭ 77 (+165.52%)
Mutual labels:  uicollectionview, datasource
react-example-paginated-list-infinite-scroll
Follow a React tutorial series with three parts to build a powerful component in React.
Stars: ✭ 43 (+48.28%)
Mutual labels:  pagination, infinite-scroll
GenericCells
Creating generic UITableViewCells and UICollectionViewCells instead of subclasses.
Stars: ✭ 81 (+179.31%)
Mutual labels:  uitableview, uicollectionview
react-native-paginated-listview
A simple paginated react-native ListView with a few customization options
Stars: ✭ 14 (-51.72%)
Mutual labels:  pagination, infinite-scroll
CollectionLayouts
A collection of UICollectionViewLayouts
Stars: ✭ 64 (+120.69%)
Mutual labels:  uicollectionview, uicollectionviewlayout
HorizontalStickyHeaderLayout
Horizontal UICollectionViewLayout with Sticky HeaderView
Stars: ✭ 70 (+141.38%)
Mutual labels:  uicollectionview, uicollectionviewlayout
CollectionViewMultiColumnLayout
A tiled waterfal/mosaic UICollectionViewLayout with support for explicit columns.
Stars: ✭ 13 (-55.17%)
Mutual labels:  uicollectionview, uicollectionviewlayout

iOSEasyList

CI Status Version License Platform

Android version is here

Framework to simplify the setup and configuration of UITableView and UICollectionView data sources and cells. It allows a type-safe setup of (UITableView,UICollectionView) DataSource and Delegate. DataSource also provides out-of-the-box diffing and animated deletions, inserts, moves and changes.

Everything you need to implement your own lists:

  • Easy to use UITableView and UICollectionView
  • No more calling reloadData
  • Diffable
  • Configurable animations
  • Sectioned
  • Pagination
  • Collapsible
  • Loading footer
  • Various UICollectionView layouts
  • Empty View
  • Filterable
  • Multiple data type

animation expandable filtering message layout pagination sectioned

Requirements

  • Swift 4
  • iOS 8+

Installation

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

pod 'iOSEasyList'

Usage

  1. Define your model
struct Movie{
    let id : String
    let title : String
}

//optional: If you want to use Diffable capabilities (e.g. automatic animations like delete, insert, move , reload)
//           inherit 'Diffable' ptotocol
extension Movie:Diffable{
    var diffIdentifier: String {
        return id
    }

    //optional: this function need for automatic reload
    func isEqual(to object: Any) -> Bool {
        guard let to = object as? Model else { return false }

        return self.id==to.id &&
               self.title==to.title
    }
}
  1. Define TableViewAdapter in ViewController
lazy var adapter: TableViewAdapter = { [unowned self] in
    let adapter=TableViewAdapter(tableView: tableView) { (tv, ip, item) -> (UITableViewCell) in
        let cell = tv.dequeueReusableCell(withIdentifier: MovieCell.reuseIdentifier, for: ip) as! MovieCell
        cell.data = item as? Movie
        return cell
    }
    
    //optional
    adapter.animationConfig = AnimationConfig(reload: .fade, insert: .top, delete: .bottom)
    
    return adapter
}()
  1. Set Data
override func viewDidLoad() {
    super.viewDidLoad()
    adapter.setData(newData: items, animated: true)
}
  1. That's it, for more samples please see example project

Example

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

Thanks for

Author

Mostafa Taghipour, [email protected]

License

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].