generators-announcement-banner

Generate a SwiftUI in-app announcement banner system with remote JSON fetching and UTC scheduling.

4|1|Updated Apr 2, 2026
One-click install
npx skills add https://github.com/AutisticAF/claude-code-apple-dev-plugin --skill generators-announcement-banner
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: generators-announcement-banner
Source: https://github.com/AutisticAF/claude-code-apple-dev-plugin/tree/main/skills/generators-announcement-banner
Command: npx skills add https://github.com/AutisticAF/claude-code-apple-dev-plugin --skill generators-announcement-banner

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Many apps need a lightweight, configurable in-app announcement system to present maintenance alerts, promotions, feature highlights, and contextual messages without shipping a new app build or misusing push notifications. This Skill removes the friction of building a production-ready banner system by providing models, providers, scheduling, UI components, and integration patterns so teams can deliver targeted messages reliably.

Core Features & Use Cases

  • Remote and local content sources with a RemoteAnnouncementProvider and LocalAnnouncementProvider for remote JSON fetching, caching, and local fallbacks.
  • Priority-based single-banner selection, persistent dismissal tracking, timezone-aware scheduling, and audience targeting for promotions, maintenance warnings, and feature highlights.
  • SwiftUI-ready UI components and a ViewModifier for top/bottom/floating placement, deep link and URL action handling, accessibility announcements, and testable manager/provider abstractions.

Quick Start

Generate a SwiftUI announcement banner system with a RemoteAnnouncementProvider, dismissal persistence, UTC scheduling, deep link and URL actions, and a top-position banner modifier.

Frequently Asked Questions about generators-announcement-banner

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I display remote in-app announcement banners in SwiftUI without app updates?

You can display remote in-app announcement banners in SwiftUI by fetching remote JSON content with caching, applying priority-based selection, and using a ViewModifier for top, bottom, or floating banner placement. This system handles dismissal persistence and deep link actions.

How do I schedule time-sensitive maintenance alerts in iOS using UTC?

Schedule time-sensitive maintenance alerts in iOS using UTC-based scheduling with timezone-aware logic. The announcement banner system validates start and end times against UTC, ensuring maintenance warnings appear and disappear correctly across all user timezones without requiring local device time calculations.

Can I use a single announcement banner system for both remote promotions and local fallbacks?

Yes, you can use a single announcement banner system for both remote promotions and local fallbacks. It includes a RemoteAnnouncementProvider for JSON fetching and caching, alongside a LocalAnnouncementProvider, ensuring contextual messaging displays even if the remote fetch fails.

What is the best way to track banner dismissal persistence and accessibility in macOS apps?

Track banner dismissal persistence and accessibility in macOS apps by saving dismissal state locally and emitting accessibility announcements when banners appear. The SwiftUI banner modifier integrates VoiceOver announcements, ensuring feature highlights are audible and do not reappear after dismissal.

Does this announcement banner system support deep linking and Swift concurrency?

Yes, the announcement banner system supports deep linking and Swift concurrency. It handles deep link and URL actions natively within SwiftUI components, and its manager and provider abstractions are designed for testability and compatibility with modern Swift asynchronous operations.

How do I resolve multiple active announcements to show only one banner at a time?

Resolve multiple active announcements to show one banner at a time by applying priority-based single-banner selection. The system evaluates all active remote and local announcements against scheduling, audience targeting, and dismissal state, displaying only the highest priority message.