Skip to content

Lakr233/ListViewKit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ListViewKit

A modern, glitch-free UITableView replacement for Swift + UIKit.

Preview

Features

  • 🌀 No Glitch on contentSize Change: Instantly adapts to content size changes without any visual glitches
  • 🛡️ Smooth Scrolling: User scrolling remains perfectly smooth, even during data updates
  • 🔄 Live Data Refresh: Data source can be updated at any time, with immediate and safe UI refresh
  • 📦 Swift Package Manager: Easy to integrate into your project using SPM

Installation

Add the following to your Package.swift file:

dependencies: [
    .package(url: "https://github.com/Lakr233/ListViewKit", from: "0.1.0"),
]

Platform compatibility:

  • iOS 13.0+
  • macCatalyst 13.0+

Usage

  1. Define your ViewModel
struct ViewModel: Identifiable, Hashable {
    var id: UUID = .init()
    var text: String = ""
    enum RowKind: Hashable {
        case text
    }
}
  1. Create ListView and set up Diffable Data Source
let listView = ListView(frame: .zero)
let dataSource: ListViewDiffableDataSource<ViewModel> = .init(listView: listView)
  1. Apply your data
var snapshot = dataSource.snapshot()
snapshot.append(ViewModel(text: "Hello ListViewKit"))
dataSource.applySnapshot(snapshot, animatingDifferences: true)

License

This project is licensed under the MIT License. See the LICENSE file for details.


Copyright 2025 © Lakr233 & FlowDown Team. All rights reserved.

About

An UITableView replacement that won't create glitches when changing data. Requires iOS 13.0+.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages