SlideShare uma empresa Scribd logo
1 de 8
Baixar para ler offline
SwiftLint
Static Code Analisys
Felipe Melo
Herisson Vasconcelos
Thiago Aranha
Introdução
• O SwiftLint é um analisador de código estático
para a linguagem Swift da Apple.
• Ele ajuda a manter as boas práticas e
convenções de código no estilo padrão da
linguagem.
• Ele segue as guidelines oficiais da Apple e é
mantido e atualizado pela equipe Realm team.
• É open source.
Requisitos para utilização
• Apesar do SwiftLint possuir outras formas de
utilização como por exemplo pelo próprio
xcode, vamos dar um exemplo de como utilizá-
lo através do Jenkins, sendo assim será
necessário ter instalado:
• Jenkins (http://jenkins.io)
• fastlane (https://docs.fastlane.tools) (para build)
Instalação
• Através do homebrew basta digitar o comando
abaixo:
• brew install swiftlint
Utilização
• Para uma simples verificação de código, executar o comando ‘swiftlint lint’. Esse
comando apenas irá executar as verificação e escrever o resultado no Console do
Jenkins
• Para uma verificação de código gerando relatório num arquivo a parte do Console do
Jenkins, executar o comando ‘swiftlint > report.xml || true
• ATENÇÃO! Em alguns casos é interessante o uso do ‘|| true’ (visto no comando anterior).
Ele serve para garantir que os problemas encontrados pelo swiftlint não impedirão o build
Comandos
• Através do terminal de comando é possível
verificar os comandos disponíveis do swiftlint
digitando ‘swiftlint help’.
Configurando as regras
• Criar um arquivo na raiz do projeto com o nome
‘.swiftlint.yml’.
• Adicionar os comandos abaixo de acordo com
as regras que deseja desabilitar no scan.
disabled_rules: # rule identifiers to exclude from
running
- line_length
Referências
• https://medium.com/cocoaacademymag/
swiftlint-introduction-tutorial-cd692d41dda3
• https://github.com/realm/SwiftLint
• https://stackoverflow.com/questions/39665790/
swiftlint-exclude-file-for-specific-rule

Mais conteúdo relacionado

Mais procurados

Jenkins integrando e estendendo.
Jenkins integrando e estendendo.Jenkins integrando e estendendo.
Jenkins integrando e estendendo.Leonardo Kobus
 
O que é preciso para ser um desenvolvedor Android
O que é preciso para ser um desenvolvedor AndroidO que é preciso para ser um desenvolvedor Android
O que é preciso para ser um desenvolvedor AndroidNelson Glauber Leal
 
Qa ops mtc 2020 - mayara fernandes
Qa ops   mtc 2020 - mayara fernandesQa ops   mtc 2020 - mayara fernandes
Qa ops mtc 2020 - mayara fernandesMayara Fernandes
 
Aula 01 O que é java
Aula 01   O que é javaAula 01   O que é java
Aula 01 O que é javaSergio Silva
 
Testando para continuous delivery com visual studio 2012
Testando para continuous delivery com visual studio 2012Testando para continuous delivery com visual studio 2012
Testando para continuous delivery com visual studio 2012Alan Correa Morais
 
[Agile Brazil] Entrega Contínua na Infoglobo: gerando valor em 2 horas
[Agile Brazil] Entrega Contínua na Infoglobo:  gerando valor em 2 horas[Agile Brazil] Entrega Contínua na Infoglobo:  gerando valor em 2 horas
[Agile Brazil] Entrega Contínua na Infoglobo: gerando valor em 2 horasSamanta Cicilia
 
Feedback mais rápido na sua build dividindo os testes funcionais
Feedback mais rápido na sua build dividindo os testes funcionaisFeedback mais rápido na sua build dividindo os testes funcionais
Feedback mais rápido na sua build dividindo os testes funcionaisElias Nogueira
 
Slides Testes de API com Codeception
Slides Testes de API com CodeceptionSlides Testes de API com Codeception
Slides Testes de API com CodeceptionJuciellen Cabrera
 
[DevOps Carioca] Continuous Delivery
[DevOps Carioca]  Continuous Delivery[DevOps Carioca]  Continuous Delivery
[DevOps Carioca] Continuous DeliverySamanta Cicilia
 
[Lady talks]Continuous Delivery
[Lady talks]Continuous Delivery[Lady talks]Continuous Delivery
[Lady talks]Continuous DeliverySamanta Cicilia
 
UAI Test - Introdução Prática ao Jenkins
UAI Test - Introdução Prática ao JenkinsUAI Test - Introdução Prática ao Jenkins
UAI Test - Introdução Prática ao JenkinsStefan Teixeira
 
Aula 02 Primeiro Cod Java
Aula 02   Primeiro Cod JavaAula 02   Primeiro Cod Java
Aula 02 Primeiro Cod JavaSergio Silva
 
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a ServiçosContinuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a ServiçosSamanta Cicilia
 
Reduzindo Custos e Aumentando a Produtividade com Ambientes de Dev / Test na ...
Reduzindo Custos e Aumentando a Produtividade com Ambientes de Dev / Test na ...Reduzindo Custos e Aumentando a Produtividade com Ambientes de Dev / Test na ...
Reduzindo Custos e Aumentando a Produtividade com Ambientes de Dev / Test na ...André Dias
 
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...[DevOps Summit]Importância de testes automatizados para sustentar Continuous...
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...Samanta Cicilia
 
Cloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows AzureCloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows AzureGrupo de Testes Carioca
 
[Uff] Continuous Delivery: Entrega Contínua de Software de Valor
[Uff] Continuous Delivery: Entrega Contínua de Software de Valor[Uff] Continuous Delivery: Entrega Contínua de Software de Valor
[Uff] Continuous Delivery: Entrega Contínua de Software de ValorSamanta Cicilia
 
[Natal Nerd] IT Talks - NET Core
[Natal Nerd] IT Talks - NET Core[Natal Nerd] IT Talks - NET Core
[Natal Nerd] IT Talks - NET CoreJaqueline Ramos
 

Mais procurados (20)

Jenkins integrando e estendendo.
Jenkins integrando e estendendo.Jenkins integrando e estendendo.
Jenkins integrando e estendendo.
 
O que é preciso para ser um desenvolvedor Android
O que é preciso para ser um desenvolvedor AndroidO que é preciso para ser um desenvolvedor Android
O que é preciso para ser um desenvolvedor Android
 
Qa ops mtc 2020 - mayara fernandes
Qa ops   mtc 2020 - mayara fernandesQa ops   mtc 2020 - mayara fernandes
Qa ops mtc 2020 - mayara fernandes
 
Aula 01 O que é java
Aula 01   O que é javaAula 01   O que é java
Aula 01 O que é java
 
Testando para continuous delivery com visual studio 2012
Testando para continuous delivery com visual studio 2012Testando para continuous delivery com visual studio 2012
Testando para continuous delivery com visual studio 2012
 
Selenium
SeleniumSelenium
Selenium
 
[Agile Brazil] Entrega Contínua na Infoglobo: gerando valor em 2 horas
[Agile Brazil] Entrega Contínua na Infoglobo:  gerando valor em 2 horas[Agile Brazil] Entrega Contínua na Infoglobo:  gerando valor em 2 horas
[Agile Brazil] Entrega Contínua na Infoglobo: gerando valor em 2 horas
 
Feedback mais rápido na sua build dividindo os testes funcionais
Feedback mais rápido na sua build dividindo os testes funcionaisFeedback mais rápido na sua build dividindo os testes funcionais
Feedback mais rápido na sua build dividindo os testes funcionais
 
Slides Testes de API com Codeception
Slides Testes de API com CodeceptionSlides Testes de API com Codeception
Slides Testes de API com Codeception
 
[DevOps Carioca] Continuous Delivery
[DevOps Carioca]  Continuous Delivery[DevOps Carioca]  Continuous Delivery
[DevOps Carioca] Continuous Delivery
 
[Lady talks]Continuous Delivery
[Lady talks]Continuous Delivery[Lady talks]Continuous Delivery
[Lady talks]Continuous Delivery
 
UAI Test - Introdução Prática ao Jenkins
UAI Test - Introdução Prática ao JenkinsUAI Test - Introdução Prática ao Jenkins
UAI Test - Introdução Prática ao Jenkins
 
Aula 02 Primeiro Cod Java
Aula 02   Primeiro Cod JavaAula 02   Primeiro Cod Java
Aula 02 Primeiro Cod Java
 
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a ServiçosContinuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
 
Reduzindo Custos e Aumentando a Produtividade com Ambientes de Dev / Test na ...
Reduzindo Custos e Aumentando a Produtividade com Ambientes de Dev / Test na ...Reduzindo Custos e Aumentando a Produtividade com Ambientes de Dev / Test na ...
Reduzindo Custos e Aumentando a Produtividade com Ambientes de Dev / Test na ...
 
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...[DevOps Summit]Importância de testes automatizados para sustentar Continuous...
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...
 
Svn - grupo de estudos sol7
Svn - grupo de estudos sol7Svn - grupo de estudos sol7
Svn - grupo de estudos sol7
 
Cloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows AzureCloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows Azure
 
[Uff] Continuous Delivery: Entrega Contínua de Software de Valor
[Uff] Continuous Delivery: Entrega Contínua de Software de Valor[Uff] Continuous Delivery: Entrega Contínua de Software de Valor
[Uff] Continuous Delivery: Entrega Contínua de Software de Valor
 
[Natal Nerd] IT Talks - NET Core
[Natal Nerd] IT Talks - NET Core[Natal Nerd] IT Talks - NET Core
[Natal Nerd] IT Talks - NET Core
 

Semelhante a SwiftLint código estático análise

DevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasDevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasAmazon Web Services LATAM
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...Amazon Web Services
 
Programando java independente da ide
Programando java independente da ideProgramando java independente da ide
Programando java independente da ideHeider Lopes
 
Programando java independente da ide
Programando java independente da ideProgramando java independente da ide
Programando java independente da ideHeider Lopes
 
Webinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWSWebinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWSAmazon Web Services LATAM
 
Introdução ao Java_14Agosto2012.pdf
Introdução ao Java_14Agosto2012.pdfIntrodução ao Java_14Agosto2012.pdf
Introdução ao Java_14Agosto2012.pdfRubenManhia
 
Processo de Desenvolvimento de Software - Linguagens Compiladas x Interpretadas
Processo de Desenvolvimento de Software - Linguagens Compiladas x InterpretadasProcesso de Desenvolvimento de Software - Linguagens Compiladas x Interpretadas
Processo de Desenvolvimento de Software - Linguagens Compiladas x InterpretadasNatanael Simões
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptxCarlos Gonzaga
 
Automatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWSAutomatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWSAmazon Web Services LATAM
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsJosé Alexandre Macedo
 
Open4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourceOpen4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourcetdc-globalcode
 
JHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãosJHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãosThiago Soares
 
Selenium Workshop
Selenium WorkshopSelenium Workshop
Selenium Workshopcathoderay
 
Integração contínua em PHP com Jenkins
Integração contínua em PHP com JenkinsIntegração contínua em PHP com Jenkins
Integração contínua em PHP com JenkinsGilmar Pupo
 
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122Bruno Souza
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração ContínuaScrumHalf Tool
 

Semelhante a SwiftLint código estático análise (20)

DevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasDevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...
 
Programando java independente da ide
Programando java independente da ideProgramando java independente da ide
Programando java independente da ide
 
Programando java independente da ide
Programando java independente da ideProgramando java independente da ide
Programando java independente da ide
 
Webinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWSWebinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWS
 
Introdução ao Java_14Agosto2012.pdf
Introdução ao Java_14Agosto2012.pdfIntrodução ao Java_14Agosto2012.pdf
Introdução ao Java_14Agosto2012.pdf
 
Processo de Desenvolvimento de Software - Linguagens Compiladas x Interpretadas
Processo de Desenvolvimento de Software - Linguagens Compiladas x InterpretadasProcesso de Desenvolvimento de Software - Linguagens Compiladas x Interpretadas
Processo de Desenvolvimento de Software - Linguagens Compiladas x Interpretadas
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
 
Automatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWSAutomatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWS
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
 
De 0 a DevOps
De 0 a DevOpsDe 0 a DevOps
De 0 a DevOps
 
Open4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourceOpen4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSource
 
Hands On Selenium
Hands On SeleniumHands On Selenium
Hands On Selenium
 
Introdução C#
Introdução C#Introdução C#
Introdução C#
 
Fundamentos Java - 01
Fundamentos Java - 01Fundamentos Java - 01
Fundamentos Java - 01
 
JHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãosJHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãos
 
Selenium Workshop
Selenium WorkshopSelenium Workshop
Selenium Workshop
 
Integração contínua em PHP com Jenkins
Integração contínua em PHP com JenkinsIntegração contínua em PHP com Jenkins
Integração contínua em PHP com Jenkins
 
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração Contínua
 

SwiftLint código estático análise

  • 1. SwiftLint Static Code Analisys Felipe Melo Herisson Vasconcelos Thiago Aranha
  • 2. Introdução • O SwiftLint é um analisador de código estático para a linguagem Swift da Apple. • Ele ajuda a manter as boas práticas e convenções de código no estilo padrão da linguagem. • Ele segue as guidelines oficiais da Apple e é mantido e atualizado pela equipe Realm team. • É open source.
  • 3. Requisitos para utilização • Apesar do SwiftLint possuir outras formas de utilização como por exemplo pelo próprio xcode, vamos dar um exemplo de como utilizá- lo através do Jenkins, sendo assim será necessário ter instalado: • Jenkins (http://jenkins.io) • fastlane (https://docs.fastlane.tools) (para build)
  • 4. Instalação • Através do homebrew basta digitar o comando abaixo: • brew install swiftlint
  • 5. Utilização • Para uma simples verificação de código, executar o comando ‘swiftlint lint’. Esse comando apenas irá executar as verificação e escrever o resultado no Console do Jenkins • Para uma verificação de código gerando relatório num arquivo a parte do Console do Jenkins, executar o comando ‘swiftlint > report.xml || true • ATENÇÃO! Em alguns casos é interessante o uso do ‘|| true’ (visto no comando anterior). Ele serve para garantir que os problemas encontrados pelo swiftlint não impedirão o build
  • 6. Comandos • Através do terminal de comando é possível verificar os comandos disponíveis do swiftlint digitando ‘swiftlint help’.
  • 7. Configurando as regras • Criar um arquivo na raiz do projeto com o nome ‘.swiftlint.yml’. • Adicionar os comandos abaixo de acordo com as regras que deseja desabilitar no scan. disabled_rules: # rule identifiers to exclude from running - line_length