SlideShare a Scribd company logo
Kotlin
A Programming Language
What is Kotlin?
▪ Kotlin is a programming language.
▪ Kotlin is a statically-typed programming language that runs on the Java virtual
machine and also can be compiled to JavaScript source code or use
the LLVM compiler infrastructure.
▪ While the syntax is not compatible with Java, Kotlin is designed to interoperate
with Java code and is reliant on Java code from the existing Java Class Library,
such as the collections framework.
▪ Kotlin support the .kt extension.
History of Kotlin
▪ In July 2011 JetBrains unveiled Project Kotlin, a new language for the JVM, which
had been under development for a year.
▪ JetBrains lead Dmitry Jemerov said that most languages did not have the
features they were looking for, with the exception of Scala.
▪ Kotlin addresses most of the redundancies in Java programming language, and
also new features have been added that could make android application
development faster and easier and most importantly lot of fun.
Why Kotlin?
▪ Here, explaining important features of Kotlin which makes you easily switch to the
Kotlin
▪ Java Interoperability
▪ Kotlin is 100% interoperable with Java.
▪ You can literally continue work on your old Java projects using Kotlin.
▪ All your favorite Java frameworks are still available, and whatever framework you’ll
write in Kotlin is easily adopted by your stubborn Java loving friend.
▪ Familiar Syntax
▪ Its syntax is familiar to any programmer coming from the OOP domain, and can be more
or less understood from the get go.
▪ There are of course some differences from Java such as the reworked constructors or
the val var variable declarations.
Continue…
▪ String Interpolation
▪ It’s as if a smarter and more readable version of Java’s String.format() was built into the language.
▪ Type Inference
▪ Kotlin will infer your types wherever you feel it will improve readability:
▪ Smart Casts
▪ The Kotlin compiler tracks your logic and auto-casts types if possible, which means no more instanceof.
▪ Sealed Class
▪ Sealed classes are used for representing restricted class hierarchies, when a value can have one of the types from a
limited set, but cannot have any other type. They are, in a sense, an extension of enum classes: the set of values for an
enum type is also restricted, but each enum constant exists only as a single instance, whereas a subclass of a sealed
class can have multiple instances which can contain state.
▪ Default Arguments
▪ No need to define several similar methods with varying arguments.
▪ Properties
▪ Custom set & get behavior can be added to public fields, which means we can stop bloating our code with
mindless getters & setters.
Continue…
▪ The Data Class
▪ It’s a POJO complete with toString(), equals(), hashCode(), and copy(), and unlike in Java it won’t take up 100 lines of
code.
▪ Null Safety
▪ Java is what we should call an almost statically typed language. In it, a variable of type String is not guaranteed to refer to
a String— it might refer to null.
▪ Even though we are used to this, it negates the safety of static type checking, and as a result Java developers have to live
in constant fear of NPEs.
▪ Kotlin resolves this by distinguishing between non-null types and nullable types.
▪ Kotlin Coroutines
▪ Kotlin as a language, provides only minimal low-level APIs in its standard library to enable various other libraries to utilize
coroutines. Unlike many other languages with similar capabilities, async and await are not keywords in Kotlin and are not
even part of its standard library. Moreover, Kotlin's concept of suspending function provides a safer and less error-prone
abstraction for asynchronous operations than futures and promises.
▪ kotlinx.coroutines is a rich library for coroutines developed by JetBrains. It contains a number of high-level coroutine-
enabled primitives that including launch, async and others.
▪ IDE Support
▪ You have a number of options if you intend to get started with Kotlin, but I highly recommend using IntelliJ which comes
bundled with Kotlin—its features demonstrate the advantage of having the same people design both language and IDE.
Kotlin Support
▪ Kotlin support other platform such as Android, Java script, Web Development with
Servlet, REST services etc.
▪ Android
▪ Kotlin is fully supported in Android Studio 3.0, so it's easy to create new projects with
Kotlin files, add Kotlin files to your existing project, and convert Java language code to
Kotlin.
▪ You can then use of all Android Studio's existing tools with your Kotlin code, such as
autocomplete, lint checker, refactoring, debugging, and more.
▪ Intellij provides a nice way to work with Kotlin and Java in single project it called Java
interop.
▪ https://developer.android.com/kotlin/index.html
Continue…
▪ Java Script
▪ Kotlin support a java script as well. There are multiple way to compile kotlin to javascript.
▪ The most and recommended approach is to use Gradle.
▪ For more information for project setup refer below link:
▪ http://kotlinlang.org/docs/tutorials/javascript/kotlin-to-javascript/kotlin-to-javascript.html
▪ Web Development
▪ By using Kotlin language we can develop a web application with servlet and create a
REST services.
▪ For more information refer below link:
▪ http://kotlinlang.org/docs/tutorials/httpservlets.html
▪ http://kotlinlang.org/docs/tutorials/spring-boot-restful.html
Comparison between Java and Kotlin
▪ In Java some issues are there Kotlin addressed these issues and resolved it.
Here are all all those issues which Kotlin has fixed:
▪ Null references are controlled by the type system.
▪ No raw types
▪ Arrays in Kotlin are invariant
▪ Kotlin has proper function types, as opposed to Java's SAM-conversions
▪ Use-site variance without wildcards
▪ Kotlin does not have checked exceptions.
What java has that Kotlin does not?
▪ Checked exceptions
▪ Primitive types that are not classes
▪ Static members
▪ Non-private fields
▪ Wildcard-types
What Kotlin has that Java does not?
▪ Lambda expressions + Inline functions = performance custom control structures
▪ Extension functions
▪ Null-safety
▪ Smart casts
▪ String templates
▪ Properties
▪ Primary constructors
▪ First-class delegation
▪ Type inference for variable and property types
Continue…
▪ Declaration-site variance & Type projections
▪ Range expressions
▪ Operator overloading
▪ Companion objects
▪ Data classes
▪ Separate interfaces for read-only and mutable collections
▪ Coroutines
Thank you
Communicate with us…
Mobio Solutions LLP
706/B, Ganesh Plaza, Navrangpura,
Ahmedabad - 380009, Gujarat, India
Phone: +91-9904929149
Email: contact@mobiosolutions.com
Web: www.mobiosolutions.com

More Related Content

What's hot

Kotlin InDepth Tutorial for beginners 2022
Kotlin InDepth Tutorial for beginners 2022Kotlin InDepth Tutorial for beginners 2022
Kotlin InDepth Tutorial for beginners 2022
Simplilearn
 
Kotlin presentation
Kotlin presentation Kotlin presentation
Kotlin presentation
MobileAcademy
 
Intro to kotlin
Intro to kotlinIntro to kotlin
Intro to kotlin
Tomislav Homan
 
Kotlin on android
Kotlin on androidKotlin on android
Kotlin on android
Kurt Renzo Acosta
 
Difference between Java and c#
Difference between Java and c#Difference between Java and c#
Difference between Java and c#
Sagar Pednekar
 
C#.NET
C#.NETC#.NET
C#.NET
gurchet
 
Kotlin
KotlinKotlin
Introduction to kotlin and OOP in Kotlin
Introduction to kotlin and OOP in KotlinIntroduction to kotlin and OOP in Kotlin
Introduction to kotlin and OOP in Kotlin
vriddhigupta
 
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
Andreas Jakl
 
Google colab introduction
Google colab   introductionGoogle colab   introduction
Google colab introduction
Saravanakumar viswanathan
 
[Webinar] Qt Test-Driven Development Using Google Test and Google Mock
[Webinar] Qt Test-Driven Development Using Google Test and Google Mock[Webinar] Qt Test-Driven Development Using Google Test and Google Mock
[Webinar] Qt Test-Driven Development Using Google Test and Google Mock
ICS
 
Introduction to Kotlin Language and its application to Android platform
Introduction to Kotlin Language and its application to Android platformIntroduction to Kotlin Language and its application to Android platform
Introduction to Kotlin Language and its application to Android platform
EastBanc Tachnologies
 
4 pillars of OOPS CONCEPT
4 pillars of OOPS CONCEPT4 pillars of OOPS CONCEPT
4 pillars of OOPS CONCEPT
Ajay Chimmani
 
C# 101: Intro to Programming with C#
C# 101: Intro to Programming with C#C# 101: Intro to Programming with C#
C# 101: Intro to Programming with C#
Hawkman Academy
 
Introduction To Java.
Introduction To Java.Introduction To Java.
Introduction To Java.
Tushar Chauhan
 
Qt Application Programming with C++ - Part 1
Qt Application Programming with C++ - Part 1Qt Application Programming with C++ - Part 1
Qt Application Programming with C++ - Part 1
Emertxe Information Technologies Pvt Ltd
 
Introduction to OOP concepts
Introduction to OOP conceptsIntroduction to OOP concepts
Introduction to OOP concepts
Ahmed Farag
 
Golang - Overview of Go (golang) Language
Golang - Overview of Go (golang) LanguageGolang - Overview of Go (golang) Language
Golang - Overview of Go (golang) Language
Aniruddha Chakrabarti
 
Coroutines in Kotlin
Coroutines in KotlinCoroutines in Kotlin
Coroutines in Kotlin
Alexey Soshin
 
Android Development with Kotlin course
Android Development  with Kotlin courseAndroid Development  with Kotlin course
Android Development with Kotlin course
GoogleDevelopersLeba
 

What's hot (20)

Kotlin InDepth Tutorial for beginners 2022
Kotlin InDepth Tutorial for beginners 2022Kotlin InDepth Tutorial for beginners 2022
Kotlin InDepth Tutorial for beginners 2022
 
Kotlin presentation
Kotlin presentation Kotlin presentation
Kotlin presentation
 
Intro to kotlin
Intro to kotlinIntro to kotlin
Intro to kotlin
 
Kotlin on android
Kotlin on androidKotlin on android
Kotlin on android
 
Difference between Java and c#
Difference between Java and c#Difference between Java and c#
Difference between Java and c#
 
C#.NET
C#.NETC#.NET
C#.NET
 
Kotlin
KotlinKotlin
Kotlin
 
Introduction to kotlin and OOP in Kotlin
Introduction to kotlin and OOP in KotlinIntroduction to kotlin and OOP in Kotlin
Introduction to kotlin and OOP in Kotlin
 
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
 
Google colab introduction
Google colab   introductionGoogle colab   introduction
Google colab introduction
 
[Webinar] Qt Test-Driven Development Using Google Test and Google Mock
[Webinar] Qt Test-Driven Development Using Google Test and Google Mock[Webinar] Qt Test-Driven Development Using Google Test and Google Mock
[Webinar] Qt Test-Driven Development Using Google Test and Google Mock
 
Introduction to Kotlin Language and its application to Android platform
Introduction to Kotlin Language and its application to Android platformIntroduction to Kotlin Language and its application to Android platform
Introduction to Kotlin Language and its application to Android platform
 
4 pillars of OOPS CONCEPT
4 pillars of OOPS CONCEPT4 pillars of OOPS CONCEPT
4 pillars of OOPS CONCEPT
 
C# 101: Intro to Programming with C#
C# 101: Intro to Programming with C#C# 101: Intro to Programming with C#
C# 101: Intro to Programming with C#
 
Introduction To Java.
Introduction To Java.Introduction To Java.
Introduction To Java.
 
Qt Application Programming with C++ - Part 1
Qt Application Programming with C++ - Part 1Qt Application Programming with C++ - Part 1
Qt Application Programming with C++ - Part 1
 
Introduction to OOP concepts
Introduction to OOP conceptsIntroduction to OOP concepts
Introduction to OOP concepts
 
Golang - Overview of Go (golang) Language
Golang - Overview of Go (golang) LanguageGolang - Overview of Go (golang) Language
Golang - Overview of Go (golang) Language
 
Coroutines in Kotlin
Coroutines in KotlinCoroutines in Kotlin
Coroutines in Kotlin
 
Android Development with Kotlin course
Android Development  with Kotlin courseAndroid Development  with Kotlin course
Android Development with Kotlin course
 

Similar to Kotlin - A Programming Language

Kotlin vs Java-A Comparison for Application Development Projects.pdf
Kotlin vs Java-A Comparison for Application Development Projects.pdfKotlin vs Java-A Comparison for Application Development Projects.pdf
Kotlin vs Java-A Comparison for Application Development Projects.pdf
Techugo
 
Coding in kotlin
Coding in kotlinCoding in kotlin
Coding in kotlin
Debmalya Jash
 
Coding in kotlin
Coding in kotlinCoding in kotlin
Coding in kotlin
Debmalya Jash
 
A short introduction to the Kotlin language for Java developers
A short introduction to the Kotlin language for Java developersA short introduction to the Kotlin language for Java developers
A short introduction to the Kotlin language for Java developers
Antonis Lilis
 
What's new with Kotlin - Google IO18' extended Covenant University.
What's new with Kotlin - Google IO18' extended Covenant University.What's new with Kotlin - Google IO18' extended Covenant University.
What's new with Kotlin - Google IO18' extended Covenant University.
SimileoluwaAluko
 
Kotlin vs Java: Choosing The Right Language
Kotlin vs Java: Choosing The Right LanguageKotlin vs Java: Choosing The Right Language
Kotlin vs Java: Choosing The Right Language
FredReynolds2
 
Introduction to Kotlin - Android KTX
Introduction to Kotlin - Android KTXIntroduction to Kotlin - Android KTX
Introduction to Kotlin - Android KTX
Syed Awais Mazhar Bukhari
 
Kotlin Vs Java A Comparison For Application Development Projects.pdf
Kotlin Vs Java A Comparison For Application Development Projects.pdfKotlin Vs Java A Comparison For Application Development Projects.pdf
Kotlin Vs Java A Comparison For Application Development Projects.pdf
Techugo
 
Learn Kotlin and Build Robust Android Apps with Bcoder.pdf
Learn Kotlin and Build Robust Android Apps with Bcoder.pdfLearn Kotlin and Build Robust Android Apps with Bcoder.pdf
Learn Kotlin and Build Robust Android Apps with Bcoder.pdf
Bcoder Dev
 
Kotlin for Android
Kotlin for AndroidKotlin for Android
Kotlin for Android
Han Yin
 
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
Adam Magaña
 
Kotlin vs Java- Finding The All-Time Favorite Fit!
Kotlin vs Java- Finding The All-Time Favorite Fit!Kotlin vs Java- Finding The All-Time Favorite Fit!
Kotlin vs Java- Finding The All-Time Favorite Fit!
Techugo
 
Is this Swift for Android? A short introduction to the Kotlin language
Is this Swift for Android? A short introduction to the Kotlin languageIs this Swift for Android? A short introduction to the Kotlin language
Is this Swift for Android? A short introduction to the Kotlin language
Antonis Lilis
 
Kotlin
KotlinKotlin
Kotlin Online Training.pdf
Kotlin Online Training.pdfKotlin Online Training.pdf
Kotlin Online Training.pdf
SpiritsoftsTraining
 
Introduction_to_Kotlin.pptx
Introduction_to_Kotlin.pptxIntroduction_to_Kotlin.pptx
Introduction_to_Kotlin.pptx
HARSHITJAIN068
 
Kotlin App Development Tips.pdf
Kotlin App Development Tips.pdfKotlin App Development Tips.pdf
Kotlin App Development Tips.pdf
Marie Weaver
 
Kotlin vs Java: Which is Better for Android App Development?
Kotlin vs Java: Which is Better for Android App Development?Kotlin vs Java: Which is Better for Android App Development?
Kotlin vs Java: Which is Better for Android App Development?
Marie Weaver
 
CC Presentation.pptx
CC Presentation.pptxCC Presentation.pptx
CC Presentation.pptx
MuhammadRameezAhmed
 
Kotlin top features overview
Kotlin top features overviewKotlin top features overview
Kotlin top features overview
Dennis Boanini
 

Similar to Kotlin - A Programming Language (20)

Kotlin vs Java-A Comparison for Application Development Projects.pdf
Kotlin vs Java-A Comparison for Application Development Projects.pdfKotlin vs Java-A Comparison for Application Development Projects.pdf
Kotlin vs Java-A Comparison for Application Development Projects.pdf
 
Coding in kotlin
Coding in kotlinCoding in kotlin
Coding in kotlin
 
Coding in kotlin
Coding in kotlinCoding in kotlin
Coding in kotlin
 
A short introduction to the Kotlin language for Java developers
A short introduction to the Kotlin language for Java developersA short introduction to the Kotlin language for Java developers
A short introduction to the Kotlin language for Java developers
 
What's new with Kotlin - Google IO18' extended Covenant University.
What's new with Kotlin - Google IO18' extended Covenant University.What's new with Kotlin - Google IO18' extended Covenant University.
What's new with Kotlin - Google IO18' extended Covenant University.
 
Kotlin vs Java: Choosing The Right Language
Kotlin vs Java: Choosing The Right LanguageKotlin vs Java: Choosing The Right Language
Kotlin vs Java: Choosing The Right Language
 
Introduction to Kotlin - Android KTX
Introduction to Kotlin - Android KTXIntroduction to Kotlin - Android KTX
Introduction to Kotlin - Android KTX
 
Kotlin Vs Java A Comparison For Application Development Projects.pdf
Kotlin Vs Java A Comparison For Application Development Projects.pdfKotlin Vs Java A Comparison For Application Development Projects.pdf
Kotlin Vs Java A Comparison For Application Development Projects.pdf
 
Learn Kotlin and Build Robust Android Apps with Bcoder.pdf
Learn Kotlin and Build Robust Android Apps with Bcoder.pdfLearn Kotlin and Build Robust Android Apps with Bcoder.pdf
Learn Kotlin and Build Robust Android Apps with Bcoder.pdf
 
Kotlin for Android
Kotlin for AndroidKotlin for Android
Kotlin for Android
 
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
 
Kotlin vs Java- Finding The All-Time Favorite Fit!
Kotlin vs Java- Finding The All-Time Favorite Fit!Kotlin vs Java- Finding The All-Time Favorite Fit!
Kotlin vs Java- Finding The All-Time Favorite Fit!
 
Is this Swift for Android? A short introduction to the Kotlin language
Is this Swift for Android? A short introduction to the Kotlin languageIs this Swift for Android? A short introduction to the Kotlin language
Is this Swift for Android? A short introduction to the Kotlin language
 
Kotlin
KotlinKotlin
Kotlin
 
Kotlin Online Training.pdf
Kotlin Online Training.pdfKotlin Online Training.pdf
Kotlin Online Training.pdf
 
Introduction_to_Kotlin.pptx
Introduction_to_Kotlin.pptxIntroduction_to_Kotlin.pptx
Introduction_to_Kotlin.pptx
 
Kotlin App Development Tips.pdf
Kotlin App Development Tips.pdfKotlin App Development Tips.pdf
Kotlin App Development Tips.pdf
 
Kotlin vs Java: Which is Better for Android App Development?
Kotlin vs Java: Which is Better for Android App Development?Kotlin vs Java: Which is Better for Android App Development?
Kotlin vs Java: Which is Better for Android App Development?
 
CC Presentation.pptx
CC Presentation.pptxCC Presentation.pptx
CC Presentation.pptx
 
Kotlin top features overview
Kotlin top features overviewKotlin top features overview
Kotlin top features overview
 

More from Mobio Solutions

The Low-Code Revolution: Transforming BFSI
The Low-Code Revolution: Transforming BFSIThe Low-Code Revolution: Transforming BFSI
The Low-Code Revolution: Transforming BFSI
Mobio Solutions
 
Digital Transformation & Data Security in Insurance Sector
Digital Transformation & Data Security in Insurance SectorDigital Transformation & Data Security in Insurance Sector
Digital Transformation & Data Security in Insurance Sector
Mobio Solutions
 
Inside a Financial Giant's Employee Experience Revolution & Boosting Customer...
Inside a Financial Giant's Employee Experience Revolution & Boosting Customer...Inside a Financial Giant's Employee Experience Revolution & Boosting Customer...
Inside a Financial Giant's Employee Experience Revolution & Boosting Customer...
Mobio Solutions
 
A Breakthrough in Cost Reduction and Response Time with Innovative Web Techno...
A Breakthrough in Cost Reduction and Response Time with Innovative Web Techno...A Breakthrough in Cost Reduction and Response Time with Innovative Web Techno...
A Breakthrough in Cost Reduction and Response Time with Innovative Web Techno...
Mobio Solutions
 
Globalization and its Influence on Modern-day Logistics and Supply Chains
Globalization and its Influence on Modern-day Logistics and Supply ChainsGlobalization and its Influence on Modern-day Logistics and Supply Chains
Globalization and its Influence on Modern-day Logistics and Supply Chains
Mobio Solutions
 
Smart Asset Management Solutions for Modern UK Businesses
Smart Asset Management Solutions for Modern UK BusinessesSmart Asset Management Solutions for Modern UK Businesses
Smart Asset Management Solutions for Modern UK Businesses
Mobio Solutions
 
Transforming Warehouse Operations: The Power of IT Solutions
Transforming Warehouse Operations: The Power of IT SolutionsTransforming Warehouse Operations: The Power of IT Solutions
Transforming Warehouse Operations: The Power of IT Solutions
Mobio Solutions
 
The Power of React Native UI Libraries in App Development
The Power of React Native UI Libraries in App DevelopmentThe Power of React Native UI Libraries in App Development
The Power of React Native UI Libraries in App Development
Mobio Solutions
 
The Role of Mobile Apps in Wind Farm Management
The Role of Mobile Apps in Wind Farm ManagementThe Role of Mobile Apps in Wind Farm Management
The Role of Mobile Apps in Wind Farm Management
Mobio Solutions
 
Custom Software's Role in Integrating Multi-modal Logistics Operations
Custom Software's Role in Integrating Multi-modal Logistics OperationsCustom Software's Role in Integrating Multi-modal Logistics Operations
Custom Software's Role in Integrating Multi-modal Logistics Operations
Mobio Solutions
 
Navigating the Future of Business Top UXUI Trends
Navigating the Future of Business Top UXUI TrendsNavigating the Future of Business Top UXUI Trends
Navigating the Future of Business Top UXUI Trends
Mobio Solutions
 
Understanding Generative AI in Software Development
Understanding Generative AI in Software DevelopmentUnderstanding Generative AI in Software Development
Understanding Generative AI in Software Development
Mobio Solutions
 
How To Leverage Web Applications To Drive Operational Efficiency In Business
How To Leverage Web Applications To Drive Operational Efficiency In BusinessHow To Leverage Web Applications To Drive Operational Efficiency In Business
How To Leverage Web Applications To Drive Operational Efficiency In Business
Mobio Solutions
 
Leveraging Technology for a Sustainable Future To Businesses ROI
Leveraging Technology for a Sustainable Future To Businesses ROILeveraging Technology for a Sustainable Future To Businesses ROI
Leveraging Technology for a Sustainable Future To Businesses ROI
Mobio Solutions
 
9 Steps To Choosing The Perfect Software Development Partner For Your Startup
9 Steps To Choosing The Perfect Software Development Partner For Your Startup9 Steps To Choosing The Perfect Software Development Partner For Your Startup
9 Steps To Choosing The Perfect Software Development Partner For Your Startup
Mobio Solutions
 
The 10 Commandments Security Of Mobile App Development
The 10 Commandments Security Of Mobile App DevelopmentThe 10 Commandments Security Of Mobile App Development
The 10 Commandments Security Of Mobile App Development
Mobio Solutions
 
How Web Application Development Shapes The Future Of Enterprises
How Web Application Development Shapes The Future Of EnterprisesHow Web Application Development Shapes The Future Of Enterprises
How Web Application Development Shapes The Future Of Enterprises
Mobio Solutions
 
Modernizing Insurance Operations Leverage Technology For Peak Efficiency
Modernizing Insurance Operations Leverage Technology For Peak EfficiencyModernizing Insurance Operations Leverage Technology For Peak Efficiency
Modernizing Insurance Operations Leverage Technology For Peak Efficiency
Mobio Solutions
 
Agile in Action: Achieving Startup Product Development Success With Mobio Sol...
Agile in Action: Achieving Startup Product Development Success With Mobio Sol...Agile in Action: Achieving Startup Product Development Success With Mobio Sol...
Agile in Action: Achieving Startup Product Development Success With Mobio Sol...
Mobio Solutions
 
Transforming Business With Mastering Server-Side Rendering In React JS
Transforming Business With Mastering Server-Side Rendering In React JSTransforming Business With Mastering Server-Side Rendering In React JS
Transforming Business With Mastering Server-Side Rendering In React JS
Mobio Solutions
 

More from Mobio Solutions (20)

The Low-Code Revolution: Transforming BFSI
The Low-Code Revolution: Transforming BFSIThe Low-Code Revolution: Transforming BFSI
The Low-Code Revolution: Transforming BFSI
 
Digital Transformation & Data Security in Insurance Sector
Digital Transformation & Data Security in Insurance SectorDigital Transformation & Data Security in Insurance Sector
Digital Transformation & Data Security in Insurance Sector
 
Inside a Financial Giant's Employee Experience Revolution & Boosting Customer...
Inside a Financial Giant's Employee Experience Revolution & Boosting Customer...Inside a Financial Giant's Employee Experience Revolution & Boosting Customer...
Inside a Financial Giant's Employee Experience Revolution & Boosting Customer...
 
A Breakthrough in Cost Reduction and Response Time with Innovative Web Techno...
A Breakthrough in Cost Reduction and Response Time with Innovative Web Techno...A Breakthrough in Cost Reduction and Response Time with Innovative Web Techno...
A Breakthrough in Cost Reduction and Response Time with Innovative Web Techno...
 
Globalization and its Influence on Modern-day Logistics and Supply Chains
Globalization and its Influence on Modern-day Logistics and Supply ChainsGlobalization and its Influence on Modern-day Logistics and Supply Chains
Globalization and its Influence on Modern-day Logistics and Supply Chains
 
Smart Asset Management Solutions for Modern UK Businesses
Smart Asset Management Solutions for Modern UK BusinessesSmart Asset Management Solutions for Modern UK Businesses
Smart Asset Management Solutions for Modern UK Businesses
 
Transforming Warehouse Operations: The Power of IT Solutions
Transforming Warehouse Operations: The Power of IT SolutionsTransforming Warehouse Operations: The Power of IT Solutions
Transforming Warehouse Operations: The Power of IT Solutions
 
The Power of React Native UI Libraries in App Development
The Power of React Native UI Libraries in App DevelopmentThe Power of React Native UI Libraries in App Development
The Power of React Native UI Libraries in App Development
 
The Role of Mobile Apps in Wind Farm Management
The Role of Mobile Apps in Wind Farm ManagementThe Role of Mobile Apps in Wind Farm Management
The Role of Mobile Apps in Wind Farm Management
 
Custom Software's Role in Integrating Multi-modal Logistics Operations
Custom Software's Role in Integrating Multi-modal Logistics OperationsCustom Software's Role in Integrating Multi-modal Logistics Operations
Custom Software's Role in Integrating Multi-modal Logistics Operations
 
Navigating the Future of Business Top UXUI Trends
Navigating the Future of Business Top UXUI TrendsNavigating the Future of Business Top UXUI Trends
Navigating the Future of Business Top UXUI Trends
 
Understanding Generative AI in Software Development
Understanding Generative AI in Software DevelopmentUnderstanding Generative AI in Software Development
Understanding Generative AI in Software Development
 
How To Leverage Web Applications To Drive Operational Efficiency In Business
How To Leverage Web Applications To Drive Operational Efficiency In BusinessHow To Leverage Web Applications To Drive Operational Efficiency In Business
How To Leverage Web Applications To Drive Operational Efficiency In Business
 
Leveraging Technology for a Sustainable Future To Businesses ROI
Leveraging Technology for a Sustainable Future To Businesses ROILeveraging Technology for a Sustainable Future To Businesses ROI
Leveraging Technology for a Sustainable Future To Businesses ROI
 
9 Steps To Choosing The Perfect Software Development Partner For Your Startup
9 Steps To Choosing The Perfect Software Development Partner For Your Startup9 Steps To Choosing The Perfect Software Development Partner For Your Startup
9 Steps To Choosing The Perfect Software Development Partner For Your Startup
 
The 10 Commandments Security Of Mobile App Development
The 10 Commandments Security Of Mobile App DevelopmentThe 10 Commandments Security Of Mobile App Development
The 10 Commandments Security Of Mobile App Development
 
How Web Application Development Shapes The Future Of Enterprises
How Web Application Development Shapes The Future Of EnterprisesHow Web Application Development Shapes The Future Of Enterprises
How Web Application Development Shapes The Future Of Enterprises
 
Modernizing Insurance Operations Leverage Technology For Peak Efficiency
Modernizing Insurance Operations Leverage Technology For Peak EfficiencyModernizing Insurance Operations Leverage Technology For Peak Efficiency
Modernizing Insurance Operations Leverage Technology For Peak Efficiency
 
Agile in Action: Achieving Startup Product Development Success With Mobio Sol...
Agile in Action: Achieving Startup Product Development Success With Mobio Sol...Agile in Action: Achieving Startup Product Development Success With Mobio Sol...
Agile in Action: Achieving Startup Product Development Success With Mobio Sol...
 
Transforming Business With Mastering Server-Side Rendering In React JS
Transforming Business With Mastering Server-Side Rendering In React JSTransforming Business With Mastering Server-Side Rendering In React JS
Transforming Business With Mastering Server-Side Rendering In React JS
 

Recently uploaded

Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 

Recently uploaded (20)

Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 

Kotlin - A Programming Language

  • 2. What is Kotlin? ▪ Kotlin is a programming language. ▪ Kotlin is a statically-typed programming language that runs on the Java virtual machine and also can be compiled to JavaScript source code or use the LLVM compiler infrastructure. ▪ While the syntax is not compatible with Java, Kotlin is designed to interoperate with Java code and is reliant on Java code from the existing Java Class Library, such as the collections framework. ▪ Kotlin support the .kt extension.
  • 3. History of Kotlin ▪ In July 2011 JetBrains unveiled Project Kotlin, a new language for the JVM, which had been under development for a year. ▪ JetBrains lead Dmitry Jemerov said that most languages did not have the features they were looking for, with the exception of Scala. ▪ Kotlin addresses most of the redundancies in Java programming language, and also new features have been added that could make android application development faster and easier and most importantly lot of fun.
  • 4. Why Kotlin? ▪ Here, explaining important features of Kotlin which makes you easily switch to the Kotlin ▪ Java Interoperability ▪ Kotlin is 100% interoperable with Java. ▪ You can literally continue work on your old Java projects using Kotlin. ▪ All your favorite Java frameworks are still available, and whatever framework you’ll write in Kotlin is easily adopted by your stubborn Java loving friend. ▪ Familiar Syntax ▪ Its syntax is familiar to any programmer coming from the OOP domain, and can be more or less understood from the get go. ▪ There are of course some differences from Java such as the reworked constructors or the val var variable declarations.
  • 5. Continue… ▪ String Interpolation ▪ It’s as if a smarter and more readable version of Java’s String.format() was built into the language. ▪ Type Inference ▪ Kotlin will infer your types wherever you feel it will improve readability: ▪ Smart Casts ▪ The Kotlin compiler tracks your logic and auto-casts types if possible, which means no more instanceof. ▪ Sealed Class ▪ Sealed classes are used for representing restricted class hierarchies, when a value can have one of the types from a limited set, but cannot have any other type. They are, in a sense, an extension of enum classes: the set of values for an enum type is also restricted, but each enum constant exists only as a single instance, whereas a subclass of a sealed class can have multiple instances which can contain state. ▪ Default Arguments ▪ No need to define several similar methods with varying arguments. ▪ Properties ▪ Custom set & get behavior can be added to public fields, which means we can stop bloating our code with mindless getters & setters.
  • 6. Continue… ▪ The Data Class ▪ It’s a POJO complete with toString(), equals(), hashCode(), and copy(), and unlike in Java it won’t take up 100 lines of code. ▪ Null Safety ▪ Java is what we should call an almost statically typed language. In it, a variable of type String is not guaranteed to refer to a String— it might refer to null. ▪ Even though we are used to this, it negates the safety of static type checking, and as a result Java developers have to live in constant fear of NPEs. ▪ Kotlin resolves this by distinguishing between non-null types and nullable types. ▪ Kotlin Coroutines ▪ Kotlin as a language, provides only minimal low-level APIs in its standard library to enable various other libraries to utilize coroutines. Unlike many other languages with similar capabilities, async and await are not keywords in Kotlin and are not even part of its standard library. Moreover, Kotlin's concept of suspending function provides a safer and less error-prone abstraction for asynchronous operations than futures and promises. ▪ kotlinx.coroutines is a rich library for coroutines developed by JetBrains. It contains a number of high-level coroutine- enabled primitives that including launch, async and others. ▪ IDE Support ▪ You have a number of options if you intend to get started with Kotlin, but I highly recommend using IntelliJ which comes bundled with Kotlin—its features demonstrate the advantage of having the same people design both language and IDE.
  • 7. Kotlin Support ▪ Kotlin support other platform such as Android, Java script, Web Development with Servlet, REST services etc. ▪ Android ▪ Kotlin is fully supported in Android Studio 3.0, so it's easy to create new projects with Kotlin files, add Kotlin files to your existing project, and convert Java language code to Kotlin. ▪ You can then use of all Android Studio's existing tools with your Kotlin code, such as autocomplete, lint checker, refactoring, debugging, and more. ▪ Intellij provides a nice way to work with Kotlin and Java in single project it called Java interop. ▪ https://developer.android.com/kotlin/index.html
  • 8. Continue… ▪ Java Script ▪ Kotlin support a java script as well. There are multiple way to compile kotlin to javascript. ▪ The most and recommended approach is to use Gradle. ▪ For more information for project setup refer below link: ▪ http://kotlinlang.org/docs/tutorials/javascript/kotlin-to-javascript/kotlin-to-javascript.html ▪ Web Development ▪ By using Kotlin language we can develop a web application with servlet and create a REST services. ▪ For more information refer below link: ▪ http://kotlinlang.org/docs/tutorials/httpservlets.html ▪ http://kotlinlang.org/docs/tutorials/spring-boot-restful.html
  • 9. Comparison between Java and Kotlin ▪ In Java some issues are there Kotlin addressed these issues and resolved it. Here are all all those issues which Kotlin has fixed: ▪ Null references are controlled by the type system. ▪ No raw types ▪ Arrays in Kotlin are invariant ▪ Kotlin has proper function types, as opposed to Java's SAM-conversions ▪ Use-site variance without wildcards ▪ Kotlin does not have checked exceptions.
  • 10. What java has that Kotlin does not? ▪ Checked exceptions ▪ Primitive types that are not classes ▪ Static members ▪ Non-private fields ▪ Wildcard-types
  • 11. What Kotlin has that Java does not? ▪ Lambda expressions + Inline functions = performance custom control structures ▪ Extension functions ▪ Null-safety ▪ Smart casts ▪ String templates ▪ Properties ▪ Primary constructors ▪ First-class delegation ▪ Type inference for variable and property types
  • 12. Continue… ▪ Declaration-site variance & Type projections ▪ Range expressions ▪ Operator overloading ▪ Companion objects ▪ Data classes ▪ Separate interfaces for read-only and mutable collections ▪ Coroutines
  • 13. Thank you Communicate with us… Mobio Solutions LLP 706/B, Ganesh Plaza, Navrangpura, Ahmedabad - 380009, Gujarat, India Phone: +91-9904929149 Email: contact@mobiosolutions.com Web: www.mobiosolutions.com