A Swift package for iOS, macOS, and visionOS apps to showcase new features with customizable automatic or manual presentation.
WhatsNewKit is a Swift package that helps developers showcase new features in their iOS, macOS, and visionOS apps. It automatically presents a "What's New" screen when users update the app, highlighting recent changes and improvements. The package solves the problem of users missing new features by providing a clean, customizable interface for feature announcements.
iOS, macOS, and visionOS developers who want to improve user onboarding and feature discovery in their apps, especially those using SwiftUI, UIKit, or AppKit.
Developers choose WhatsNewKit for its seamless integration across Apple platforms, automatic version tracking, and high customizability. It eliminates the need to build custom onboarding screens from scratch while offering native performance and design flexibility.
Showcase your awesome new app features 📱
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Works seamlessly with SwiftUI, UIKit, and AppKit on iOS, macOS, and visionOS, as highlighted in the features list and platform badges.
Prevents repeat displays by storing presented versions in UserDefaults, iCloud, or memory, with detailed WhatsNewVersionStore implementations.
Offers adjustable layouts, colors, actions, and Markdown support for subtitles, as shown in the Layout and WhatsNew.Feature sections.
Provides simple modifiers like .whatsNewSheet() and environment-based setup for automatic presentation, reducing boilerplate code.
Limited to iOS, macOS, and visionOS, with no support for other platforms, which restricts use in cross-platform projects.
Using NSUbiquitousKeyValueWhatsNewVersionStore requires enabling iCloud Key-value storage in Xcode, adding setup complexity.
Haptic feedback for actions is only available on iOS, as noted in the PrimaryAction and SecondaryAction docs, reducing consistency on macOS and visionOS.
Primarily designed for version-based feature lists, lacking built-in support for dynamic content fetching or real-time updates.