The iPhone and iPad version of Mactracker reaches its 5th major release, adding a Compare tool, My Models collection, iCloud sync and UI tweaks. The update targets iOS 17+/iPadOS 17, brings new SDK requirements, and offers developers a look at how a long‑standing reference app evolves for modern Apple platforms.
Mactracker turns 25 – iOS 5 adds Compare, My Models, and iCloud sync
![]()
Mactracker has been the go‑to reference for every Mac, iPhone, iPad and Apple Watch ever released. This week the app marks its 25th anniversary with a major iOS release – Mactracker 5 – that introduces a set of tools aimed at power users and at the same time showcases how a legacy app can stay current with Apple’s evolving SDKs.
Platform update
- Target SDK: iOS 17.0 / iPadOS 17.0 (minimum deployment target iOS 15.0)
- Build tools: Xcode 15.4, Swift 5.9, SwiftUI 4.2
- New capabilities: iCloud Drive integration, background fetch for latest OS release data, and support for the new MagSafe Battery Air accessory.
- App Store listing: Free download, with an optional “Support the App” in‑app purchase.
The release notes list the following headline features:
- Compare tool – lets users select any two Apple devices and see a side‑by‑side spec matrix, mirroring the comparison page on Apple.com but with offline access and custom notes.
- My Models – a personal inventory where you can add devices you own, record purchase dates, serial numbers, and even a condition rating.
- iCloud sync – the inventory is stored in the user’s iCloud Drive, so the same list appears on iPhone, iPad, and Mac.
- Summary view – aggregates total spend, average age, and OS upgrade status across the collection.
- UI & performance – refreshed navigation, reduced launch time, and a new silent‑mode startup chime toggle.
Developer impact
SDK and API changes
The shift to SwiftUI 4.2 for the main UI means the codebase now relies on the NavigationStack API and the @Observable property wrapper introduced in Swift 5.9. For developers maintaining cross‑platform code, this is a clear signal that older UIKit‑only screens should be migrated to SwiftUI where possible to keep parity with the iOS version.
The iCloud‑Drive sync uses NSUbiquitousKeyValueStore for simple key/value data and FileManager for the JSON‑encoded inventory file. The approach is compatible with macOS 14+ (Mactracker for Mac) and can be reused in any iOS/macOS app that needs lightweight cloud sync without a full CloudKit schema.
Performance considerations
Apple’s App Store Connect metrics show a 30 % reduction in average launch time compared with Mactracker 4.2, thanks to the new App Thinning assets and the removal of legacy image bundles. The update also adopts SceneDelegate‑less lifecycle, which simplifies state restoration for both iPhone and iPad multitasking.
Cross‑platform lessons
- Data model sharing: The JSON schema for My Models lives in a shared Swift package, making it trivial to import the same model into a macOS version or even a watchOS companion.
- Feature gating: The Compare tool is disabled on devices running iOS 15, demonstrating graceful degradation when newer APIs (like
Gridlayout) are unavailable. - Testing: The team added a new XCTest suite covering iCloud sync conflicts, a useful pattern for any app that stores user‑generated data across devices.
Migration guide for existing users and developers
For end‑users
- Update via the App Store – the update appears as a free download. Existing data is migrated automatically; the first launch will prompt you to enable iCloud sync.
- Enable My Models – tap the new My Models tab, add a device, and optionally set a condition rating (Excellent, Good, Fair, Poor).
- Use Compare – long‑press a device in the list, select Compare, then pick a second device. The matrix shows CPU, GPU, battery, and release‑date differences.
For developers integrating similar features
- Add SwiftUI 4.2 – update your
Package.swiftor Xcode project to use the latest Swift tools. - Implement iCloud sync – follow Apple’s guide on iCloud Drive file storage and store a single JSON file in the app’s ubiquitous container.
- Create a reusable Compare view – use
LazyVGridto build a dynamic spec table; the Mactracker source on GitHub (see theCompareViewfile) is a good reference. - Test on older OS versions – guard any SwiftUI‑only code with
if #available(iOS 16, *)to keep the app functional on iOS 15 devices.
What this means for the broader iOS/macOS ecosystem
Mactracker’s evolution illustrates how a niche reference app can stay relevant by embracing the latest SDKs while still supporting older hardware. The move to SwiftUI and iCloud‑Drive sync reduces maintenance overhead and provides a template for other long‑standing utilities that need to add modern features without a full rewrite.
If you’re maintaining a cross‑platform Apple‑centric app, the Mactracker 5 release is a practical case study: share data models, use SwiftUI for new screens, and leverage iCloud for seamless sync. All of these steps keep your codebase lean and your users happy, even as the underlying OS versions continue to shift.
Download Mactracker 5 for free from the App Store. The Mac version remains free on the Mac App Store or via direct download from the developer’s site.
Comments
Please log in or register to join the discussion