ASD

Mobile Ios Design

Domina las Human Interface Guidelines de iOS y los patrones de SwiftUI para construir apps nativas. Úsalo al diseñar interfaces iOS, implementar vistas SwiftUI o seguir los principios de diseño de Apple.

Estrellas
38.8k

en todo el repo

Actividad
34

0–100, la ruta de este skill

Actualizado
hace 5 meses

último commit aquí

Commits
0

últimos 90 días

Contexto
1.7k tok

51 tok en reposo

Paquete
4 archivos

48 KB

Instalar

Funciona con cualquier agente que lea SKILL.md

npx -y skills add wshobson/agents --skill mobile-ios-design --agent claude-code

Se instala solo en este repositorio.

Qué hace

  • Aplica las Human Interface Guidelines de Apple y patrones SwiftUI para construir interfaces iOS nativas
  • Provee código SwiftUI para stacks, grids, NavigationStack, TabView, SF Symbols y materiales
  • Da buenas prácticas de accesibilidad, Dynamic Type, Dark Mode y layouts adaptativos para iPhone/iPad

Úsalo cuando

  • Diseñar interfaces de apps iOS siguiendo el HIG de Apple
  • Construir vistas y layouts en SwiftUI
  • Implementar patrones de navegación iOS (NavigationStack, TabView, sheets)
  • Diseñar para Dynamic Type, Dark Mode o interfaces accesibles

No lo uses cuando

    Qué lo activa

    Di cualquiera de estas frases y el agente debería cargar este skill.

    • Diseña una pantalla de detalle siguiendo el HIG de Apple en SwiftUI
    • Crea un TabView con NavigationStack para mi app iOS
    • Ayúdame a que mi interfaz soporte Dynamic Type y Dark Mode

    SKILL.md

    En inglés

    iOS Mobile Design

    Master iOS Human Interface Guidelines (HIG) and SwiftUI patterns to build polished, native iOS applications that feel at home on Apple platforms.

    When to Use This Skill

    • Designing iOS app interfaces following Apple HIG
    • Building SwiftUI views and layouts
    • Implementing iOS navigation patterns (NavigationStack, TabView, sheets)
    • Creating adaptive layouts for iPhone and iPad
    • Using SF Symbols and system typography
    • Building accessible iOS interfaces
    • Implementing iOS-specific gestures and interactions
    • Designing for Dynamic Type and Dark Mode

    Core Concepts

    1. Human Interface Guidelines Principles

    Clarity: Content is legible, icons are precise, adornments are subtle Deference: UI helps users understand content without competing with it Depth: Visual layers and motion convey hierarchy and enable navigation

    Platform Considerations:

    • iOS: Touch-first, compact displays, portrait orientation
    • iPadOS: Larger canvas, multitasking, pointer support
    • visionOS: Spatial computing, eye/hand input

    2. SwiftUI Layout System

    Stack-Based Layouts:

    // Vertical stack with alignment
    VStack(alignment: .leading, spacing: 12) {
        Text("Title")
            .font(.headline)
        Text("Subtitle")
            .font(.subheadline)
            .foregroundStyle(.secondary)
    }
    
    // Horizontal stack with flexible spacing
    HStack {
        Image(systemName: "star.fill")
        Text("Featured")
        Spacer()
        Text("View All")
            .foregroundStyle(.blue)
    }
    

    Grid Layouts:

    // Adaptive grid that fills available width
    LazyVGrid(columns: [
        GridItem(.adaptive(minimum: 150, maximum: 200))
    ], spacing: 16) {
        ForEach(items) { item in
            ItemCard(item: item)
        }
    }
    
    // Fixed column grid
    LazyVGrid(columns: [
        GridItem(.flexible()),
        GridItem(.flexible()),
        GridItem(.flexible())
    ], spacing: 12) {
        ForEach(items) { item in
            ItemThumbnail(item: item)
        }
    }
    

    3. Navigation Patterns

    NavigationStack (iOS 16+):

    struct ContentView: View {
        @State private var path = NavigationPath()
    
        var body: some View {
            NavigationStack(path: $path) {
                List(items) { item in
                    NavigationLink(value: item) {
                        ItemRow(item: item)
                    }
                }
                .navigationTitle("Items")
                .navigationDestination(for: Item.self) { item in
                    ItemDetailView(item: item)
                }
            }
        }
    }
    

    TabView (iOS 18+):

    struct MainTabView: View {
        @State private var selectedTab = 0
    
        var body: some View {
            TabView(selection: $selectedTab) {
                Tab("Home", systemImage: "house", value: 0) {
                    HomeView()
                }
    
                Tab("Search", systemImage: "magnifyingglass", value: 1) {
                    SearchView()
                }
    
                Tab("Profile", systemImage: "person", value: 2) {
                    ProfileView()
                }
            }
        }
    }
    

    4. System Integration

    SF Symbols:

    // Basic symbol
    Image(systemName: "heart.fill")
        .foregroundStyle(.red)
    
    // Symbol with rendering mode
    Image(systemName: "cloud.sun.fill")
        .symbolRenderingMode(.multicolor)
    
    // Variable symbol (iOS 16+)
    Image(systemName: "speaker.wave.3.fill", variableValue: volume)
    
    // Symbol effect (iOS 17+)
    Image(systemName: "bell.fill")
        .symbolEffect(.bounce, value: notificationCount)
    

    Dynamic Type:

    // Use semantic fonts
    Text("Headline")
        .font(.headline)
    
    Text("Body text that scales with user preferences")
        .font(.body)
    
    // Custom font that respects Dynamic Type
    Text("Custom")
        .font(.custom("Avenir", size: 17, relativeTo: .body))
    

    5. Visual Design

    Colors and Materials:

    // Semantic colors that adapt to light/dark mode
    Text("Primary")
        .foregroundStyle(.primary)
    Text("Secondary")
        .foregroundStyle(.secondary)
    
    // System materials for blur effects
    Rectangle()
        .fill(.ultraThinMaterial)
        .frame(height: 100)
    
    // Vibrant materials for overlays
    Text("Overlay")
        .padding()
        .background(.regularMaterial, in: RoundedRectangle(cornerRadius: 12))
    

    Shadows and Depth:

    // Standard card shadow
    RoundedRectangle(cornerRadius: 16)
        .fill(.background)
        .shadow(color: .black.opacity(0.1), radius: 8, y: 4)
    
    // Elevated appearance
    .shadow(radius: 2, y: 1)
    .shadow(radius: 8, y: 4)
    

    Quick Start Component

    import SwiftUI
    
    struct FeatureCard: View {
        let title: String
        let description: String
        let systemImage: String
    
        var body: some View {
            HStack(spacing: 16) {
                Image(systemName: systemImage)
                    .font(.title)
                    .foregroundStyle(.blue)
                    .frame(width: 44, height: 44)
                    .background(.blue.opacity(0.1), in: Circle())
    
                VStack(alignment: .leading, spacing: 4) {
                    Text(title)
                        .font(.headline)
                    Text(description)
                        .font(.subheadline)
                        .foregroundStyle(.secondary)
                        .lineLimit(2)
                }
    
                Spacer()
    
                Image(systemName: "chevron.right")
                    .foregroundStyle(.tertiary)
            }
            .padding()
            .background(.background, in: RoundedRectangle(cornerRadius: 12))
            .shadow(color: .black.opacity(0.05), radius: 4, y: 2)
        }
    }
    

    Best Practices

    1. Use Semantic Colors: Always use .primary, .secondary, .background for automatic light/dark mode support
    2. Embrace SF Symbols: Use system symbols for consistency and automatic accessibility
    3. Support Dynamic Type: Use semantic fonts (.body, .headline) instead of fixed sizes
    4. Add Accessibility: Include .accessibilityLabel() and .accessibilityHint() modifiers
    5. Use Safe Areas: Respect safeAreaInset and avoid hardcoded padding at screen edges
    6. Implement State Restoration: Use @SceneStorage for preserving user state
    7. Support iPad Multitasking: Design for split view and slide over
    8. Test on Device: Simulator doesn't capture full haptic and performance experience

    Common Issues

    • Layout Breaking: Use .fixedSize() sparingly; prefer flexible layouts
    • Performance Issues: Use LazyVStack/LazyHStack for long scrolling lists
    • Navigation Bugs: Ensure NavigationLink values are Hashable
    • Dark Mode Problems: Avoid hardcoded colors; use semantic or asset catalog colors
    • Accessibility Failures: Test with VoiceOver enabled
    • Memory Leaks: Watch for strong reference cycles in closures

    Reproducido de wshobson/agents bajo licencia MIT. Leer esta página en markdown.

    Archivos

    4 archivos en el paquete. Solo se lee SKILL.md al activarse — las referencias se cargan si el skill decide que las necesita.

    Detalles

    Creador
    wshobson
    Categoría
    Diseño y UI
    Licencia
    MIT
    Recursos incluidos
    referencias
    Repositorio
    wshobson/agents
    Código fuente
    Ver SKILL.md

    Etiquetas

    Más de wshobson/agents

    Este repo incluye 180 skills. Si instalas uno, normalmente ya tienes los demás.

    Úsalo al seleccionar y colocar iconos, imágenes, SVGs, diagramas o infografías de apoyo aprobados en un PPTX editable.

    Costo de contexto al activarse
    344 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 26 días
    documentos

    Úsalo cuando pidan optimizar un prompt, mejorar su rendimiento, diseñar una plantilla, aplicar chain-of-thought, few-shot prompting o técnicas avanzadas de prompt engineering para producción.

    Costo de contexto al activarse
    1.3k tok
    Tamaño del paquete
    10 archivos
    Última actualización
    el mes pasado
    herramientas desarrollo

    Úsalo al redactar o reparar una especificación JSON con coordenadas explícitas para un PPTX editable.

    Costo de contexto al activarse
    489 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 26 días
    documentos

    Úsalo para validar o reparar un PPTX editable en cuanto a geometría, accesibilidad, editabilidad nativa, linaje de fuente e integridad del paquete OOXML.

    Costo de contexto al activarse
    409 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 26 días
    documentos

    Úsalo para analizar un PPTX de referencia en modo solo lectura: estructura, tema, tipografía, ritmo de layout, diagnósticos, catálogos de plantillas derivados o inspección segura del paquete OOXML.

    Costo de contexto al activarse
    689 tok
    Tamaño del paquete
    8 archivos
    Última actualización
    hace 26 días
    documentos

    Úsalo al preparar la narrativa, las fuentes y el contexto de diseño para un nuevo deck PPTX editable.

    Costo de contexto al activarse
    415 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 26 días
    documentos

    Skills relacionados

    Úsalo al hacer cambios de UI/frontend guiados por contexto visual: selecciones de elementos, anotaciones o capturas de pantalla junto con la solicitud de cambio.

    Costo de contexto al activarse
    547 tok
    Tamaño del paquete
    1 archivo
    Última actualización
    el mes pasado
    diseno ui

    Diseñador de landing pages centrado en marca: hace una entrevista de identidad visual y luego genera e itera la página con Stitch, entregando HTML listo para desplegar.

    Costo de contexto al activarse
    3.9k tok
    Tamaño del paquete
    4 archivos
    Última actualización
    hace 2 meses
    diseno ui

    Testea contratos inteligentes de forma exhaustiva con Hardhat y Foundry: tests unitarios, de integración y forking de mainnet.

    Costo de contexto al activarse
    2k tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 2 meses
    testing qa