Autumn Sale50% offCOMPOT
Developer Templates & ArchitectureFree ComponentiOS 16.0+Xcode 15+

App Microcopy Template

Structured template for organizing all user-facing copy into strongly-typed constants.

SwiftUI Implementation

Pure Vanilla Swift • No Dependencies
appMicrocopyTemplate.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 Store