Mobile ios design
Master SwiftUI and Apple Human Interface Guidelines patterns for building native iOS apps. Use when designing iOS interfaces, implementing SwiftUI UI, adding navigation (TabView / NavigationStack), theming, or following Apple's HIG. Includes the Tertiary Infotech Academy house-style bottom-tab nav with Feedback + About tabs.From its SKILL.md
npx -y skills add alfredang/skills --skill mobile-ios-designAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
5.9 KB, ~1.3k tokens by cl100k_base, as published. Nobody here has run it
iOS Mobile Design
Master SwiftUI and the Apple Human Interface Guidelines (HIG) to build modern, adaptive iOS
applications that feel native on iPhone and iPad. This is the iOS twin of the
mobile-android-design skill.
When to Use This Skill
- Designing iOS app interfaces following the Human Interface Guidelines
- Building SwiftUI views, layouts, and reusable components
- Implementing iOS navigation patterns (
TabView,NavigationStack, sheets) - Adding a bottom-tab navigation with Feedback + About tabs (house style — see below)
- Creating adaptive layouts for iPhone and iPad (size classes,
NavigationSplitView) - Theming with semantic colors, SF Symbols, Dynamic Type, and dark mode
- Building accessible iOS interfaces (VoiceOver, contrast, hit targets)
Core Concepts
- SwiftUI-first, declarative. Describe UI as a function of state; hoist state with
@State/@Binding/@Observable(orObservableObjectpre-iOS 17). Keep views small and composable. - Semantic over literal. Use system materials and a central
Themeof color tokens, never rawColor(red:…)scattered inline — this is what gives automatic dark-mode support. - SF Symbols for iconography (
Image(systemName:)/Label) — they scale with Dynamic Type and adapt to weight and color automatically. - HIG layout rhythm. Respect safe areas, use system spacing, 44×44pt minimum hit targets, grouped rounded-card surfaces, and large navigation titles for top-level screens.
Deeper material is split into references/ to keep this body small:
references/swiftui-components.md— cards, lists, forms, buttons, the quick-start component.references/ios-navigation.md—TabView,NavigationStack, and the full Feedback + About bottom-nav reference implementation.references/hig-theming.md—Themetokens, dark mode, SF Symbols, Dynamic Type, accessibility.
Bottom-tab navigation with Feedback + About (house style)
Add a root TabView with the app's content as the first tab, plus Feedback and About
tabs in the Tertiary Infotech Academy house style. (Full code: references/ios-navigation.md.)
- Feedback tab:
Title+Messagefields and a Send via WhatsApp button that openshttps://wa.me/6588666375?text=<title + message>. Build the URL withURLComponents/URLQueryItem(never string-concatenation) so the text is percent-encoded correctly. Thewa.mehttps link works whether or not WhatsApp is installed — noLSApplicationQueriesSchemes. - About tab: an app card (name + description), a Developer card ("Tertiary Infotech
Academy Pte Ltd" +
tertiaryinfotech.comlink), an optional Data source card (mandatory when surfacing government/official data — doubles as App Review attribution), and a Version row read fromBundle.main.infoDictionary(CFBundleShortVersionString+CFBundleVersion).
// MainTabView.swift — make this the root: WindowGroup { MainTabView() }
struct MainTabView: View {
var body: some View {
TabView {
ContentScreen() // your existing first tab
.tabItem { Label("Home", systemImage: "house.fill") }
FeedbackView()
.tabItem { Label("Feedback", systemImage: "bubble.left.and.bubble.right.fill") }
AboutView()
.tabItem { Label("About", systemImage: "info.circle.fill") }
}
.tint(Theme.accent) // selected-tab color from the central Theme
}
}
On a deployment target < iOS 18 use the classic .tabItem { Label(...) } API (the
Tab("…", systemImage:) initializer is iOS 18+). The Feedback TextEditor needs
.scrollContentBackground(.hidden) to show a custom background (iOS 16+).
Best Practices
- Use a central
Theme: reference color tokens (Theme.accent,Theme.card), never rawColorliterals — guarantees consistent dark mode. - Semantic colors & materials: prefer
.background(.regularMaterial)and system colors so contrast adapts automatically. - SF Symbols +
Label: pair an icon with text; symbols scale with Dynamic Type. - Dynamic Type: use text styles (
.body,.title3) not fixed point sizes; test at XXL. - Hit targets: minimum 44×44pt for every interactive control.
- Safe areas: respect them; only ignore deliberately for full-bleed backgrounds.
- State hoisting: lift state to make views reusable and previewable.
#Preview: add previews in light + dark and a large Dynamic Type size.- Adaptive: use size classes /
NavigationSplitViewfor iPad instead of hardcoding widths.
Common Issues
- No dark mode: caused by raw
Colorliterals — route everything throughTheme. - Tab init won't compile:
Tab(_:systemImage:)is iOS 18+; below that use.tabItem. TextEditorshows default background: add.scrollContentBackground(.hidden).- Broken WhatsApp/links text: build URLs with
URLComponents, not string concatenation. - Janky long lists: use
List/LazyVStack, not a plainVStackin aScrollView. - VoiceOver gaps: add
.accessibilityLabelto icon-only buttons; group related elements. - Layout fights safe area: prefer
safeAreaInset/paddingover magic numbers.
Verify
If the project is XcodeGen-based, run xcodegen generate, then a Debug build
(xcodebuild -scheme <Scheme> -destination 'platform=iOS Simulator,name=iPhone 16' build)
before shipping. Pair with ios-feedback-about for a turn-key Feedback/About drop-in.
What ships with it: 3 files
11.3 KB alongside SKILL.md
references/
- hig-theming.md2.6 KB
- ios-navigation.md6.1 KB
- swiftui-components.md2.6 KB