App Microcopy Template
Structured template for organizing all user-facing copy into strongly-typed constants.
SwiftUI Implementation
Pure Vanilla Swift • No DependenciesappMicrocopyTemplate.swift
// Use Microcopy constants like this: Text(AppMicrocopy.Marketing.oneStep)
// Some terms come from https://copybook.me/
struct AppMicrocopy {
struct Onboarding {
static let welcomeTitle: LocalizedStringResource = "Welcome to [app name]"
static let welcomeSubtitle: LocalizedStringResource = "The best way to [app purpose]."
static let welcomeButtonLabel: LocalizedStringResource = "Get Started"
// Add more
}
struct Marketing {
static let oneStep: LocalizedStringResource = "You're one step away from your dream"
static let exploreFeatures: LocalizedStringResource = "Explore all features"
static let unlimitedItems: LocalizedStringResource = "Save unlimited number of items"
static let becomePro: LocalizedStringResource = "Become Pro with the Premium Subscription"
static let usedby: LocalizedStringResource = "Used by thousands of happy users around the world"
static let trsutedBy: LocalizedStringResource = "Trusted by smart developers around the world"
// Add more
}
struct Paywall {
static let planOptions: LocalizedStringResource = "Upgrade, downgrade, or cancel anytime."
static let comparePlans: LocalizedStringResource = "See all features and compare plans"
static let popularPlan: LocalizedStringResource = "Our most popular plan"
static let saveAnnualPlan: LocalizedStringResource = "Save with our Annual Plan"
static let morePlans: LocalizedStringResource = "More options"
// Add more
}
struct Profile {
static let nameLabel: LocalizedStringResource = "Name"
static let namePrompt: LocalizedStringResource = "Enter your name"
static let email: LocalizedStringResource = "Email"
static let emailPrompt: LocalizedStringResource = "Enter your email"
static let pickPhoto: LocalizedStringResource = "Pick a profile photo"
// Add more
}
struct Navigation {
static let home: LocalizedStringResource = "Home"
static let profile: LocalizedStringResource = "Profile"
static let summary: LocalizedStringResource = "Summary"
static let settings: LocalizedStringResource = "Settings"
static let help: LocalizedStringResource = "Help"
static let more: LocalizedStringResource = "Show More"
static let seeAll: LocalizedStringResource = "See All"
static let favorites: LocalizedStringResource = "Favorites"
static let saved: LocalizedStringResource = "Saved"
// Add more
}
struct Controls {
static let save: LocalizedStringResource = "Save"
static let done: LocalizedStringResource = "Done"
static let cancel: LocalizedStringResource = "Cancel"
static let cont: LocalizedStringResource = "Continue"
static let move: LocalizedStringResource = "Move"
static let open: LocalizedStringResource = "Open"
static let close: LocalizedStringResource = "Close"
static let archive: LocalizedStringResource = "Archive"
static let forward: LocalizedStringResource = "Forward"
static let reply: LocalizedStringResource = "Reply"
static let download: LocalizedStringResource = "Download"
static let upload: LocalizedStringResource = "Upload"
static let play: LocalizedStringResource = "Play"
static let stop: LocalizedStringResource = "Stop"
static let pause: LocalizedStringResource = "Pause"
static let next: LocalizedStringResource = "Next"
static let previous: LocalizedStringResource = "Previous"
static let skip: LocalizedStringResource = "Skip"
static let shuffle: LocalizedStringResource = "Shuffle"
// Add more
}
struct CTA {
static let tryFree: LocalizedStringResource = "Try it for Free!"
static let startTrial: LocalizedStringResource = "Start My Free Trial"
static let buy: LocalizedStringResource = "Buy Now"
static let getStarted: LocalizedStringResource = "Let’s get started!"
// Add more
}
struct Toast {
static let successLabel: LocalizedStringResource = "Success"
static let saveSuccessMsg: LocalizedStringResource = "Item has been saved"
static let changeSuccessMsg: LocalizedStringResource = "Your changes have been saved"
static let profileUpdateSuccessMsg: LocalizedStringResource = "Profile updated successfully"
static let failLabel: LocalizedStringResource = "Failure"
static let genericFailMsg: LocalizedStringResource = "Something went wrong, please try again"
static let renewSuccess: LocalizedStringResource = "Your subscription has been successfully renewed."
// Add more
}
struct EmptyState {
static let nothing: LocalizedStringResource = "Nothing. Nada. Zero. Try something else darling."
static let noStar: LocalizedStringResource = "You haven’t starred anything yet!"
static let noItem: LocalizedStringResource = "You don’t have any items yet. When you create one, it will show up here."
static let noFavorite: LocalizedStringResource = "You don’t have any favourite items yet. When you favourite one, it will show up here."
static let noBookmark: LocalizedStringResource = "You don’t have any bookmarked items yet. When you bookmark one, it will show up here."
static let nothingFound: LocalizedStringResource = "Uh-oh. We couldn’t find what you were looking for. Sorry."
static let nothingYet: LocalizedStringResource = "Nothing yet, check back soon!"
static let emptyList: LocalizedStringResource = "There is nothing in this list yet. When new items are pubished, they will appear here."
static let noNew: LocalizedStringResource = "Nothing new here. Looks like you’re all caught up!"
// Add more
}
struct Error {
static let generic: LocalizedStringResource = "Something went wrong! Please try again"
static let unexpected: LocalizedStringResource = "An unexpected error occurred. Try again."
static let noAccess: LocalizedStringResource = "You do not have permission to access this feature."
static let noAccount: LocalizedStringResource = "No account exists matching that email address."
static let processing: LocalizedStringResource = "There was an error processing your request."
static let tryAgain: LocalizedStringResource = "Please try again and contact us if the issue persists."
static let fatal: LocalizedStringResource = "A fatal error has occurred"
// Add more
}
struct Warning {
static let generic: LocalizedStringResource = "This action cannot be undone. Are you sure you want to proceed?"
static let delete: LocalizedStringResource = "This will really delete all your data, including all your progress and account information."
static let changes: LocalizedStringResource = "Please be careful. Changes made here will be permanent."
static let weakConnection: LocalizedStringResource = "Uh-oh. We sense a weak internet connection."
static let offline: LocalizedStringResource = "You appear to be offline, this might be the problem."
// Add more
}
struct Settings {
static let chooseLanguage: LocalizedStringResource = "Choose the language you’d like to use."
static let chooseCurrency: LocalizedStringResource = "Choose the default currency you’d like to use."
static let chooseNotificationTime: LocalizedStringResource = "Choose when to be notified"
static let getFeedback: LocalizedStringResource = "If there’s something we could do better, please let us know. We’ll do our best to make you happy."
static let rateApp: LocalizedStringResource = "Rate us on the App Store"
static let reviewApp: LocalizedStringResource = "Leave us a review on the App Store"
static let contactUs: LocalizedStringResource = "If you have any questions or comments, please feel free to contact us."
static let helpOffer: LocalizedStringResource = "Have questions? We’re here to help."
// Add more
}
}Ready to copy and paste directly into any Xcode project running iOS 16.0+.
Recommended Use Cases
- Integrating into standard iOS helper workflows
- Polishing app UI with native iOS system styling
- Speeding up custom SwiftUI screen development
Component Details
- iOS Compatibility
- iOS 16.0+
- Xcode Version
- Xcode 15+
- Platform
- iOS
- License Tier
- Free
- Themes & Contexts
- other
C
Compot for iOS
Native SwiftUI playground app
Preview all 130+ components interactively on your device and copy code straight to Xcode with 1 tap.
Get Compot on the App StoreRelated SwiftUI Components
More components in Developer Templates & Architecture and related app architectures.
Developer Templates & ArchitectureiOS 16.0+
Content Unavailable View Template
Standard empty state template with icon, title, description, and action button.
View Component & Code
Developer Templates & ArchitectureiOS 16.0+
App Styles Template
Architecture guide and code structure for centralized color palettes, padding constants, and corner radiuses.
View Component & Code