GitHub

SwiftDataTables

The powerful, flexible data table component that iOS deserves.

SwiftDataTables lets you display grid-like data sets in a beautifully formatted table for iOS. The goal: help users find the information they need — fast — through sorting, searching, and smooth scrolling, while giving developers an API that's easy to implement and endlessly customizable.

What's Included

  • Sorting — Tap any column header to sort ascending or descending
  • Searching — Built-in search bar or native UISearchController integration
  • Performance — 50,000 rows in 0.25s, 100K+ without breaking a sweat
  • Animated Updates — Change your data and watch only the affected rows animate
  • Self-Sizing Cells — Text wraps, rows grow, no manual height calculations
  • Type-Safe Columns — Define columns with key paths, not strings
  • Custom Cells — Drop in your own UICollectionViewCell with full Auto Layout
  • Fixed Columns — Freeze columns on left or right while the rest scroll

10 Lines to a Working Table

struct Employee: Identifiable {
    let id: String
    let name: String
    let department: String
}

let columns: [DataTableColumn<Employee>] = [
    .init("Name", \.name),
    .init("Department", \.department)
]

let dataTable = SwiftDataTable(columns: columns)
dataTable.setData(employees, animatingDifferences: true)

That's it. Sortable columns, animated updates, buttery-smooth scrolling — ready to go.

Quick StartInstall and build your first table in 5 minutes

Explore the Docs

Type-Safe ColumnsAll 8 ways to define columns — from simple properties to custom sorting Animated UpdatesHow diffing works, batch updates, and performance tips Custom CellsBuild rich cell layouts with your own UICollectionViewCell subclasses Column SortingControl which columns sort, how they sort, and the UI