SlideShare uma empresa Scribd logo
1 de 25
Plugin and Play
PLUGINS THAT SUPPORT THE FULL SPECTRUM OF KOTLIN FEATURES
17-5-2022
by
Simone
de
Gijt
Introduction
Simone de Gijt
2016
2017
2018
2019
2020
2021
…
- Kotlin 1.0 released
- Started working in IT
Google announces that Kotlin is the preferred language of
Android app developers
- Signs contract @ OpenValue
- Starts working with Kotlin
Twitter: @de_gijt
What to
expect?
 Kover
 Code covarage
 Options
 Advantages / Disadvantages
 Demo of usages / configuration
 Ktlint
 Linter
 Options
 Adventages / Disadvantages
 Demo of usages / configuration
 Detekt
 Code smells
 Options
 Adventages / Disadvantages
 Demo of usages / configuration
Twitter: @de_gijt
Kover
{kof· fer}
Kover - Gradle plugin for Kotlin code coverage agents:
IntelliJ and JaCoCo.
Twitter: @de_gijt
Code coverage
Twitter: @de_gijt
Options
 JaCoCo
Existing tool
Well-known and widely
recognized format
Has some quirks regarding
Kotlin
Twitter: @de_gijt
 IntelliJ IDEA
Available in IntelliJ IDEA
Handles Kotlin well
Only available in IntelliJ
IDEA
Twitter: @de_gijt
assertThat(service.greet(null))
.isEqualTo("Hello world")
Twitter: @de_gijt
Advantages Kover
 Provided by JetBrains
 Fully integrated with the Gradle toolchain and multiplatform projects.
 Kotlin Android support without the need to divide into build types and flavours
 Customizable filters for instrumented classes
 Handles specific Kotlin features
 Inline functions
 Directory structure
 …
Twitter: @de_gijt
Disadvantages
 Still in an experimental state
 Only available for Gradle (not Maven)
 Engine Jacoco doesn’t support Kotlin Directory Structure
 Verification is only on LINE-level
Twitter: @de_gijt
Demo
Twitter: @de_gijt
https://github.com/SimonedeGijt/example-kover
Ktlint
{kitty· lint}
Ktlint - An anti-bikeshedding Kotlin linter with built-in
formatter
Twitter: @de_gijt
Linter
Twitter: @de_gijt
Advantages
 It saves time!
 It saves energy
 It simplifies your process
Twitter: @de_gijt
Plugin options
 JLLeitschuh:
 Gradle wrapper over
the pinterest project
 Adds special tasks
Twitter: @de_gijt
 Pinterest:
 Static code analysis
tool that is used to
analyse the Kotlin
code for you.
 Follows the official
Kotlin code style
 GantSign:
 Maven wrapper
over the
pinterest
project
Demo
Twitter: @de_gijt
https://github.com/SimonedeGijt/
example-kover-ktlint-subprojects
https://github.com/SimonedeGijt/example-ktlint
Detekt
{de· tect}
Detekt - A static code analysis tool for
the Kotlin programming language.
Twitter: @de_gijt
Code smells
Twitter: @de_gijt
Options
 Sonarqube
 Very nice reports that integrate with Gitlab
 You get a lot of extra’s..
 Community and paid versions
 Megalinter
 Free
 Not Kotlin specific
Twitter: @de_gijt
Advantages
 Highly configurable rule sets
 Specification of quality gates which will break your build
 Gradle plugin for code analysis via Gradle builds
 SonarQube & IntelliJ integraitons
 Third party integrations for Maven, Bazel and Github
Actions (Docker based and Javascript based)
Twitter: @de_gijt
Disadvantages
 Ktlint doesn’t work optimal inside Detekt.
Better to use it next to Detekt.
 Doesn’t support other languages.
Twitter: @de_gijt
Demo
Twitter: @de_gijt
https://github.com/SimonedeGijt/example-detekt
Sources
 Kover – The Code Coverage Plugin
 https://kotlinlang.org/docs/multiplatform.html
 https://www.geeksforgeeks.org/code-formatting-in-kotlin-using-ktlint/
 https://blog.mindorks.com/code-formatting-in-kotlin-using-ktlint
 https://github.com/Kotlin/kotlinx-kover
 https://github.com/JLLeitschuh/ktlint-gradle
 https://github.com/pinterest/ktlint
 https://github.com/gantsign/ktlint-maven-plugin
 https://github.com/detekt/detekt
 https://megalinter.github.io/latest/installation/
Twitter: @de_gijt
Questions
Twitter: @de_gijt
Contact
Twitter:
@de_gijt
LinkedIn:
Simone de Gijt
Twitter: @de_gijt
Slideshare:

Mais conteúdo relacionado

Semelhante a PluginAndPlay-AmsterdamJUG.pptx

What's new in Android, Igor Malytsky ( Google Post I|O Tour)
What's new in Android, Igor Malytsky ( Google Post I|O Tour)What's new in Android, Igor Malytsky ( Google Post I|O Tour)
What's new in Android, Igor Malytsky ( Google Post I|O Tour)DataArt
 
Open frameworks 101_fitc
Open frameworks 101_fitcOpen frameworks 101_fitc
Open frameworks 101_fitcbenDesigning
 
GitHub Copilot.pptx
GitHub Copilot.pptxGitHub Copilot.pptx
GitHub Copilot.pptxLuis Beltran
 
Git Tutorial A Comprehensive Guide for Beginners.pdf
Git Tutorial A Comprehensive Guide for Beginners.pdfGit Tutorial A Comprehensive Guide for Beginners.pdf
Git Tutorial A Comprehensive Guide for Beginners.pdfuzair
 
Android studio 4.0 new features preview
Android studio 4.0 new features previewAndroid studio 4.0 new features preview
Android studio 4.0 new features previewConcetto Labs
 
Get started with GitHub Copilot.pptx
Get started with GitHub Copilot.pptxGet started with GitHub Copilot.pptx
Get started with GitHub Copilot.pptxKhushiPanwar33
 
Say Goodbye To Java: Getting Started With Kotlin For Android Development
Say Goodbye To Java: Getting Started With Kotlin For Android DevelopmentSay Goodbye To Java: Getting Started With Kotlin For Android Development
Say Goodbye To Java: Getting Started With Kotlin For Android DevelopmentAdam Magaña
 
Hacking the Kinect with GAFFTA Day 1
Hacking the Kinect with GAFFTA Day 1Hacking the Kinect with GAFFTA Day 1
Hacking the Kinect with GAFFTA Day 1benDesigning
 
BBD Hands-on with Python. Practical Hands-on Workshop about "Behaviour Driven...
BBD Hands-on with Python. Practical Hands-on Workshop about "Behaviour Driven...BBD Hands-on with Python. Practical Hands-on Workshop about "Behaviour Driven...
BBD Hands-on with Python. Practical Hands-on Workshop about "Behaviour Driven...Hemmerling
 
Introduction to Application Development in Python and Gtk+ / Hildon @ Maemo 5
Introduction to Application Development in Python and Gtk+ / Hildon @ Maemo 5Introduction to Application Development in Python and Gtk+ / Hildon @ Maemo 5
Introduction to Application Development in Python and Gtk+ / Hildon @ Maemo 5Amanda Lam
 
github_unveils_copilot_x_chatgpt_for_coding_is_here.pdf
github_unveils_copilot_x_chatgpt_for_coding_is_here.pdfgithub_unveils_copilot_x_chatgpt_for_coding_is_here.pdf
github_unveils_copilot_x_chatgpt_for_coding_is_here.pdfsarah david
 
Git extension-training
Git extension-trainingGit extension-training
Git extension-trainingEric Guo
 
GitOps: Git come unica fonte di verità per applicazioni e infrastruttura
GitOps: Git come unica fonte di verità per applicazioni e infrastrutturaGitOps: Git come unica fonte di verità per applicazioni e infrastruttura
GitOps: Git come unica fonte di verità per applicazioni e infrastrutturasparkfabrik
 
Gitlab for JS developers (BrisJs meetup, 2019-Apr-01)
Gitlab for JS developers (BrisJs meetup, 2019-Apr-01)Gitlab for JS developers (BrisJs meetup, 2019-Apr-01)
Gitlab for JS developers (BrisJs meetup, 2019-Apr-01)Vladimir Roudakov
 
ESE 2010: Using Git in Eclipse
ESE 2010: Using Git in EclipseESE 2010: Using Git in Eclipse
ESE 2010: Using Git in EclipseChris Aniszczyk
 
Smart Device Link Integration into Linux systems by Jeremiah Foster
Smart Device Link Integration into Linux systems by Jeremiah FosterSmart Device Link Integration into Linux systems by Jeremiah Foster
Smart Device Link Integration into Linux systems by Jeremiah FosterLuxoft
 
Bitcoin Development 2019 Starter Guide - No Skill | ProvenCrypto
Bitcoin Development 2019 Starter Guide - No Skill | ProvenCryptoBitcoin Development 2019 Starter Guide - No Skill | ProvenCrypto
Bitcoin Development 2019 Starter Guide - No Skill | ProvenCryptoOpti Network
 
Android Development with Kotlin, Part 1 - Introduction
Android Development with Kotlin, Part 1 - IntroductionAndroid Development with Kotlin, Part 1 - Introduction
Android Development with Kotlin, Part 1 - IntroductionAndreas Jakl
 
GitHub Vs GitLab | What Are The Major Difference?
GitHub Vs GitLab | What Are The Major Difference?GitHub Vs GitLab | What Are The Major Difference?
GitHub Vs GitLab | What Are The Major Difference?GrapesTech Solutions
 

Semelhante a PluginAndPlay-AmsterdamJUG.pptx (20)

What's new in Android, Igor Malytsky ( Google Post I|O Tour)
What's new in Android, Igor Malytsky ( Google Post I|O Tour)What's new in Android, Igor Malytsky ( Google Post I|O Tour)
What's new in Android, Igor Malytsky ( Google Post I|O Tour)
 
Open frameworks 101_fitc
Open frameworks 101_fitcOpen frameworks 101_fitc
Open frameworks 101_fitc
 
GitHub Copilot.pptx
GitHub Copilot.pptxGitHub Copilot.pptx
GitHub Copilot.pptx
 
Git Tutorial A Comprehensive Guide for Beginners.pdf
Git Tutorial A Comprehensive Guide for Beginners.pdfGit Tutorial A Comprehensive Guide for Beginners.pdf
Git Tutorial A Comprehensive Guide for Beginners.pdf
 
Android studio 4.0 new features preview
Android studio 4.0 new features previewAndroid studio 4.0 new features preview
Android studio 4.0 new features preview
 
Get started with GitHub Copilot.pptx
Get started with GitHub Copilot.pptxGet started with GitHub Copilot.pptx
Get started with GitHub Copilot.pptx
 
Say Goodbye To Java: Getting Started With Kotlin For Android Development
Say Goodbye To Java: Getting Started With Kotlin For Android DevelopmentSay Goodbye To Java: Getting Started With Kotlin For Android Development
Say Goodbye To Java: Getting Started With Kotlin For Android Development
 
Hacking the Kinect with GAFFTA Day 1
Hacking the Kinect with GAFFTA Day 1Hacking the Kinect with GAFFTA Day 1
Hacking the Kinect with GAFFTA Day 1
 
BBD Hands-on with Python. Practical Hands-on Workshop about "Behaviour Driven...
BBD Hands-on with Python. Practical Hands-on Workshop about "Behaviour Driven...BBD Hands-on with Python. Practical Hands-on Workshop about "Behaviour Driven...
BBD Hands-on with Python. Practical Hands-on Workshop about "Behaviour Driven...
 
The-Git-Tutorial.ppt.pptx
The-Git-Tutorial.ppt.pptxThe-Git-Tutorial.ppt.pptx
The-Git-Tutorial.ppt.pptx
 
Introduction to Application Development in Python and Gtk+ / Hildon @ Maemo 5
Introduction to Application Development in Python and Gtk+ / Hildon @ Maemo 5Introduction to Application Development in Python and Gtk+ / Hildon @ Maemo 5
Introduction to Application Development in Python and Gtk+ / Hildon @ Maemo 5
 
github_unveils_copilot_x_chatgpt_for_coding_is_here.pdf
github_unveils_copilot_x_chatgpt_for_coding_is_here.pdfgithub_unveils_copilot_x_chatgpt_for_coding_is_here.pdf
github_unveils_copilot_x_chatgpt_for_coding_is_here.pdf
 
Git extension-training
Git extension-trainingGit extension-training
Git extension-training
 
GitOps: Git come unica fonte di verità per applicazioni e infrastruttura
GitOps: Git come unica fonte di verità per applicazioni e infrastrutturaGitOps: Git come unica fonte di verità per applicazioni e infrastruttura
GitOps: Git come unica fonte di verità per applicazioni e infrastruttura
 
Gitlab for JS developers (BrisJs meetup, 2019-Apr-01)
Gitlab for JS developers (BrisJs meetup, 2019-Apr-01)Gitlab for JS developers (BrisJs meetup, 2019-Apr-01)
Gitlab for JS developers (BrisJs meetup, 2019-Apr-01)
 
ESE 2010: Using Git in Eclipse
ESE 2010: Using Git in EclipseESE 2010: Using Git in Eclipse
ESE 2010: Using Git in Eclipse
 
Smart Device Link Integration into Linux systems by Jeremiah Foster
Smart Device Link Integration into Linux systems by Jeremiah FosterSmart Device Link Integration into Linux systems by Jeremiah Foster
Smart Device Link Integration into Linux systems by Jeremiah Foster
 
Bitcoin Development 2019 Starter Guide - No Skill | ProvenCrypto
Bitcoin Development 2019 Starter Guide - No Skill | ProvenCryptoBitcoin Development 2019 Starter Guide - No Skill | ProvenCrypto
Bitcoin Development 2019 Starter Guide - No Skill | ProvenCrypto
 
Android Development with Kotlin, Part 1 - Introduction
Android Development with Kotlin, Part 1 - IntroductionAndroid Development with Kotlin, Part 1 - Introduction
Android Development with Kotlin, Part 1 - Introduction
 
GitHub Vs GitLab | What Are The Major Difference?
GitHub Vs GitLab | What Are The Major Difference?GitHub Vs GitLab | What Are The Major Difference?
GitHub Vs GitLab | What Are The Major Difference?
 

Mais de SimonedeGijt

Co-creating_between_UX_and_Software_Rabobank
Co-creating_between_UX_and_Software_RabobankCo-creating_between_UX_and_Software_Rabobank
Co-creating_between_UX_and_Software_RabobankSimonedeGijt
 
Wired_Voxxed_Days_CERN_22-01-2024_Wired__
Wired_Voxxed_Days_CERN_22-01-2024_Wired__Wired_Voxxed_Days_CERN_22-01-2024_Wired__
Wired_Voxxed_Days_CERN_22-01-2024_Wired__SimonedeGijt
 
Wired_DevoxxBE_05102023.pptx
Wired_DevoxxBE_05102023.pptxWired_DevoxxBE_05102023.pptx
Wired_DevoxxBE_05102023.pptxSimonedeGijt
 
Co-creating with UX and Software Rabobank
Co-creating with UX and Software RabobankCo-creating with UX and Software Rabobank
Co-creating with UX and Software RabobankSimonedeGijt
 
Wired_Rabobank_27062023.pptx
Wired_Rabobank_27062023.pptxWired_Rabobank_27062023.pptx
Wired_Rabobank_27062023.pptxSimonedeGijt
 
Wired_JoyOfCoding_21062023.pptx
Wired_JoyOfCoding_21062023.pptxWired_JoyOfCoding_21062023.pptx
Wired_JoyOfCoding_21062023.pptxSimonedeGijt
 
Wired_DDD-Europe_09062023.pptx
Wired_DDD-Europe_09062023.pptxWired_DDD-Europe_09062023.pptx
Wired_DDD-Europe_09062023.pptxSimonedeGijt
 
Co-creating_UX_Software_VoxxedDaysIasi.pdf
Co-creating_UX_Software_VoxxedDaysIasi.pdfCo-creating_UX_Software_VoxxedDaysIasi.pdf
Co-creating_UX_Software_VoxxedDaysIasi.pdfSimonedeGijt
 
Wired_DevoxxUK_10052023.pptx
Wired_DevoxxUK_10052023.pptxWired_DevoxxUK_10052023.pptx
Wired_DevoxxUK_10052023.pptxSimonedeGijt
 
Co-creating_UX_Software-DevoxxUK.pdf
Co-creating_UX_Software-DevoxxUK.pdfCo-creating_UX_Software-DevoxxUK.pdf
Co-creating_UX_Software-DevoxxUK.pdfSimonedeGijt
 
Wired_DevNexus_06042023.pptx
Wired_DevNexus_06042023.pptxWired_DevNexus_06042023.pptx
Wired_DevNexus_06042023.pptxSimonedeGijt
 
Wired_DevNexus_06042023.pptx
Wired_DevNexus_06042023.pptxWired_DevNexus_06042023.pptx
Wired_DevNexus_06042023.pptxSimonedeGijt
 
Wired_Javaland_22032023.pptx
Wired_Javaland_22032023.pptxWired_Javaland_22032023.pptx
Wired_Javaland_22032023.pptxSimonedeGijt
 
Co-creating_UX_Software_JFALL.pdf
Co-creating_UX_Software_JFALL.pdfCo-creating_UX_Software_JFALL.pdf
Co-creating_UX_Software_JFALL.pdfSimonedeGijt
 
Co-creating_UX_Software_DevoxxBE.pdf
Co-creating_UX_Software_DevoxxBE.pdfCo-creating_UX_Software_DevoxxBE.pdf
Co-creating_UX_Software_DevoxxBE.pdfSimonedeGijt
 
Wired_VoxxedCluj_06102022.pdf
Wired_VoxxedCluj_06102022.pdfWired_VoxxedCluj_06102022.pdf
Wired_VoxxedCluj_06102022.pdfSimonedeGijt
 
Co-creating_UX_Software_VoxxedAthens2022.pdf
Co-creating_UX_Software_VoxxedAthens2022.pdfCo-creating_UX_Software_VoxxedAthens2022.pdf
Co-creating_UX_Software_VoxxedAthens2022.pdfSimonedeGijt
 
Wired_JSpring_08062022.pptx
Wired_JSpring_08062022.pptxWired_JSpring_08062022.pptx
Wired_JSpring_08062022.pptxSimonedeGijt
 

Mais de SimonedeGijt (18)

Co-creating_between_UX_and_Software_Rabobank
Co-creating_between_UX_and_Software_RabobankCo-creating_between_UX_and_Software_Rabobank
Co-creating_between_UX_and_Software_Rabobank
 
Wired_Voxxed_Days_CERN_22-01-2024_Wired__
Wired_Voxxed_Days_CERN_22-01-2024_Wired__Wired_Voxxed_Days_CERN_22-01-2024_Wired__
Wired_Voxxed_Days_CERN_22-01-2024_Wired__
 
Wired_DevoxxBE_05102023.pptx
Wired_DevoxxBE_05102023.pptxWired_DevoxxBE_05102023.pptx
Wired_DevoxxBE_05102023.pptx
 
Co-creating with UX and Software Rabobank
Co-creating with UX and Software RabobankCo-creating with UX and Software Rabobank
Co-creating with UX and Software Rabobank
 
Wired_Rabobank_27062023.pptx
Wired_Rabobank_27062023.pptxWired_Rabobank_27062023.pptx
Wired_Rabobank_27062023.pptx
 
Wired_JoyOfCoding_21062023.pptx
Wired_JoyOfCoding_21062023.pptxWired_JoyOfCoding_21062023.pptx
Wired_JoyOfCoding_21062023.pptx
 
Wired_DDD-Europe_09062023.pptx
Wired_DDD-Europe_09062023.pptxWired_DDD-Europe_09062023.pptx
Wired_DDD-Europe_09062023.pptx
 
Co-creating_UX_Software_VoxxedDaysIasi.pdf
Co-creating_UX_Software_VoxxedDaysIasi.pdfCo-creating_UX_Software_VoxxedDaysIasi.pdf
Co-creating_UX_Software_VoxxedDaysIasi.pdf
 
Wired_DevoxxUK_10052023.pptx
Wired_DevoxxUK_10052023.pptxWired_DevoxxUK_10052023.pptx
Wired_DevoxxUK_10052023.pptx
 
Co-creating_UX_Software-DevoxxUK.pdf
Co-creating_UX_Software-DevoxxUK.pdfCo-creating_UX_Software-DevoxxUK.pdf
Co-creating_UX_Software-DevoxxUK.pdf
 
Wired_DevNexus_06042023.pptx
Wired_DevNexus_06042023.pptxWired_DevNexus_06042023.pptx
Wired_DevNexus_06042023.pptx
 
Wired_DevNexus_06042023.pptx
Wired_DevNexus_06042023.pptxWired_DevNexus_06042023.pptx
Wired_DevNexus_06042023.pptx
 
Wired_Javaland_22032023.pptx
Wired_Javaland_22032023.pptxWired_Javaland_22032023.pptx
Wired_Javaland_22032023.pptx
 
Co-creating_UX_Software_JFALL.pdf
Co-creating_UX_Software_JFALL.pdfCo-creating_UX_Software_JFALL.pdf
Co-creating_UX_Software_JFALL.pdf
 
Co-creating_UX_Software_DevoxxBE.pdf
Co-creating_UX_Software_DevoxxBE.pdfCo-creating_UX_Software_DevoxxBE.pdf
Co-creating_UX_Software_DevoxxBE.pdf
 
Wired_VoxxedCluj_06102022.pdf
Wired_VoxxedCluj_06102022.pdfWired_VoxxedCluj_06102022.pdf
Wired_VoxxedCluj_06102022.pdf
 
Co-creating_UX_Software_VoxxedAthens2022.pdf
Co-creating_UX_Software_VoxxedAthens2022.pdfCo-creating_UX_Software_VoxxedAthens2022.pdf
Co-creating_UX_Software_VoxxedAthens2022.pdf
 
Wired_JSpring_08062022.pptx
Wired_JSpring_08062022.pptxWired_JSpring_08062022.pptx
Wired_JSpring_08062022.pptx
 

Último

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 

Último (20)

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 

PluginAndPlay-AmsterdamJUG.pptx

Notas do Editor

  1. ~
  2. László Kövér is a Hungarian politician and the current speaker of the National Assembly of Hungary. Kover is pronounced the same as the Dutch word for suitcase. https://github.com/Kotlin/kotlinx-kover
  3. Source: Kover – The Code Coverage Plugin https://www.youtube.com/watch?v=jNu5LY9HIbw
  4. Sources: Kover – The Code Coverage Plugin https://www.youtube.com/watch?v=jNu5LY9HIbw https://github.com/Kotlin/kotlinx-kover https://kotlinlang.org/docs/multiplatform.html
  5. Demo: Start with JaCoCo Show you can not see the class in the report (because of directory structure) Show inline function is not ”covered” Show IntelliJ Add Kover to the plugins Run report Open as HTML and show that you now can see the class-file including the coverage of the inline function Show that test classes are also tested by default Unmute integrationtests -> no additional config like with jacoco Standard: test is without Kover -> add config Show that you can exclude classes from Kover (both extension + report) Show kover config koverVerify Maybe subprojects (merged reports)
  6. Source: https://www.geeksforgeeks.org/code-formatting-in-kotlin-using-ktlint/
  7. Sources https://blog.mindorks.com/code-formatting-in-kotlin-using-ktlint https://github.com/JLLeitschuh/ktlint-gradle https://github.com/pinterest/ktlint https://github.com/gantsign/ktlint-maven-plugin https://megalinter.github.io/latest/installation/ JLLeitschuh: The plugin can be applied to any project, but only activates if that project has the kotlin plugin applied Check tasks support change files to be checked incrementally. On the first run, the task will check all files in the source set, on subsequent runs it will check only added/modified files. IntelliJ IDEA: recommended to work with the ktlint install from brew
  8. Demo: Basic project without a lint; show format-error in service -> build -> no issues Add ktlint (normal plugin) to project: show all new tasks Show that if you only want intellij idea tasks you can add -idea in the plugin: build, after ktlintCheck 2 options: Create baseline: ktlintGenerateBaseline Format via: ktlintFormat / option+command+l Git integration: addKtlintCheckGitPreCommitHook addKtlintFormatGitPreCommitHook Add plugin Nick Badal Actions on save Additional config file: Without editorconfig file or ktlint plugin the rules of preferences are applied (KOTLIN) You can overwrite this by the editorconfig file (no extra config needed) Source: https://medium.com/@vanniktech/writing-your-first-ktlint-rule-5a1707f4ca5b
  9. ComplexCondition
  10. Demo: Basic project without a lint; show format-error in service -> build -> no issues Add ktlint (normal plugin) to project: show all new tasks Show that if you only want intellij idea tasks you can add -idea in the plugin: build, after ktlintCheck 2 options: Create baseline: ktlintGenerateBaseline Format via: ktlintFormat / option+command+l Git integration: addKtlintCheckGitPreCommitHook addKtlintFormatGitPreCommitHook Add plugin Nick Badal Actions on save Additional config file: Without editorconfig file or ktlint plugin the rules of preferences are applied (KOTLIN) You can overwrite this by the editorconfig file (no extra config needed) Source: https://medium.com/@vanniktech/writing-your-first-ktlint-rule-5a1707f4ca5b