No AppCode 2019.3, nos concentramos em velocidade e suporte a idiomas. Neste post, contamos o que aconteceu (spoiler: eles aceleraram muito).

Desempenho
Pode ser difícil determinar o quanto uma determinada correção afeta a velocidade - e isso é independente do número de projetos de teste e de sua complexidade. Desde 2019.3, tudo fica mais fácil, porque durante a preparação do lançamento, recebemos muitos comentários de que o desempenho realmente melhorou. Aqui está o que aconteceu para acelerar:
- Destaque, navegação e conclusão automática em projetos em Swift puro e em projetos com código misto. Digamos que sim - ele começou a funcionar muito mais rápido em comparação com 2019.2.
- Existe uma fase de armazenamento em cache, "Processing Swift Modules". As interfaces dos módulos Swift, necessárias para o funcionamento do IDE, até o Xcode 11, estavam no binário na cadeia de ferramentas, e sua representação textual precisava ser obtida por meio do SourceKit. O SourceKit funciona lentamente, e se, para as estruturas do sistema, já colocamos caches prontos no instalador (que, no entanto, precisam ser atualizados para cada versão do Xcode), isso não funcionará para as estruturas do próprio projeto. Como resultado, eles encontraram algumas das peças não mais otimizadas e corrigiram, e começaram a trabalhar muito mais rápido.
Outra parte das melhorias ainda está em operação, e existem algumas delas. Esses são caches adicionais onde ainda não existem, e o aprimoramento do algoritmo para a construção de símbolos de design e muito mais. Estes já são planos para 2020.1.
Suporte de idioma
As tarefas de idioma têm a mesma prioridade que o trabalho de desempenho; portanto, parte da equipe monitora as mudanças na rápida evolução e, assim que são aceitas, começa a integrá-las ao AppCode. Esta versão suportou:
Ações para modificar o código
Eles são intensificados. A equipe do AppCode está crescendo e, para apresentar um novo desenvolvedor ao curso, geralmente oferecemos novos recursos pequenos, mas interessantes. Desta vez, foram dezenas de ações para a Swift, com as quais você pode:
- Combine (e vice-versa) uma declaração de variável com um valor atribuído a ela:

- Divida as declarações de várias variáveis em outras:

- Dividir / mesclar aninhado se / else:

- Troque partes de comparações ou expressões binárias:

- Faça inversão se:

- Dividir / mesclar condições dentro da mesma se construir:

- Aplique as leis de Morgan:

Geração de código
Adicionadas duas novas configurações de geração de código no Editor | Code Style | Swift | Code Generation | General
Editor | Code Style | Swift | Code Generation | General
Editor | Code Style | Swift | Code Generation | General
:
Prefer Void over ()
ePrefer explicit return
.
Formatação
A pedido dos usuários, eles adicionaram opções de formatação para:
- Deixe pequenos blocos de propriedades com a linha única
didSet (Preferences | Editor | Code Style | Swift | Wrapping and Braces | Keep when reformatting | Methods and functions in one line)
/ didSet (Preferences | Editor | Code Style | Swift | Wrapping and Braces | Keep when reformatting | Methods and functions in one line)
- O mesmo vale para declarações de tipo vazio (
Preferences | Editor | Code Style | Swift | Wrapping and Braces | Keep when reformatting | Empty type declarations in one line
)
Custom Swift Toolchains
Eles ensinaram o AppCode a trabalhar com o código corretamente ao usar cadeias de ferramentas Swift não padrão (por exemplo, Swift for Tensorflow ).
Criar mensagens
Em uma das versões anteriores, tivemos um problema com mensagens de montagem que não foram resolvidas na estrutura da implementação atual. No entanto, não foi possível corrigi-lo. Além disso, ainda havia problemas com a velocidade do processamento de mensagens, sua exibição, alterações freqüentes no formato dessas mensagens de uma versão do Xcode para outra e muitas outras pequenas coisas. Como resultado, ensinamos o AppCode a pegar a árvore de mensagens de montagem diretamente do sistema de construção do Xcode "como está" e simplesmente exibi-la em nossas Mensagens :

Juntamente com essas informações, descobriu-se uma maneira de exibir o progresso normal da compilação:

No final, também simplificamos a filtragem de mensagens e fizemos o mesmo que no Xcode:

Suporte para Mac Catalyst
Tudo é simples aqui: aprendemos a trabalhar com os destinos do Mac Catalyst para que eles possam ser iniciados, depurados e exibidos em Configurações de execução.
Só isso. Em 2020.1, planejamos, como nesta versão, gastar o tempo máximo em otimização adicional do IDE, com um mínimo de novos recursos.
Escreva todas as perguntas e sugestões aqui nos comentários - teremos o maior prazer em responder!
Equipe AppCode