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.me.hcorrespondentes.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
- Indentar para a direita:
Shift + Command + F: Realiza uma busca global em todo o projeto.Command + F: Busca dentro do arquivo atual. PressioneEnterpara o próximo resultado,Shift + Enterpara 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 + Deleteapaga 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:
- Selecione o código que deseja salvar como snippet.
- 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:
- Clique com o botão direito no nome do tipo (struct ou class).
- 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 nomeDoEnume pressioneEnter. O Xcode gerará automaticamente todos os casos do enum.
4. Edição Multilinha
Para realizar a mesma edição em várias linhas simultaneamente:
- Pressione e segure
Option + Shift. - Clique e arraste com o mouse para criar múltiplos cursores nas linhas desejadas.
- Comece a digitar para inserir texto em todas as posições selecionadas.
- 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:
- Clique com o botão direito no nome do método.
- 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.