SlideShare a Scribd company logo
1 of 76
Download to read offline
Modernize your JAVA
applications with Kotlin:
Best Practices and Strategies
Exploring the beneļ¬ts, timing and strategies for
seamless modernization of applications with Kotlin
18.07.2023
online
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Ā© kreuzwerker 2023
Agenda
2
Introduction
Why Kotlin?
When should you switch to
Kotlin?
How to make a successful
transition to Kotlin?
Conclusion and Q&A
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
| Modernise your JAVA applications with Kotlin: Best Practices and Strategies
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Who are we?
3
Kateryna Oliferchuk Gopal Tayal Thomas Wendzinski
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
kreuzwerker
We unleash digital technology.
5
Founded 2012
AWS Partner since 2013
100% AWS
Berlin, Frankfurt,
Warsaw, Zurich
Migration & Modernization
Data & Analytics
Cloud Native Development
Managed Security Services
Cloud Financial Management
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023 6
Why Kotlin?
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
Released in 1995
Originally named Oak,
later renamed Java
Open-Sourced in 2006
Owned by Oracle
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Why JAVA?
8
Platform Stability
Wide Adoption Rate
High Performance
Backward Compatibility
Tooling & IDE Support
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
Released in 2011
Ofļ¬cial Android
Language
Open-Sourced in 2012
Owned by JetBrains
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
A side by side comparison
10
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023 11
Kotlin Pros
Java Cons
Verbosity & Boilerplate Code Concise Syntax
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Data classes in Kotlin
12
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
Lombok?
Records?
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Singleton objects
13
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023 14
Kotlin Pros
Java Cons
Verbosity & Boilerplate Code
No In-Built Null Safety
Concise Syntax
In-Built Null Safety
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
The ā€˜?ā€™ operator
15
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
The Billion Dollar Mistake
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023 16
Kotlin Pros
Java Cons
Verbosity & Boilerplate Code
No In-Built Null Safety
Concurrency
Concise Syntax
In-Built Null Safety
Coroutines
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Concurrency Vs. Co-routines
17
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Modern Language Features
18
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Lambda Functions
19
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Extension Functions
20
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Kotlin DSL
21
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Interoperability with JAVA
22
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023 23
When should you switch to
Kotlin?
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Options
24
Starting a new
project
Introducing
Midway /
Migration
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Common Challenges
25
Learning Curve
Tooling & Ecosystem
Community & Learning Resources
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Kotlin Community
26
https://discuss.kotlinlang.org/
https://dev.to/t/kotlin
https://stackoverļ¬‚ow.com/questions/tagged/kotlin+coroutine
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Common Challenges
27
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
Learning Curve
Tooling & Ecosystem
Community & Learning Resources
Scarcity of Talents
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Common Advantages
28
Increased Developers Satisfaction
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Who initiates the adoption of Kotlin in teams?
29
https://www.jetbrains.com/lp/devecosystem-2022/kotlin/#who-initiates-the-adoption-of-kotlin-in-teams-
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Loved vs Dreaded
30
https://survey.stackoverļ¬‚ow.co/2022/#most-loved-dreaded-and-wanted-language-love-dread
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Common Advantages
31
Increased Developers Satisfaction
Improved Productivity
Boosted Codebase Maintainability
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Starting a new project
32
Clean State
Full utilization of Kotlin features
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Introducing Midway / Migration
33
Advantages Challenges
Gradual Adoption
Opportunity for Optimization
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
Codebase Compatibility
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Codebase Compatibility
34
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Introducing Midway / Migration
35
Advantages Challenges
Gradual Adoption
Opportunity for Optimization
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
Codebase Compatibility
Team Coordination
Risk of Introducing Bugs
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
How to successfully transition
to Kotlin?
36
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Options
37
Starting a new
project
Introducing
Midway /
Migration
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Given you are here
38
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
You are a team that already had some
adventures together
You are going to deliver a new service
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Starting a new project
39
1
Plan
Identify goals and challenges
Train
Provide resources and time
2
Collaborate
Build a dev culture
3
Start
Just do it!
4
Evolve
Try new things
5
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Starting a new project
40
1
Plan
Identify goals and challenges
1. Reļ¬‚ect on your
teamā€™s capabilities
2. Extra effort to learn
a new language.
Train
Provide resources and time
2
Collaborate
Build a dev culture
3
Start
Just do it!
4
Try new things
5
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
Evolve
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Starting a new project
41
1
Plan
Identify goals and challenges
Train
Provide resources and time
1. Provide Basic
Training.
2. Add someone with
Kotlin experience
on the team.
2
Collaborate
Build a dev culture
3
Start
Just do it!
4
Try new things
5
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
Evolve
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Starting a new project
42
1
Plan
Identify goals and challenges
Train
Provide resources and time
2
Collaborate
Build a dev culture
1. Promote knowledge
sharing.
2. Mob/Pair
Programming
3
Start
Just do it!
4
Try new things
5
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
Evolve
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Starting a new project
43
1
Plan
Identify goals and challenges
Train
Provide resources and time
2
Collaborate
Build a dev culture
3
Start
Just do it!
4
Try new things
5
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
Evolve
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Starting a new project
44
1
Plan
Identify goals and challenges
Train
Provide resources and time
2
Collaborate
Build a dev culture
3
Start
Just do it!
4
Try new things
1. DSL for Kotlin
2. Kotlin speciļ¬c
libraries and Tools
5
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
Evolve
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Given you are here
45
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
You are a team that already had some adventures
together
You own a zoo of domains // services
You are going to create a new feature to an
existing service
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Introducing Midway/Migration
46
1
Plan
Identify goals and challenges
Train
Provide resources and time
2
Collaborate
Build a dev culture
3
Start
Just do it!
4
Try new things
5
and ..
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
Evolve
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Introducing Midway
47
Have an integration plan
Address legacy code dependencies
Adapt source sets for interoperability
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Introducing Midway
48
Address legay code dependencies
Adapt source sets for interoperability
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
Have an integration plan
Address legacy code dependencies
Adapt source sets for
interoperability
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Introducing Midway
49
Address legay code dependencies
Adapt source sets for interoperability
āœ…
āœ…
āš 
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
Have an integration plan
Address legacy code dependencies
Adapt source sets for
interoperability
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Introducing Midway
50
Address legay code dependencies
Adapt source sets for interoperability
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
Have an integration plan
Address legacy code dependencies
Adapt source sets for
interoperability
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Migration
51
Ensure Automated tests exist and migrate
them ļ¬rst
Take advantage of your IDE
Ensure tests are green
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
52
Questions?
53
Book a slot!
More
Questions?
https://my.meetergo.com/team/mod-webinar-follow-up/mod-webinar-follow-up-meeting
kreuzwerker GmbH
Ritterstr. 12
10969 Berlin
www.kreuzwerker.de
Fon +49 30 609 838 80
Fax +49 30 609 838 899
Thank you for your attention!
Your feedback is important to us!
Contact us: aws@kreuzwerker.de
https://easy-feedback.com/Modernize-You
r-Java-Applications/1696846/68G4G1
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Appendix
55
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
The Dark Side of Kotlin?
56
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Known drawbacks
57
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
Learning Curve
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Known drawbacks
58
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
Learning Curve
Build Speed & Tooling
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Known drawbacks
59
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
Learning Curve
Build Speed & Tooling
Binary Size & Runtime Overhead
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Known Pitfalls / Tips
60
Language Syntax
ā€˜varā€™ and ā€˜valā€™ keywords
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Known Pitfalls / Tips
61
Language Syntax
ā€˜staticā€™ methods and ļ¬elds
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Known Pitfalls / Tips
62
Language Syntax
ā€˜equalsā€™ method
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Known Pitfalls / Tips
63
Language Syntax
Handling Nullable Properties
converts to
maybe you want
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Known Pitfalls / Tips
64
Language Syntax
Null safety for Platform types
Better:
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Known Pitfalls / Tips
65
Language Syntax
Smart Casting
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Known Pitfalls / Tips
66
Language Syntax
Elvis Operator and friends
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Known Pitfalls / Tips
67
Language Syntax
Function Type
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Known Pitfalls / Tips
68
Language Syntax
Use Functional interfaces where possible
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Known Pitfalls / Tips
69
Language Syntax
Library / Framework Support
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Known Pitfalls / Tips
70
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
Library / Framework Support
Kotlin Library - Collection Functions
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Known Pitfalls / Tips
71
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
Library / Framework Support
Jackson Module Kotlin
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Source: https://github.com/sdeleuze
Known Pitfalls / Tips
72
Library / Framework Suport
https://docs.spring.io/spring-framework/reference/la
nguages/kotlin.html
spring-kotlin-functional/src/main/kotlin/f
unctional/Routes.kt at master Ā·
sdeleuze/spring-kotlin-functional Ā· GitHub
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
Library / Framework Support
Spring Framework
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Known Pitfalls / Tips
73
GitHub - mockito/mockito-kotlin: Using Mockito with Kotlin https://mockk.io/
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
Library / Framework Support
Mocking
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Known Pitfalls / Tips
74
āœ… @MockkBean for Spring also
supported
Library / Framework Support
Mocking
GitHub - mockito/mockito-kotlin: Using Mockito with Kotlin https://mockk.io/
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Known Pitfalls / Tips
75
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
Library / Framework Support
KTor
| Modernize your JAVA applications with Kotlin: Best Practices and Strategies
Ā© kreuzwerker 2023
Loved vs Dreaded
76
Kotlin Java
https://survey.stackoverļ¬‚ow.co/2022/#most-loved-dreaded-and-wanted-language-love-dread
Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin

More Related Content

Similar to App Modernization with Kotlin.pdf

Top Considerations For Operating a Kubernetes Environment at Scale
Top Considerations For Operating a Kubernetes Environment at ScaleTop Considerations For Operating a Kubernetes Environment at Scale
Top Considerations For Operating a Kubernetes Environment at ScaleSignalFx
Ā 
SFSCON23 - Sara Gallian - The First Year of Eclipse Software Defined Vehicle ...
SFSCON23 - Sara Gallian - The First Year of Eclipse Software Defined Vehicle ...SFSCON23 - Sara Gallian - The First Year of Eclipse Software Defined Vehicle ...
SFSCON23 - Sara Gallian - The First Year of Eclipse Software Defined Vehicle ...South Tyrol Free Software Conference
Ā 
"The Cloud Native Enterprise is Coming"
"The Cloud Native Enterprise is Coming" "The Cloud Native Enterprise is Coming"
"The Cloud Native Enterprise is Coming" James Watters
Ā 
DX, Guardrails, Golden Paths & Policy in Kubernetes
DX, Guardrails, Golden Paths & Policy in KubernetesDX, Guardrails, Golden Paths & Policy in Kubernetes
DX, Guardrails, Golden Paths & Policy in KubernetesWeaveworks
Ā 
Production-Ready Kubernetes: It's Not About Technology
Production-Ready Kubernetes: It's Not About TechnologyProduction-Ready Kubernetes: It's Not About Technology
Production-Ready Kubernetes: It's Not About TechnologyAntoine Craske
Ā 
Application Modernization
Application ModernizationApplication Modernization
Application ModernizationSuccessiveDigital
Ā 
DevOps in the Real World: Know What it Takes to Make it Work
DevOps in the Real World: Know What it Takes to Make it WorkDevOps in the Real World: Know What it Takes to Make it Work
DevOps in the Real World: Know What it Takes to Make it WorkVMware Tanzu
Ā 
Cloud native with kubernetes
Cloud native with kubernetesCloud native with kubernetes
Cloud native with kubernetesCatalin Jora
Ā 
Introduction of Kubernetes - Trang Nguyen
Introduction of Kubernetes - Trang NguyenIntroduction of Kubernetes - Trang Nguyen
Introduction of Kubernetes - Trang NguyenTrang Nguyen
Ā 
Modernizing Traditional Applications
Modernizing Traditional ApplicationsModernizing Traditional Applications
Modernizing Traditional ApplicationsDocker, Inc.
Ā 
Building and Deploying Cloud Native Applications
Building and Deploying Cloud Native ApplicationsBuilding and Deploying Cloud Native Applications
Building and Deploying Cloud Native ApplicationsManish Kapur
Ā 
Cloud Native Meetup Santa Clara 07-11-2019 by Manish Kapur
Cloud Native Meetup Santa Clara 07-11-2019 by Manish KapurCloud Native Meetup Santa Clara 07-11-2019 by Manish Kapur
Cloud Native Meetup Santa Clara 07-11-2019 by Manish KapurOracle Developers
Ā 
[Konveyor] migrate and modernize your application portfolio to kubernetes wit...
[Konveyor] migrate and modernize your application portfolio to kubernetes wit...[Konveyor] migrate and modernize your application portfolio to kubernetes wit...
[Konveyor] migrate and modernize your application portfolio to kubernetes wit...Konveyor Community
Ā 
Anypoint Platform for Pivotal Cloud Foundry
Anypoint Platform for Pivotal Cloud FoundryAnypoint Platform for Pivotal Cloud Foundry
Anypoint Platform for Pivotal Cloud FoundryMuleSoft
Ā 
Application Migration: How to Start, Scale and Succeed
Application Migration: How to Start, Scale and SucceedApplication Migration: How to Start, Scale and Succeed
Application Migration: How to Start, Scale and SucceedVMware Tanzu
Ā 
EVERYTHING AS CODE: API-GATEWAY, DEVELOPER PORTAL UND GRAPHQL
EVERYTHING AS CODE: API-GATEWAY, DEVELOPER PORTAL UND GRAPHQLEVERYTHING AS CODE: API-GATEWAY, DEVELOPER PORTAL UND GRAPHQL
EVERYTHING AS CODE: API-GATEWAY, DEVELOPER PORTAL UND GRAPHQLjuliebardinjimenez1
Ā 
360-Degree Health Assessment of Microservices on Pivotal Platform
360-Degree Health Assessment of Microservices on Pivotal Platform360-Degree Health Assessment of Microservices on Pivotal Platform
360-Degree Health Assessment of Microservices on Pivotal PlatformVMware Tanzu
Ā 
Travelers 360 degree health assessment of microservices on the pivotal platform
Travelers 360 degree health assessment of microservices on the pivotal platformTravelers 360 degree health assessment of microservices on the pivotal platform
Travelers 360 degree health assessment of microservices on the pivotal platformRohit Kelapure
Ā 

Similar to App Modernization with Kotlin.pdf (20)

Top Considerations For Operating a Kubernetes Environment at Scale
Top Considerations For Operating a Kubernetes Environment at ScaleTop Considerations For Operating a Kubernetes Environment at Scale
Top Considerations For Operating a Kubernetes Environment at Scale
Ā 
SFSCON23 - Sara Gallian - The First Year of Eclipse Software Defined Vehicle ...
SFSCON23 - Sara Gallian - The First Year of Eclipse Software Defined Vehicle ...SFSCON23 - Sara Gallian - The First Year of Eclipse Software Defined Vehicle ...
SFSCON23 - Sara Gallian - The First Year of Eclipse Software Defined Vehicle ...
Ā 
"The Cloud Native Enterprise is Coming"
"The Cloud Native Enterprise is Coming" "The Cloud Native Enterprise is Coming"
"The Cloud Native Enterprise is Coming"
Ā 
DX, Guardrails, Golden Paths & Policy in Kubernetes
DX, Guardrails, Golden Paths & Policy in KubernetesDX, Guardrails, Golden Paths & Policy in Kubernetes
DX, Guardrails, Golden Paths & Policy in Kubernetes
Ā 
Enterprise Agile at Lockheed Martin - 4th February 2014
Enterprise Agile at Lockheed Martin - 4th February 2014Enterprise Agile at Lockheed Martin - 4th February 2014
Enterprise Agile at Lockheed Martin - 4th February 2014
Ā 
Production-Ready Kubernetes: It's Not About Technology
Production-Ready Kubernetes: It's Not About TechnologyProduction-Ready Kubernetes: It's Not About Technology
Production-Ready Kubernetes: It's Not About Technology
Ā 
Application Modernization
Application ModernizationApplication Modernization
Application Modernization
Ā 
DevOps in the Real World: Know What it Takes to Make it Work
DevOps in the Real World: Know What it Takes to Make it WorkDevOps in the Real World: Know What it Takes to Make it Work
DevOps in the Real World: Know What it Takes to Make it Work
Ā 
Cloud native with kubernetes
Cloud native with kubernetesCloud native with kubernetes
Cloud native with kubernetes
Ā 
Introduction of Kubernetes - Trang Nguyen
Introduction of Kubernetes - Trang NguyenIntroduction of Kubernetes - Trang Nguyen
Introduction of Kubernetes - Trang Nguyen
Ā 
Modernizing Traditional Applications
Modernizing Traditional ApplicationsModernizing Traditional Applications
Modernizing Traditional Applications
Ā 
Building and Deploying Cloud Native Applications
Building and Deploying Cloud Native ApplicationsBuilding and Deploying Cloud Native Applications
Building and Deploying Cloud Native Applications
Ā 
Cloud Native Meetup Santa Clara 07-11-2019 by Manish Kapur
Cloud Native Meetup Santa Clara 07-11-2019 by Manish KapurCloud Native Meetup Santa Clara 07-11-2019 by Manish Kapur
Cloud Native Meetup Santa Clara 07-11-2019 by Manish Kapur
Ā 
[Konveyor] migrate and modernize your application portfolio to kubernetes wit...
[Konveyor] migrate and modernize your application portfolio to kubernetes wit...[Konveyor] migrate and modernize your application portfolio to kubernetes wit...
[Konveyor] migrate and modernize your application portfolio to kubernetes wit...
Ā 
Dev secops managed service - kaiburr
Dev secops managed service - kaiburrDev secops managed service - kaiburr
Dev secops managed service - kaiburr
Ā 
Anypoint Platform for Pivotal Cloud Foundry
Anypoint Platform for Pivotal Cloud FoundryAnypoint Platform for Pivotal Cloud Foundry
Anypoint Platform for Pivotal Cloud Foundry
Ā 
Application Migration: How to Start, Scale and Succeed
Application Migration: How to Start, Scale and SucceedApplication Migration: How to Start, Scale and Succeed
Application Migration: How to Start, Scale and Succeed
Ā 
EVERYTHING AS CODE: API-GATEWAY, DEVELOPER PORTAL UND GRAPHQL
EVERYTHING AS CODE: API-GATEWAY, DEVELOPER PORTAL UND GRAPHQLEVERYTHING AS CODE: API-GATEWAY, DEVELOPER PORTAL UND GRAPHQL
EVERYTHING AS CODE: API-GATEWAY, DEVELOPER PORTAL UND GRAPHQL
Ā 
360-Degree Health Assessment of Microservices on Pivotal Platform
360-Degree Health Assessment of Microservices on Pivotal Platform360-Degree Health Assessment of Microservices on Pivotal Platform
360-Degree Health Assessment of Microservices on Pivotal Platform
Ā 
Travelers 360 degree health assessment of microservices on the pivotal platform
Travelers 360 degree health assessment of microservices on the pivotal platformTravelers 360 degree health assessment of microservices on the pivotal platform
Travelers 360 degree health assessment of microservices on the pivotal platform
Ā 

More from kreuzwerker GmbH

2024-02-29_Webinar_DORA_(Digital Operational Resilience Act) praxistauglich e...
2024-02-29_Webinar_DORA_(Digital Operational Resilience Act) praxistauglich e...2024-02-29_Webinar_DORA_(Digital Operational Resilience Act) praxistauglich e...
2024-02-29_Webinar_DORA_(Digital Operational Resilience Act) praxistauglich e...kreuzwerker GmbH
Ā 
AWS & kreuzwerker Startup Day Warsaw - 09.11.2023
AWS & kreuzwerker Startup Day Warsaw - 09.11.2023AWS & kreuzwerker Startup Day Warsaw - 09.11.2023
AWS & kreuzwerker Startup Day Warsaw - 09.11.2023kreuzwerker GmbH
Ā 
Level Up Your Amazon OpenSearch Cluster in a Week
Level Up Your Amazon OpenSearch Cluster in a WeekLevel Up Your Amazon OpenSearch Cluster in a Week
Level Up Your Amazon OpenSearch Cluster in a Weekkreuzwerker GmbH
Ā 
kreuzwerker AWS Modernizing Legacy Operations with Containerized Solutions 20...
kreuzwerker AWS Modernizing Legacy Operations with Containerized Solutions 20...kreuzwerker AWS Modernizing Legacy Operations with Containerized Solutions 20...
kreuzwerker AWS Modernizing Legacy Operations with Containerized Solutions 20...kreuzwerker GmbH
Ā 
Making Serverless a Game Changer for you
Making Serverless a Game Changer for youMaking Serverless a Game Changer for you
Making Serverless a Game Changer for youkreuzwerker GmbH
Ā 
The Testing Pyramid In a Serverless World.pdf
The Testing Pyramid In a Serverless World.pdfThe Testing Pyramid In a Serverless World.pdf
The Testing Pyramid In a Serverless World.pdfkreuzwerker GmbH
Ā 
2022-09-13 kreuzwerker Atlassian - Navigating GDPR and BaFin in the Cloud.pdf
2022-09-13 kreuzwerker Atlassian - Navigating GDPR and BaFin in the Cloud.pdf2022-09-13 kreuzwerker Atlassian - Navigating GDPR and BaFin in the Cloud.pdf
2022-09-13 kreuzwerker Atlassian - Navigating GDPR and BaFin in the Cloud.pdfkreuzwerker GmbH
Ā 
kreuzwerker FactSheet: Jira Work Management (English)
kreuzwerker FactSheet: Jira Work Management (English)kreuzwerker FactSheet: Jira Work Management (English)
kreuzwerker FactSheet: Jira Work Management (English)kreuzwerker GmbH
Ā 
AWS Immersion Day Zurich, kreuzwerker & AWS, 30. Mai 2022
AWS Immersion Day Zurich, kreuzwerker & AWS, 30. Mai 2022AWS Immersion Day Zurich, kreuzwerker & AWS, 30. Mai 2022
AWS Immersion Day Zurich, kreuzwerker & AWS, 30. Mai 2022kreuzwerker GmbH
Ā 
Business Team Collaboration- Jira Work Management Webinar by kreuzwerker.pdf
Business Team Collaboration- Jira Work Management Webinar by kreuzwerker.pdfBusiness Team Collaboration- Jira Work Management Webinar by kreuzwerker.pdf
Business Team Collaboration- Jira Work Management Webinar by kreuzwerker.pdfkreuzwerker GmbH
Ā 
kreuzwerker about prowler - make best practises best practises
kreuzwerker about prowler - make best practises best practiseskreuzwerker about prowler - make best practises best practises
kreuzwerker about prowler - make best practises best practiseskreuzwerker GmbH
Ā 
Best friends forever! - Atlassian Cloud and the GDPR
Best friends forever! - Atlassian Cloud and the GDPRBest friends forever! - Atlassian Cloud and the GDPR
Best friends forever! - Atlassian Cloud and the GDPRkreuzwerker GmbH
Ā 
Infrastructure under the magnifying glass
Infrastructure under the magnifying glassInfrastructure under the magnifying glass
Infrastructure under the magnifying glasskreuzwerker GmbH
Ā 
Hands On Docker Workshop
Hands On Docker WorkshopHands On Docker Workshop
Hands On Docker Workshopkreuzwerker GmbH
Ā 
Docker offshore - packaging applications for hard to reach datacenter
Docker offshore - packaging applications for hard to reach datacenterDocker offshore - packaging applications for hard to reach datacenter
Docker offshore - packaging applications for hard to reach datacenterkreuzwerker GmbH
Ā 

More from kreuzwerker GmbH (17)

2024-02-29_Webinar_DORA_(Digital Operational Resilience Act) praxistauglich e...
2024-02-29_Webinar_DORA_(Digital Operational Resilience Act) praxistauglich e...2024-02-29_Webinar_DORA_(Digital Operational Resilience Act) praxistauglich e...
2024-02-29_Webinar_DORA_(Digital Operational Resilience Act) praxistauglich e...
Ā 
AWS & kreuzwerker Startup Day Warsaw - 09.11.2023
AWS & kreuzwerker Startup Day Warsaw - 09.11.2023AWS & kreuzwerker Startup Day Warsaw - 09.11.2023
AWS & kreuzwerker Startup Day Warsaw - 09.11.2023
Ā 
Level Up Your Amazon OpenSearch Cluster in a Week
Level Up Your Amazon OpenSearch Cluster in a WeekLevel Up Your Amazon OpenSearch Cluster in a Week
Level Up Your Amazon OpenSearch Cluster in a Week
Ā 
kreuzwerker AWS Modernizing Legacy Operations with Containerized Solutions 20...
kreuzwerker AWS Modernizing Legacy Operations with Containerized Solutions 20...kreuzwerker AWS Modernizing Legacy Operations with Containerized Solutions 20...
kreuzwerker AWS Modernizing Legacy Operations with Containerized Solutions 20...
Ā 
Making Serverless a Game Changer for you
Making Serverless a Game Changer for youMaking Serverless a Game Changer for you
Making Serverless a Game Changer for you
Ā 
The Testing Pyramid In a Serverless World.pdf
The Testing Pyramid In a Serverless World.pdfThe Testing Pyramid In a Serverless World.pdf
The Testing Pyramid In a Serverless World.pdf
Ā 
2022-09-13 kreuzwerker Atlassian - Navigating GDPR and BaFin in the Cloud.pdf
2022-09-13 kreuzwerker Atlassian - Navigating GDPR and BaFin in the Cloud.pdf2022-09-13 kreuzwerker Atlassian - Navigating GDPR and BaFin in the Cloud.pdf
2022-09-13 kreuzwerker Atlassian - Navigating GDPR and BaFin in the Cloud.pdf
Ā 
kreuzwerker FactSheet: Jira Work Management (English)
kreuzwerker FactSheet: Jira Work Management (English)kreuzwerker FactSheet: Jira Work Management (English)
kreuzwerker FactSheet: Jira Work Management (English)
Ā 
AWS Immersion Day Zurich, kreuzwerker & AWS, 30. Mai 2022
AWS Immersion Day Zurich, kreuzwerker & AWS, 30. Mai 2022AWS Immersion Day Zurich, kreuzwerker & AWS, 30. Mai 2022
AWS Immersion Day Zurich, kreuzwerker & AWS, 30. Mai 2022
Ā 
Business Team Collaboration- Jira Work Management Webinar by kreuzwerker.pdf
Business Team Collaboration- Jira Work Management Webinar by kreuzwerker.pdfBusiness Team Collaboration- Jira Work Management Webinar by kreuzwerker.pdf
Business Team Collaboration- Jira Work Management Webinar by kreuzwerker.pdf
Ā 
kreuzwerker about prowler - make best practises best practises
kreuzwerker about prowler - make best practises best practiseskreuzwerker about prowler - make best practises best practises
kreuzwerker about prowler - make best practises best practises
Ā 
Best friends forever! - Atlassian Cloud and the GDPR
Best friends forever! - Atlassian Cloud and the GDPRBest friends forever! - Atlassian Cloud and the GDPR
Best friends forever! - Atlassian Cloud and the GDPR
Ā 
Infrastructure under the magnifying glass
Infrastructure under the magnifying glassInfrastructure under the magnifying glass
Infrastructure under the magnifying glass
Ā 
Docker offshore
Docker offshoreDocker offshore
Docker offshore
Ā 
Hands On Docker Workshop
Hands On Docker WorkshopHands On Docker Workshop
Hands On Docker Workshop
Ā 
Docker Workshop
Docker WorkshopDocker Workshop
Docker Workshop
Ā 
Docker offshore - packaging applications for hard to reach datacenter
Docker offshore - packaging applications for hard to reach datacenterDocker offshore - packaging applications for hard to reach datacenter
Docker offshore - packaging applications for hard to reach datacenter
Ā 

Recently uploaded

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
Ā 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
Ā 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
Ā 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
Ā 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
Ā 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service šŸø 8923113531 šŸŽ° Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service šŸø 8923113531 šŸŽ° Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service šŸø 8923113531 šŸŽ° Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service šŸø 8923113531 šŸŽ° Avail...gurkirankumar98700
Ā 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
Ā 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
Ā 
#StandardsGoals for 2024: Whatā€™s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: Whatā€™s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: Whatā€™s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: Whatā€™s new for BISAC - Tech Forum 2024BookNet Canada
Ā 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
Ā 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
Ā 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
Ā 
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
Ā 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
Ā 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
Ā 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
Ā 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
Ā 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
Ā 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
Ā 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
Ā 

Recently uploaded (20)

[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
Ā 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
Ā 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
Ā 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
Ā 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
Ā 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service šŸø 8923113531 šŸŽ° Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service šŸø 8923113531 šŸŽ° Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service šŸø 8923113531 šŸŽ° Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service šŸø 8923113531 šŸŽ° Avail...
Ā 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Ā 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
Ā 
#StandardsGoals for 2024: Whatā€™s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: Whatā€™s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: Whatā€™s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: Whatā€™s new for BISAC - Tech Forum 2024
Ā 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Ā 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Ā 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
Ā 
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
Ā 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Ā 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
Ā 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
Ā 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
Ā 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Ā 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
Ā 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
Ā 

App Modernization with Kotlin.pdf

  • 1. Modernize your JAVA applications with Kotlin: Best Practices and Strategies Exploring the beneļ¬ts, timing and strategies for seamless modernization of applications with Kotlin 18.07.2023 online
  • 2. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Ā© kreuzwerker 2023 Agenda 2 Introduction Why Kotlin? When should you switch to Kotlin? How to make a successful transition to Kotlin? Conclusion and Q&A Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin | Modernise your JAVA applications with Kotlin: Best Practices and Strategies
  • 3. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Who are we? 3 Kateryna Oliferchuk Gopal Tayal Thomas Wendzinski Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 5. 5 Founded 2012 AWS Partner since 2013 100% AWS Berlin, Frankfurt, Warsaw, Zurich Migration & Modernization Data & Analytics Cloud Native Development Managed Security Services Cloud Financial Management
  • 6. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 6 Why Kotlin? Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 7. Released in 1995 Originally named Oak, later renamed Java Open-Sourced in 2006 Owned by Oracle
  • 8. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Why JAVA? 8 Platform Stability Wide Adoption Rate High Performance Backward Compatibility Tooling & IDE Support Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 9. Released in 2011 Ofļ¬cial Android Language Open-Sourced in 2012 Owned by JetBrains
  • 10. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 A side by side comparison 10 Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 11. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 11 Kotlin Pros Java Cons Verbosity & Boilerplate Code Concise Syntax Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 12. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Data classes in Kotlin 12 Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin Lombok? Records?
  • 13. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Singleton objects 13 Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 14. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 14 Kotlin Pros Java Cons Verbosity & Boilerplate Code No In-Built Null Safety Concise Syntax In-Built Null Safety Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 15. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 The ā€˜?ā€™ operator 15 Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin The Billion Dollar Mistake
  • 16. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 16 Kotlin Pros Java Cons Verbosity & Boilerplate Code No In-Built Null Safety Concurrency Concise Syntax In-Built Null Safety Coroutines Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 17. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Concurrency Vs. Co-routines 17 Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 18. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Modern Language Features 18 Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 19. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Lambda Functions 19 Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 20. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Extension Functions 20 Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 21. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Kotlin DSL 21 Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 22. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Interoperability with JAVA 22 Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 23. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 23 When should you switch to Kotlin? Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 24. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Options 24 Starting a new project Introducing Midway / Migration Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 25. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Common Challenges 25 Learning Curve Tooling & Ecosystem Community & Learning Resources Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 26. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Kotlin Community 26 https://discuss.kotlinlang.org/ https://dev.to/t/kotlin https://stackoverļ¬‚ow.com/questions/tagged/kotlin+coroutine Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 27. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Common Challenges 27 Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin Learning Curve Tooling & Ecosystem Community & Learning Resources Scarcity of Talents
  • 28. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Common Advantages 28 Increased Developers Satisfaction Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 29. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Who initiates the adoption of Kotlin in teams? 29 https://www.jetbrains.com/lp/devecosystem-2022/kotlin/#who-initiates-the-adoption-of-kotlin-in-teams- Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 30. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Loved vs Dreaded 30 https://survey.stackoverļ¬‚ow.co/2022/#most-loved-dreaded-and-wanted-language-love-dread Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 31. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Common Advantages 31 Increased Developers Satisfaction Improved Productivity Boosted Codebase Maintainability Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 32. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Starting a new project 32 Clean State Full utilization of Kotlin features Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 33. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Introducing Midway / Migration 33 Advantages Challenges Gradual Adoption Opportunity for Optimization Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin Codebase Compatibility
  • 34. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Codebase Compatibility 34 Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 35. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Introducing Midway / Migration 35 Advantages Challenges Gradual Adoption Opportunity for Optimization Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin Codebase Compatibility Team Coordination Risk of Introducing Bugs
  • 36. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 How to successfully transition to Kotlin? 36 Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 37. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Options 37 Starting a new project Introducing Midway / Migration Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 38. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Given you are here 38 Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin You are a team that already had some adventures together You are going to deliver a new service
  • 39. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Starting a new project 39 1 Plan Identify goals and challenges Train Provide resources and time 2 Collaborate Build a dev culture 3 Start Just do it! 4 Evolve Try new things 5 Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 40. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Starting a new project 40 1 Plan Identify goals and challenges 1. Reļ¬‚ect on your teamā€™s capabilities 2. Extra effort to learn a new language. Train Provide resources and time 2 Collaborate Build a dev culture 3 Start Just do it! 4 Try new things 5 Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin Evolve
  • 41. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Starting a new project 41 1 Plan Identify goals and challenges Train Provide resources and time 1. Provide Basic Training. 2. Add someone with Kotlin experience on the team. 2 Collaborate Build a dev culture 3 Start Just do it! 4 Try new things 5 Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin Evolve
  • 42. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Starting a new project 42 1 Plan Identify goals and challenges Train Provide resources and time 2 Collaborate Build a dev culture 1. Promote knowledge sharing. 2. Mob/Pair Programming 3 Start Just do it! 4 Try new things 5 Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin Evolve
  • 43. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Starting a new project 43 1 Plan Identify goals and challenges Train Provide resources and time 2 Collaborate Build a dev culture 3 Start Just do it! 4 Try new things 5 Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin Evolve
  • 44. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Starting a new project 44 1 Plan Identify goals and challenges Train Provide resources and time 2 Collaborate Build a dev culture 3 Start Just do it! 4 Try new things 1. DSL for Kotlin 2. Kotlin speciļ¬c libraries and Tools 5 Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin Evolve
  • 45. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Given you are here 45 Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin You are a team that already had some adventures together You own a zoo of domains // services You are going to create a new feature to an existing service
  • 46. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Introducing Midway/Migration 46 1 Plan Identify goals and challenges Train Provide resources and time 2 Collaborate Build a dev culture 3 Start Just do it! 4 Try new things 5 and .. Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin Evolve
  • 47. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Introducing Midway 47 Have an integration plan Address legacy code dependencies Adapt source sets for interoperability Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 48. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Introducing Midway 48 Address legay code dependencies Adapt source sets for interoperability Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin Have an integration plan Address legacy code dependencies Adapt source sets for interoperability
  • 49. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Introducing Midway 49 Address legay code dependencies Adapt source sets for interoperability āœ… āœ… āš  Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin Have an integration plan Address legacy code dependencies Adapt source sets for interoperability
  • 50. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Introducing Midway 50 Address legay code dependencies Adapt source sets for interoperability Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin Have an integration plan Address legacy code dependencies Adapt source sets for interoperability
  • 51. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Migration 51 Ensure Automated tests exist and migrate them ļ¬rst Take advantage of your IDE Ensure tests are green Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 54. kreuzwerker GmbH Ritterstr. 12 10969 Berlin www.kreuzwerker.de Fon +49 30 609 838 80 Fax +49 30 609 838 899 Thank you for your attention! Your feedback is important to us! Contact us: aws@kreuzwerker.de https://easy-feedback.com/Modernize-You r-Java-Applications/1696846/68G4G1
  • 55. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Appendix 55 Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 56. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 The Dark Side of Kotlin? 56 Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 57. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Known drawbacks 57 Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin Learning Curve
  • 58. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Known drawbacks 58 Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin Learning Curve Build Speed & Tooling
  • 59. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Known drawbacks 59 Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin Learning Curve Build Speed & Tooling Binary Size & Runtime Overhead
  • 60. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Known Pitfalls / Tips 60 Language Syntax ā€˜varā€™ and ā€˜valā€™ keywords Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 61. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Known Pitfalls / Tips 61 Language Syntax ā€˜staticā€™ methods and ļ¬elds Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 62. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Known Pitfalls / Tips 62 Language Syntax ā€˜equalsā€™ method Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 63. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Known Pitfalls / Tips 63 Language Syntax Handling Nullable Properties converts to maybe you want Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 64. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Known Pitfalls / Tips 64 Language Syntax Null safety for Platform types Better: Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 65. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Known Pitfalls / Tips 65 Language Syntax Smart Casting Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 66. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Known Pitfalls / Tips 66 Language Syntax Elvis Operator and friends Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 67. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Known Pitfalls / Tips 67 Language Syntax Function Type Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 68. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Known Pitfalls / Tips 68 Language Syntax Use Functional interfaces where possible Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 69. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Known Pitfalls / Tips 69 Language Syntax Library / Framework Support Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 70. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Known Pitfalls / Tips 70 Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin Library / Framework Support Kotlin Library - Collection Functions
  • 71. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Known Pitfalls / Tips 71 Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin Library / Framework Support Jackson Module Kotlin
  • 72. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Source: https://github.com/sdeleuze Known Pitfalls / Tips 72 Library / Framework Suport https://docs.spring.io/spring-framework/reference/la nguages/kotlin.html spring-kotlin-functional/src/main/kotlin/f unctional/Routes.kt at master Ā· sdeleuze/spring-kotlin-functional Ā· GitHub Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin Library / Framework Support Spring Framework
  • 73. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Known Pitfalls / Tips 73 GitHub - mockito/mockito-kotlin: Using Mockito with Kotlin https://mockk.io/ Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin Library / Framework Support Mocking
  • 74. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Known Pitfalls / Tips 74 āœ… @MockkBean for Spring also supported Library / Framework Support Mocking GitHub - mockito/mockito-kotlin: Using Mockito with Kotlin https://mockk.io/ Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin
  • 75. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Known Pitfalls / Tips 75 Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin Library / Framework Support KTor
  • 76. | Modernize your JAVA applications with Kotlin: Best Practices and Strategies Ā© kreuzwerker 2023 Loved vs Dreaded 76 Kotlin Java https://survey.stackoverļ¬‚ow.co/2022/#most-loved-dreaded-and-wanted-language-love-dread Exploring the beneļ¬ts, timing & strategies for seamless modernization of applications with Kotlin