For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navegação principal
Codex

Codex use case

Crie uma estrutura de aplicativo para Mac

Use o Codex para criar uma estrutura de aplicativo nativa para Mac com SwiftUI, incluindo barra lateral, painel de detalhes, inspetor, comandos e Configurações.

Difficulty Avançado
Time horizon 1 h

Use o Codex e o plug-in Build macOS Apps para transformar uma ideia em um aplicativo nativo para desktop baseado em NavigationSplitView, manter estável a seleção da barra lateral, adicionar menus, barras de ferramentas e atalhos de teclado e mover as preferências para uma cena Settings dedicada.

Ideal para

  • Ideias de novos aplicativos para Mac ou conceitos criados primeiro para iPad ou web que precisam de uma verdadeira estrutura de desktop, com navegação persistente, menus, barras de ferramentas e atalhos de teclado
  • Ferramentas de edição, biblioteca, administração ou revisão nas quais a seleção da barra lateral controla um painel de detalhes, e o inspetor disponibiliza metadados ou ações secundárias
  • Aplicativos para Mac cujas configurações devem ficar em uma janela de preferências dedicada, em vez de serem exibidas como mais uma tela na pilha principal de conteúdo

Contents

    ← Todos os casos de uso

    Crie uma estrutura de aplicativo para Mac

    Use o Codex para criar uma estrutura de aplicativo nativa para Mac com SwiftUI, incluindo barra lateral, painel de detalhes, inspetor, comandos e Configurações.

    Use o Codex e o plug-in Build macOS Apps para transformar uma ideia em um aplicativo nativo para desktop baseado em NavigationSplitView, manter estável a seleção da barra lateral, adicionar menus, barras de ferramentas e atalhos de teclado e mover as preferências para uma cena Settings dedicada.

    Avançado
    1 h

    Use o Codex e o plug-in Build macOS Apps para transformar uma ideia em um aplicativo nativo para desktop baseado em NavigationSplitView, manter estável a seleção da barra lateral, adicionar menus, barras de ferramentas e atalhos de teclado e mover as preferências para uma cena Settings dedicada.

    Avançado
    1 h

    Ideal para

    • Ideias de novos aplicativos para Mac ou conceitos criados primeiro para iPad ou web que precisam de uma verdadeira estrutura de desktop, com navegação persistente, menus, barras de ferramentas e atalhos de teclado
    • Ferramentas de edição, biblioteca, administração ou revisão nas quais a seleção da barra lateral controla um painel de detalhes, e o inspetor disponibiliza metadados ou ações secundárias
    • Aplicativos para Mac cujas configurações devem ficar em uma janela de preferências dedicada, em vez de serem exibidas como mais uma tela na pilha principal de conteúdo

    Habilidades e Plug-ins

    • Use as habilidades de padrões do SwiftUI para macOS, gerenciamento de janelas, interoperabilidade com AppKit e compilação/execução para criar layouts com barra lateral, painel de detalhes e inspetor, integrar menus e configurações e validar o aplicativo em um ciclo que prioriza o shell.
    Skill Why use it
    Build macOS Apps Use as habilidades de padrões do SwiftUI para macOS, gerenciamento de janelas, interoperabilidade com AppKit e compilação/execução para criar layouts com barra lateral, painel de detalhes e inspetor, integrar menus e configurações e validar o aplicativo em um ciclo que prioriza o shell.

    Prompt inicial

    Use o plug-in Build macOS Apps para transformar [describe your app idea] em um aplicativo SwiftUI nativo para Mac com uma estrutura composta por barra lateral, painel de detalhes, inspetor, comandos e Configurações. Restrições: - Primeiro, escolha o modelo de cena. Use preferencialmente `WindowGroup` para a janela principal e adicione uma cena `Settings` dedicada às preferências. - Estruture a interface principal em torno de `NavigationSplitView`, com estado de seleção explícito, uma lista nativa no estilo `.sidebar`, uma área de detalhes e um painel `inspector(isPresented:)` para metadados ou controles secundários. - Mantenha os itens da barra lateral simples e nativos: um ícone, uma linha de título e, no máximo, uma linha secundária curta. Não envolva todos os itens em cartões personalizados grandes, a menos que haja uma justificativa importante de produto. - Disponibilize ações importantes com `commands` no nível da cena, `CommandMenu`, botões da barra de ferramentas e atalhos de teclado. Não restrinja o único acesso a uma ação crítica a gestos. - Use `@SceneStorage` para o estado da interface associado à janela, `@AppStorage` para as preferências e bindings explícitos de seleção, gerenciados pelo componente pai, para coordenar sidebar/detail. - Prefira materiais do sistema, cores semânticas e planos de fundo padrão para barras laterais. Adicione estilos personalizados apenas aos cartões de conteúdo da área de detalhes ou do inspetor, quando necessário. - Use uma ponte AppKit bem delimitada somente se SwiftUI não conseguir representar claramente um comportamento específico de desktop. - Crie ou atualize `script/build_and_run.sh`, execute a verificação mínima útil de build/run e informe exatamente quais comandos você usou. Entregue: - a estrutura das cenas e as principais views de sidebar/detail/inspector - a configuração do menu, da barra de ferramentas e dos atalhos de teclado - a cena de Configurações e o modelo de estado das preferências - qualquer ponte de AppKit que você tenha adicionado e por que ela foi necessária - as etapas de validação de build/run e qualquer melhoria posterior de UX para desktop que você recomende
    Use o plug-in Build macOS Apps para transformar [describe your app idea] em um aplicativo SwiftUI nativo para Mac com uma estrutura composta por barra lateral, painel de detalhes, inspetor, comandos e Configurações. Restrições: - Primeiro, escolha o modelo de cena. Use preferencialmente `WindowGroup` para a janela principal e adicione uma cena `Settings` dedicada às preferências. - Estruture a interface principal em torno de `NavigationSplitView`, com estado de seleção explícito, uma lista nativa no estilo `.sidebar`, uma área de detalhes e um painel `inspector(isPresented:)` para metadados ou controles secundários. - Mantenha os itens da barra lateral simples e nativos: um ícone, uma linha de título e, no máximo, uma linha secundária curta. Não envolva todos os itens em cartões personalizados grandes, a menos que haja uma justificativa importante de produto. - Disponibilize ações importantes com `commands` no nível da cena, `CommandMenu`, botões da barra de ferramentas e atalhos de teclado. Não restrinja o único acesso a uma ação crítica a gestos. - Use `@SceneStorage` para o estado da interface associado à janela, `@AppStorage` para as preferências e bindings explícitos de seleção, gerenciados pelo componente pai, para coordenar sidebar/detail. - Prefira materiais do sistema, cores semânticas e planos de fundo padrão para barras laterais. Adicione estilos personalizados apenas aos cartões de conteúdo da área de detalhes ou do inspetor, quando necessário. - Use uma ponte AppKit bem delimitada somente se SwiftUI não conseguir representar claramente um comportamento específico de desktop. - Crie ou atualize `script/build_and_run.sh`, execute a verificação mínima útil de build/run e informe exatamente quais comandos você usou. Entregue: - a estrutura das cenas e as principais views de sidebar/detail/inspector - a configuração do menu, da barra de ferramentas e dos atalhos de teclado - a cena de Configurações e o modelo de estado das preferências - qualquer ponte de AppKit que você tenha adicionado e por que ela foi necessária - as etapas de validação de build/run e qualquer melhoria posterior de UX para desktop que você recomende

    Comece pelo modelo de cena para Mac

    Este caso de uso mostra como transformar a ideia de um aplicativo em uma estrutura para Mac que pareça criada para desktop, não apenas ampliada a partir de uma pilha voltada primeiro ao toque. Peça ao Codex que escolha primeiro o modelo de cena e depois projete a janela principal em torno de uma seleção estável na barra lateral, uma área de detalhes e um inspetor para controles ou metadados secundários.

    Uma estrutura de aplicativo nativa para Mac, com um item selecionado na barra lateral e conteúdo no painel de detalhes

    Use o plug-in Build macOS Apps quando quiser que o Codex aplique essa estrutura de desktop e mantenha o ciclo de compilação/execução priorizando o shell. A habilidade de padrões do SwiftUI para macOS desse plug-in é uma boa opção para projetar cenas, barras laterais, inspetores, comandos e configurações, além de pequenas pontes com AppKit quando o SwiftUI não cobre por completo algum comportamento específico do Mac.

    Crie uma barra lateral, um painel de detalhes e um inspetor

    Prefira NavigationSplitView quando o recurso se beneficiar de navegação persistente e de um item selecionado estável. Mantenha os itens da barra lateral nativos e simples, use nela os planos de fundo do sistema e reserve cartões personalizados ou metadados densos para o painel de detalhes ou o inspetor.

    struct LibraryRootView: View {
      @SceneStorage("LibraryRootView.selection") private var selection: Item.ID?
      @SceneStorage("LibraryRootView.showInspector") private var showInspector = true
    
      var body: some View {
        NavigationSplitView {
          List(selection: $selection) {
            ForEach(items) { item in
              Label(item.title, systemImage: item.systemImage)
                .tag(item.id)
            }
          }
          .listStyle(.sidebar)
          .navigationTitle("Library")
        } detail: {
          ItemDetailView(selection: selection)
            .inspector(isPresented: $showInspector) {
              ItemInspectorView(selection: selection)
            }
        }
      }
    }

    Se o aplicativo precisar de dimensionamento incomum dos painéis, coordenação de janelas em baixo nível ou comportamento personalizado na cadeia de resposta, peça ao Codex que mantenha intacta a estrutura do SwiftUI e adicione apenas a menor ponte de AppKit necessária para suprir essa lacuna específica.

    Coloque comandos, barras de ferramentas e atalhos na camada de desktop

    Os usuários de Mac devem conseguir encontrar ações importantes na barra de menus, na barra de ferramentas e nos atalhos de teclado. Peça ao Codex que associe commands no nível da cena, itens de menu sensíveis ao contexto e botões da barra de ferramentas às mesmas ações do aplicativo, para que os usuários de desktop não precisem procurar controles disponíveis apenas por gestos.

    @main
    struct LibraryApp: App {
      var body: some Scene {
        WindowGroup {
          LibraryRootView()
        }
        .commands {
          CommandMenu("Library") {
            Button("New Item") {
              // Create a new item.
            }
            .keyboardShortcut("n")
    
            Button("Toggle Inspector") {
              // Route this command to the focused window or selected item state.
            }
            .keyboardShortcut("i", modifiers: [.command, .option])
          }
        }
    
        Settings {
          LibrarySettingsView()
        }
      }
    }

    Use FocusedValue, o estado da cena ou um estado de seleção explícito quando um comando precisar ser aplicado ao item de detalhes atual. Se um atalho puder ser registrado em vários lugares, peça ao Codex que centralize a responsabilidade por ele para que o aplicativo tenha um único fluxo claro para comandos.

    Mantenha as preferências em Settings

    Para as preferências do aplicativo, use uma cena Settings dedicada e mantenha as escolhas do usuário de forma persistente com @AppStorage. Em geral, isso é mais adequado para Mac do que empilhar uma tela de configurações dentro da janela principal de conteúdo.

    struct LibrarySettingsView: View {
      @AppStorage("showItemMetadata") private var showItemMetadata = true
    
      var body: some View {
        TabView {
          Form {
            Toggle("Show Item Metadata", isOn: $showItemMetadata)
          }
          .tabItem { Label("General", systemImage: "gearshape") }
        }
        .frame(width: 460, height: 260)
        .scenePadding()
      }
    }

    Descreva o conceito do aplicativo no prompt e depois valide a estrutura

    Esta página funciona melhor quando seu prompt descreve o conceito do aplicativo, os principais objetos de conteúdo e as ações primárias e, em seguida, pede ao Codex que primeiro crie a estrutura de desktop em torno desse fluxo de trabalho. Peça ao agente para executar uma verificação simples de compilação/execução e resumir a estrutura das cenas, a configuração dos comandos, a responsabilidade pelo estado e qualquer lacuna que tenha precisado contornar por meio de uma ponte de AppKit.

    Dicas práticas

    Mantenha a barra lateral nativa

    Use um ícone, uma linha de título e, no máximo, uma linha secundária curta em cada item da barra lateral. Transfira cartões mais elaborados, contadores e metadados para o painel de detalhes ou o inspetor, para que a lista da barra lateral continue fácil de examinar.

    Não esconda as configurações na pilha principal

    Se uma preferência do usuário afetar todo o aplicativo, peça ao Codex que coloque esse controle em Settings com @AppStorage e disponibilize um ponto de entrada no menu do aplicativo, em vez de criar outra tela de configurações empilhada.

    Reserve o AppKit para lacunas pontuais do desktop

    Se o recurso exigir painéis de abrir/salvar, controle do first responder ou uma NSView personalizada, use AppKit apenas para uma pequena integração em torno de um modelo de estado controlado pelo SwiftUI, em vez de reescrever toda a janela em AppKit.

    Tech stack

    Need

    Estrutura de aplicativo com visualização dividida

    Default options

    NavigationSplitView, listas .sidebar e inspector(isPresented:)

    Why it's needed

    Uma barra lateral persistente, um painel de detalhes e um inspetor combinam melhor com layouts comuns de aplicativos para Mac do que a navegação por telas empilhadas concebida para interfaces de toque.

    Need

    Ações e configurações de desktop

    Default options

    commands, CommandMenu, atalhos de teclado e uma cena Settings

    Why it's needed

    Ações na barra de menus, atalhos e uma janela dedicada de configurações fazem o recurso parecer parte de um verdadeiro aplicativo para Mac, em vez de uma tela do iOS ampliada para desktop.

    Need

    Responsabilidade pelo estado

    Default options

    @State, @SceneStorage, @AppStorage e bindings explícitos de seleção

    Why it's needed

    O Codex consegue manter previsíveis a seleção da barra lateral, a visibilidade do inspetor e as preferências do usuário sem recorrer por padrão a um view model.

    Need

    Recursos nativos para casos específicos

    Default options

    AppKit por meio de pontes bem delimitadas com NSViewRepresentable ou NSWindow

    Why it's needed

    Use AppKit apenas para comportamentos da plataforma que o SwiftUI não consegue representar claramente, mantendo o SwiftUI como fonte da verdade para o estado da cena e da seleção.

    Need Default options Why it's needed
    Estrutura de aplicativo com visualização dividida NavigationSplitView , listas .sidebar e inspector(isPresented:) Uma barra lateral persistente, um painel de detalhes e um inspetor combinam melhor com layouts comuns de aplicativos para Mac do que a navegação por telas empilhadas concebida para interfaces de toque.
    Ações e configurações de desktop commands , CommandMenu , atalhos de teclado e uma cena Settings Ações na barra de menus, atalhos e uma janela dedicada de configurações fazem o recurso parecer parte de um verdadeiro aplicativo para Mac, em vez de uma tela do iOS ampliada para desktop.
    Responsabilidade pelo estado @State , @SceneStorage , @AppStorage e bindings explícitos de seleção O Codex consegue manter previsíveis a seleção da barra lateral, a visibilidade do inspetor e as preferências do usuário sem recorrer por padrão a um view model.
    Recursos nativos para casos específicos AppKit por meio de pontes bem delimitadas com NSViewRepresentable ou NSWindow Use AppKit apenas para comportamentos da plataforma que o SwiftUI não consegue representar claramente, mantendo o SwiftUI como fonte da verdade para o estado da cena e da seleção.

    Casos de uso relacionados