tag:github.com,2008:https://github.com/jakemarsh/JMStatefulTableViewController/releasesRelease notes from JMStatefulTableViewController2025-12-31T18:55:50Ztag:github.com,2008:Repository/4221095/2.0.02025-12-31T19:33:09Z2.0.0 - Swift Rewrite<h2>Complete Swift Rewrite</h2>
<p>JMStatefulTableViewController has been completely rewritten in modern Swift with async/await and SwiftUI support.</p>
<h3>New Features</h3>
<ul>
<li><strong>Modern Swift API</strong> - async/await for data loading</li>
<li><strong>SwiftUI Support</strong> - <code>JMStatefulList</code> component</li>
<li><strong>UIKit Support</strong> - <code>JMStatefulTableViewController</code> subclass</li>
<li><strong>Loading States</strong> - Automatic idle/loading/empty/error state management</li>
<li><strong>Pull-to-Refresh</strong> - Built-in with native <code>UIRefreshControl</code></li>
<li><strong>Infinite Scrolling</strong> - Automatic pagination support</li>
<li><strong>No Dependencies</strong> - Removed SVPullToRefresh dependency</li>
</ul>
<h3>Requirements</h3>
<ul>
<li>iOS 15.0+ / macOS 12.0+ / tvOS 15.0+ / watchOS 8.0+</li>
<li>Swift 5.9+</li>
<li>Xcode 15+</li>
</ul>
<h3>Installation</h3>
<div class="highlight highlight-source-swift notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="dependencies: [
.package(url: "https://github.com/jakemarsh/JMStatefulTableViewController.git", from: "2.0.0")
]"><pre><span class="pl-ent">dependencies:</span> <span class="pl-kos">[</span>
<span class="pl-kos">.</span><span class="pl-k">package</span><span class="pl-kos">(</span>url<span class="pl-kos">:</span> <span class="pl-s">"</span><span class="pl-s">https://github.com/jakemarsh/JMStatefulTableViewController.git</span><span class="pl-s">"</span><span class="pl-kos">,</span> from<span class="pl-kos">:</span> <span class="pl-s">"</span><span class="pl-s">2.0.0</span><span class="pl-s">"</span><span class="pl-kos">)</span>
<span class="pl-kos">]</span></pre></div>
<h3>Migration from 1.x</h3>
<p>The Objective-C API with SVPullToRefresh has been replaced with a modern Swift API using native iOS controls. See README for migration guide.</p>jakemarshtag:github.com,2008:Repository/4221095/0.1.22013-02-02T23:02:20Z0.1.2<p>Fixing all the weirdness with SVPullToRefresh's latest changes.</p>jakemarshtag:github.com,2008:Repository/4221095/0.1.12013-02-02T22:50:57Z0.1.1: Merge pull request #3 from shekibobo/master<p>Fix iOS6 PTR Crash and cleanup CocoaPod settings</p>jakemarshtag:github.com,2008:Repository/4221095/0.1.02012-07-23T04:27:45Z0.1.0<p>Nevermind, this is what CocoaPods wants.</p>jakemarshtag:github.com,2008:Repository/4221095/0.12012-07-23T03:55:49Z0.1<p>Getting this baby ready for primetime!</p>jakemarshtag:github.com,2008:Repository/4221095/0.0.22012-05-13T02:59:51Z0.0.2<p>Bumping verison</p>jakemarshtag:github.com,2008:Repository/4221095/0.0.12012-05-12T19:36:34Z0.0.1<p>More .podspec work.</p>jakemarsh