AppCode 2019.3: funciona mais rápido, entende melhor o Swift, conhece o Mac Catalyst, exibe convenientemente mensagens de montagem

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


Splash



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:
    Dividir / unir declaração e atribuição de variável
  • Divida as declarações de várias variáveis ​​em outras:
    Dividir declarações de variáveis ​​com vários elementos
  • Dividir / mesclar aninhado se / else:
    Dividir / juntar instruções if / else aninhadas
  • Troque partes de comparações ou expressões binárias:
    Comparações de flip e expressões binárias
  • Faça inversão se:
    Inverter se condição
  • Dividir / mesclar condições dentro da mesma se construir:
    Condições de mesclagem / divisão
  • Aplique as leis de Morgan:
    Leis de 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 () e
  • Prefer 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 :


Criar mensagens


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


Progresso das mensagens de construção


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


Filtro de Mensagens em Massa


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

Source: https://habr.com/ru/post/pt479450/


All Articles