Otimização da Eficiência no Xcode: Atalhos, Snippets e Refatoração de Código

Dominar atalhos de teclado e snippets de código no Xcode pode acelerar significativamente o fluxo de trabalho de desenvolvimento. Abaixo estão algumas dicas essenciais:

Atalhos de Teclado Essenciais

  • Shift + Command + O: Abre a janela de busca rápida de arquivos.
  • Shift + Command + 0: Acessa a documentação oficial do Xcode.
  • Shift + Command + J: Localiza o arquivo atual no navegador de projeto.
  • Control + Command + Seta para Cima/Baixo: Alterna entre arquivos .m e .h correspondentes.
  • Command + T: Cria uma nova aba no Xcode.
  • Command + W: Fecha a aba atual.
  • `Command + `` (crase): Alterna entre as janelas abertas do Xcode.
  • Control + Command + E: Permite a renomeação múltipla de variáveis ou identificadores em um escopo selecionado.
  • Movimentação de Bloco de Código:
    • Indentar para a direita: Tab
    • Recuar para a esquerda: Shift + Tab
    • Mover bloco para cima: Control + Command + Seta para Cima
    • Mover bloco para baixo: Control + Command + Seta para Baixo
  • Shift + Command + F: Realiza uma busca global em todo o projeto.
  • Command + F: Busca dentro do arquivo atual. Pressione Enter para o próximo resultado, Shift + Enter para o anterior.
  • Command + Seta para Cima/Baixo/Esquerda/Direita: Move o cursor para o início/fim da classe, início/fim da linha.
  • Shift + Command + Seta para Cima/Baixo/Esquerda/Direita: Seleciona texto do cursor até o início/fim da classe, início/fim da linha.
  • Option + Seta para Esquerda/Direita: Move o cursor uma palavra de cada vez.
  • Command + Delete: Apaga o conteúdo do cursor até o início da linha. Option + Delete apaga a palavra anterior.
  • Control + I: Auto-indenta o código selecionado ou a linha atual.
  • Command + \: Adiciona um breakpoint na linha atual.
  • Option + Command + \: Cria um breakpoint simbólico.
  • Command + N: Cria um novo arquivo. Shift + Command + N: Cria um novo projeto.
  • Option + Command + Seta para Esquerda/Direita: Recolhe/Expande o bloco de código atual.
  • Shift + Option + Command + Seta para Esquerda/Direita: Recolhe/Expande todos os blocos de código no arquivo atual.
  • Option + Command + [: Move a linha ou bloco selecionado para cima.
  • Option + Command + ]: Move a linha ou bloco selecionado para baixo.
  • Command + ]: Indenta a linha ou bloco selecionado para a direita.
  • Command + [: Indenta a linha ou bloco selecionado para a esquerda.
  • Shift + Command + K: Limpa o produto (build folder).
  • Command + R: Executa o projeto.
  • Command + B: Compila o projeto.

Controle da Janela do Xcode

  • Shift + Command + Y: Oculta ou exibe a área do console.
  • Shift + Command + C: Exibe a área do console e foca nela.
  • Command + K: Limpa o conteúdo do console.
  • Control + 6: Exibe a lista de métodos da classe atual (útil com #pragma mark).
  • Command + (1 a 9): Alterna entre os painéis da barra lateral esquerda.
  • Command + 0: Exibe ou oculta a barra lateral esquerda.
  • Option + Command + 0: Exibe ou oculta a barra lateral direita.
  • Command + ,: Abre as Preferências do Xcode.
  • Command + + / Command + -: Amplia/Reduz a visualização geral da interface.

Snippets de Código Personalizados

Snippets de código permitem inserir blocos de código reutilizáveis rapidamente. Para criar um snippet:

  1. Selecione o código que deseja salvar como snippet.
  2. Clique com o botão direito e escolha "Create Code Snippet...".

Ao criar um snippet, configure os seguintes campos:

  • Title: O nome principal do snippet.
  • Summary: Uma descrição breve.
  • Platform: Plataforma(s) de destino (All, iOS, macOS, etc.).
  • Language: Linguagem (Objective-C, Swift).
  • Completion Shortcut: O atalho de texto que ativará o snippet.
  • Completion Scopes: Define onde o snippet pode ser ativado (e.g., dentro de uma classe Objective-C).
  • Code: O conteúdo do snippet. Utilize <#placeholder#> para definir campos editáveis.

Para abrir a lista de todos os snippets disponíveis: Shift + Command + L.

Exemplos de Snippets

Snippet Básico com Placeholder

// Snippet com placeholder
 <#expression#>
 

Snippet para Propriedade Objective-C

// property @property (nonatomic, readwrite, strong) <#expression#> *<#expression#>;
 

Snippet para DataSource de UICollectionView (Objective-C)

// UICollectionView DataSource Methods
 #pragma mark - UICollectionViewDataSource
 - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
     return <#number#>;
 }

 - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
     return <#number#>;
 }

 - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
     UICollectionViewCell *cell = (UICollectionViewCell *)[collectionView dequeueReusableCellWithReuseIdentifier:@"" forIndexPath:indexPath];
     // Configure cell
     return cell;
 }

 #pragma mark - UICollectionViewDelegateFlowLayout
 - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
     return CGSizeMake(<#number#>, <#number#>);
 }

 - (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section {
     return UIEdgeInsetsMake(<#number#>, <#number#>, <#number#>, <#number#>);
 }

 #pragma mark - UICollectionViewDelegate
 - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
     // Handle selection
 }
 

Snippet para UILabel Atribuído (Objective-C)

// Attributed UILabel
 UILabel *attributedLabel = [[UILabel alloc] init];
 attributedLabel.numberOfLines = 0;
 attributedLabel.preferredMaxLayoutWidth = <#preferredMaxLayoutWidth#>;
 attributedLabel.backgroundColor = [UIColor clearColor];
 NSString *text = <#text#>;
 NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init];
 style.lineSpacing = <#lineSpacing#>;
 NSDictionary *attributes = @{
     NSFontAttributeName: [UIFont <#font_name#>:<#font_size#>],
     NSParagraphStyleAttributeName: style,
     NSForegroundColorAttributeName: [UIColor <#color_name#>]
 };
 attributedLabel.attributedText = [[NSAttributedString alloc] initWithString:text attributes:attributes];
 [<#view#> addSubview:attributedLabel];
 

5 Dicas para Refatoração de Código no Xcode

Refatorar código é uma parte crucial do desenvolvimento, que leva a um código mais limpo, testável e fácil de manter. Aqui estão cinco dicas úteis no Xcode:

1. Renomeação em Massa (Batch Rename)

Nomes claros e descritivos são fundamentais. Para renomear um identificador (propriedade, método, classe) e atualizar todas as suas referências:

  • Renomear Globalmente: Clique com o botão direito no identificador, selecione "Rename". O Xcode buscará todas as ocorrências e permitirá a edição em massa.
  • Editar Tudo no Escopo (Edit All in Scope): Para renomeações restritas ao arquivo atual, use "Edit All in Scope". O Xcode selecionará todas as instâncias no arquivo, permitindo a edição direta e confirmação com Enter.

2. Gerar Inicializador Membro a Membro (Generate Memberwise Initializer)

Para tipos personalizados, especialmente em módulos ou SDKs, pode ser necessário criar inicializadores específicos. O Xcode pode gerar um inicializador que recebe todos os membros como parâmetros:

  1. Clique com o botão direito no nome do tipo (struct ou class).
  2. Vá em "Refactor" -> "Generate Memberwise Initializer".

O Xcode criará o inicializador. Você pode ajustar sua visibilidade (e.g., de internal para public) e movê-lo conforme necessário.

3. Adicionar Casos Faltando em Switch (Add Missing Switch Cases)

Ao trabalhar com enums, especialmente em Objective-C, pode ser tedioso adicionar manualmente todos os casos de um switch. O Xcode automatiza isso:

  • Objective-C: Após escrever a estrutura do switch, clique com o botão direito dentro dele e selecione "Add Missing Switch Cases".
  • Swift: Simplesmente digite switch nomeDoEnum e pressione Enter. O Xcode gerará automaticamente todos os casos do enum.

4. Edição Multilinha

Para realizar a mesma edição em várias linhas simultaneamente:

  1. Pressione e segure Option + Shift.
  2. Clique e arraste com o mouse para criar múltiplos cursores nas linhas desejadas.
  3. Comece a digitar para inserir texto em todas as posições selecionadas.
  4. Você também pode usar essa técnica para copiar e colar blocos de código idênticos em várias linhas.

5. Encontrar Hierarquia de Chamadas (Find Call Hierarchy)

Para entender como uma função ou método é chamado, use a função de hierarquia de chamadas:

  1. Clique com o botão direito no nome do método.
  2. Selecione "Find Call Hierarchy".

O Xcode exibirá um painel mostrando todas as chamadas diretas e indiretas para esse método, facilitando a análise do fluxo de execução.

Tags: Xcode swift Objective-C Atalhos de Teclado Snippets de Código

Publicado em 10-25 14:06